Merge branch 'upstream'
diff --git a/ChangeLog b/ChangeLog
index 1bc3408..4cee5e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,96 @@
-=== release 1.8.3 ===
+=== release 1.9.90 ===
 
-2016-08-19  Sebastian Dröge <slomo@coaxion.net>
+2016-09-30  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.8.3
+	  releasing 1.9.90
 
-2016-08-19 12:06:55 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-09-30 11:44:22 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/id.po:
+	* po/sv.po:
+	  po: Update translations
+
+2016-09-29 12:39:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/x264/gstx264enc.c:
+	  x264enc: Set colorimetry and chroma-site information
+	  https://bugzilla.gnome.org/show_bug.cgi?id=772159
+
+2016-09-24 09:08:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* meson.build:
+	* po/meson.build:
+	  meson: hook up translations
+
+2016-09-24 08:59:55 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* meson.build:
+	* tests/check/getpluginsdir:
+	* tests/check/meson.build:
+	* tests/meson.build:
+	  meson: hook up unit tests
+
+2016-09-14 11:30:58 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  configure: Depend on gstreamer 1.9.2.1
+
+2016-09-10 20:51:36 +1000  Jan Schmidt <jan@centricular.com>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From b18d820 to f980fd9
+
+2016-09-10 09:54:15 +1000  Jan Schmidt <jan@centricular.com>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From f49c55e to b18d820
+
+2016-09-05 12:22:56 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* meson.build:
+	  meson: Bump version to 1.9.2
+
+2016-09-01 12:28:57 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.9.2 ===
+
+2016-09-01 12:28:45 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-a52dec.xml:
+	* docs/plugins/inspect/plugin-amrnb.xml:
+	* docs/plugins/inspect/plugin-amrwbdec.xml:
+	* docs/plugins/inspect/plugin-asf.xml:
+	* docs/plugins/inspect/plugin-cdio.xml:
+	* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
+	* docs/plugins/inspect/plugin-dvdread.xml:
+	* docs/plugins/inspect/plugin-dvdsub.xml:
+	* docs/plugins/inspect/plugin-lame.xml:
+	* docs/plugins/inspect/plugin-mad.xml:
+	* docs/plugins/inspect/plugin-mpeg2dec.xml:
+	* docs/plugins/inspect/plugin-mpg123.xml:
+	* docs/plugins/inspect/plugin-realmedia.xml:
+	* docs/plugins/inspect/plugin-siddec.xml:
+	* docs/plugins/inspect/plugin-twolame.xml:
+	* docs/plugins/inspect/plugin-x264.xml:
+	* docs/plugins/inspect/plugin-xingmux.xml:
+	* gst-plugins-ugly.doap:
+	* win32/common/config.h:
+	  Release 1.9.2
+
+2016-09-01 11:24:13 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/af.po:
 	* po/az.po:
@@ -47,11 +132,153 @@
 	* po/uk.po:
 	* po/vi.po:
 	* po/zh_CN.po:
-	  Update .po files
+	  po: Update translations
 
-=== release 1.8.2 ===
+2016-09-01 10:57:46 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-2016-06-09 11:52:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+	* ext/sidplay/gstsiddec.cc:
+	  siddec: Fix compilation with debugging disabled
+	  gstsiddec.o
+	  gstsiddec.cc: In function ‘void play_loop(GstPad*)’:
+	  gstsiddec.cc:446:18: error: unused variable ‘reason’ [-Werror=unused-variable]
+	  const gchar *reason = gst_flow_get_name (ret);
+	  ^
+
+2016-08-19 11:11:14 -0700  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* ext/sidplay/gstsiddec.cc:
+	* gst/asfdemux/gstasfdemux.c:
+	* gst/realmedia/rmdemux.c:
+	  Use the new API to post flow ERROR messages on the bus
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770158
+
+2016-08-24 09:45:05 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst/asfdemux/meson.build:
+	  meson: Link asfdemux against the gstsdp library
+
+2016-08-23 15:29:10 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* meson.build:
+	  meson: Add support for fallback subprojects
+
+2016-08-12 21:25:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* .gitignore:
+	* config.h.meson:
+	* ext/a52dec/meson.build:
+	* ext/amrnb/meson.build:
+	* ext/amrwbdec/meson.build:
+	* ext/cdio/meson.build:
+	* ext/dvdread/meson.build:
+	* ext/lame/meson.build:
+	* ext/mad/meson.build:
+	* ext/meson.build:
+	* ext/mpeg2dec/meson.build:
+	* ext/mpg123/meson.build:
+	* ext/twolame/meson.build:
+	* ext/x264/meson.build:
+	* gst/asfdemux/meson.build:
+	* gst/dvdlpcmdec/meson.build:
+	* gst/dvdsub/meson.build:
+	* gst/meson.build:
+	* gst/realmedia/meson.build:
+	* gst/xingmux/meson.build:
+	* meson.build:
+	  Add support for Meson as alternative/parallel build system
+	  https://github.com/mesonbuild/meson
+	  With contributions from:
+	  Tim-Philipp Müller <tim@centricular.com>
+	  Jussi Pakkanen <jpakkane@gmail.com> (original port)
+	  Highlights of the features provided are:
+	  * Faster builds on Linux (~40-50% faster)
+	  * The ability to build with MSVC on Windows
+	  * Generate Visual Studio project files
+	  * Generate XCode project files
+	  * Much faster builds on Windows (on-par with Linux)
+	  * Seriously fast configure and building on embedded
+	  ... and many more. For more details see:
+	  http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
+	  http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
+	  Building with Meson should work on both Linux and Windows, but may
+	  need a few more tweaks on other operating systems.
+
+2016-08-12 21:41:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* ext/a52dec/gsta52dec.c:
+	* ext/dvdread/dvdreadsrc.c:
+	* ext/x264/gstx264enc.h:
+	* gst/realmedia/realhash.c:
+	* gst/realmedia/rtspreal.c:
+	  plugins: Use <stdint.h> instead of _stdint.h
+	  _stdint.h is generated by Autotools and we don't really need it. All
+	  supported platforms now ship with stdint.h. The only stickler was MSVC,
+	  and since Visual Studio 2015 it also ships stdint.h now.
+
+2016-08-19 13:01:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/mpeg2dec/perftest.c:
+	  mpeg2dec: remove file no longer used or needed
+
+2016-08-08 09:58:20 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/dvdlpcmdec/Makefile.am:
+	  dvdlpcmdec: add libgstbase CFLAGS as well
+	  For consistency.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769610
+
+2016-08-07 00:10:24 +0000  xlazom00 <xlazom00@gmail.com>
+
+	* gst/dvdlpcmdec/Makefile.am:
+	  dvdlpcmdec: link libgstbase-1.0
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769610
+
+2016-08-02 13:38:25 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/asfdemux/gstasfdemux.c:
+	  asfdemux: Add byte rate based bitrate tag in case there are no audio props
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769418
+
+2016-04-28 16:42:43 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
+	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
+	  dvdlpcmdec: add support for another format
+	  The format specification can be found here:
+	  http://www.dvdforum.org/images/Guideline1394V10R0_20020911.pdf
+	  Note: This format is also used for Wifi-Display.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765807
+
+2016-04-28 16:32:53 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
+	* gst/dvdlpcmdec/gstdvdlpcmdec.h:
+	  dvdlpcmdec: rewrite to use GstAudioDecoder
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765807
+
+2016-07-24 10:00:48 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* ext/sidplay/gstsiddec.cc:
+	  sidplay: fix compiler warnings when building with -O3
+	  Avoid compiler warnings "‘foo’ may be used uninitialized in this
+	  function" when building with -O3 by checking the return bool value
+	  of format conversion function.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769116
+
+2016-07-11 21:14:06 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From f363b32 to f49c55e
+
+2016-07-06 13:51:09 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.9.1 ===
+
+2016-07-06 13:15:28 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* ChangeLog:
 	* NEWS:
@@ -76,9 +303,9 @@
 	* docs/plugins/inspect/plugin-xingmux.xml:
 	* gst-plugins-ugly.doap:
 	* win32/common/config.h:
-	  Release 1.8.2
+	  Release 1.9.1
 
-2016-06-09 11:24:45 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-07-06 11:54:01 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/af.po:
 	* po/az.po:
@@ -122,11 +349,17 @@
 	* po/zh_CN.po:
 	  Update .po files
 
-2016-06-09 10:06:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-07-06 10:19:44 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/hr.po:
 	  po: Update translations
 
+2016-06-21 11:46:53 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* common:
+	  Automatic update of common submodule
+	  From ac2f647 to f363b32
+
 2015-05-12 11:08:55 +0300  Vootele Vesterblom <vov@bang-olufsen.dk>
 
 	* gst/asfdemux/gstasfdemux.c:
@@ -145,14 +378,8 @@
 	  The clock returned by gst_system_clock_obtain() was never unreffed.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=766565
 
-=== release 1.8.1 ===
+2016-05-15 13:33:30 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-2016-04-20 18:30:15 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
 	* docs/plugins/inspect/plugin-a52dec.xml:
 	* docs/plugins/inspect/plugin-amrnb.xml:
 	* docs/plugins/inspect/plugin-amrwbdec.xml:
@@ -170,53 +397,94 @@
 	* docs/plugins/inspect/plugin-twolame.xml:
 	* docs/plugins/inspect/plugin-x264.xml:
 	* docs/plugins/inspect/plugin-xingmux.xml:
-	* gst-plugins-ugly.doap:
-	* win32/common/config.h:
-	  Release 1.8.1
+	  docs: Update for git master
 
-2016-04-20 18:11:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-04-16 09:15:43 +0100  Tim-Philipp Müller <tim@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/ms.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	  Update .po files
+	* ext/amrnb/amrnbdec.c:
+	* ext/mad/gstmad.c:
+	  amrnbec, mad: fix two more parse function declarations
+
+2016-04-15 20:46:37 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/a52dec/gsta52dec.c:
+	* ext/amrwbdec/amrwbdec.c:
+	  a52dec, amrwbec: fix parse function declaration mismatch
+	  Fixes MSVC compiler warning:
+	  amrwbdec.c(99): warning C4133: '=': incompatible types
+	  - from 'gboolean (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)' to
+	  'GstFlowReturn (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)'
+	  gsta52dec.c(156): warning C4133: '=': incompatible types
+	  - from 'gboolean (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)' to
+	  'GstFlowReturn (__cdecl *)(GstAudioDecoder *,GstAdapter *,gint *,gint *)'
+
+2016-04-15 19:55:03 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/mpg123/gstmpg123audiodec.h:
+	  mpg123: fix build with msvc
+	  Fix syntax errors when compiling against cerbero-provided libmpg123
+	  headers. We do the same as the libmpg123 internal visual studio
+	  build here.
+	  mpg123.h(1378): error C2143: syntax error: missing ')' before '('
+	  mpg123.h(1378): error C2081: 'ssize_t': name in formal parameter list illegal
+	  mpg123.h(1378): error C2143: syntax error: missing ')' before '*'
+	  mpg123.h(1378): error C2091: function returns function
+	  mpg123.h(1378): error C2143: syntax error: missing '{' before '*'
+	  mpg123.h(1378): error C2059: syntax error: ')'
+	  mpg123.h(1379): error C2143: syntax error: missing ')' before '*'
+	  mpg123.h(1379): error C2365: 'off_t': redefinition; previous definition was 'typedef'
+	  ...
+
+2016-04-15 18:37:42 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* configure.ac:
+	* ext/mpeg2dec/gstmpeg2dec.c:
+	  mpeg2dec: bump libmpeg2 requirement to 0.5.1 and fix msvc build
+	  libmpeg2 0.5.1 was released in mid-2008, let's bump the requirement
+	  and get rid of version-dependent code paths. There's still
+	  avdec_mpeg2video for those who are stuck on ancient distros which
+	  we don't target any more.
+	  Also fixes build with MSVC, which doesn't like #if #else #endif
+	  inside macro arguments (like the GST_DEBUG_OBJECT in line 941).
+
+2016-04-14 10:02:50 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* README:
+	* common:
+	  Automatic update of common submodule
+	  From 6f2d209 to ac2f647
+
+2016-03-04 16:14:44 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* ext/a52dec/gsta52dec.c:
+	* ext/amrnb/amrnbdec.c:
+	* ext/amrnb/amrnbenc.c:
+	* ext/amrwbdec/amrwbdec.c:
+	* ext/dvdread/dvdreadsrc.c:
+	* ext/lame/gstlamemp3enc.c:
+	* ext/mad/gstmad.c:
+	* ext/mpeg2dec/gstmpeg2dec.c:
+	* ext/sidplay/gstsiddec.cc:
+	* ext/twolame/gsttwolamemp2enc.c:
+	* ext/x264/gstx264enc.c:
+	* gst/asfdemux/gstasfdemux.c:
+	* gst/asfdemux/gstrtpasfdepay.c:
+	* gst/dvdlpcmdec/gstdvdlpcmdec.c:
+	* gst/dvdsub/gstdvdsubdec.c:
+	* gst/dvdsub/gstdvdsubparse.c:
+	* gst/realmedia/pnmsrc.c:
+	* gst/realmedia/rademux.c:
+	* gst/realmedia/rdtdepay.c:
+	* gst/realmedia/rdtmanager.c:
+	* gst/realmedia/rmdemux.c:
+	* gst/xingmux/gstxingmux.c:
+	  ugly: use new gst_element_class_add_static_pad_template()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763082
+
+2016-03-24 13:33:22 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
 
 === release 1.8.0 ===
 
diff --git a/Makefile.in b/Makefile.in
index ed018c3..9adaf62 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1088,8 +1088,11 @@
 
 update-exports:
 	make check-exports 2>&1 | patch -p1
-	git add win32/common/libgst*.def
-	git diff --cached -- win32/common/
+	if test -f "$(top_srcdir)/win32/common/libgstgl.def"; then \
+	  git checkout "$(top_srcdir)/win32/common/libgstgl.def";  \
+	fi
+	git add $(top_srcdir)/win32/common/libgst*.def
+	git diff --cached -- $(top_srcdir)/win32/common/
 	echo '^^^--- updated and staged changes above'
 
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
diff --git a/NEWS b/NEWS
index 90393f5..072b2df 100644
--- a/NEWS
+++ b/NEWS
@@ -1,29 +1 @@
-### 1.8.3
-
-The third 1.8 bug-fix release (1.8.3) was released on 19 August 2016.
-This release only contains bugfixes and it should be safe to update from 1.8.x.
-
-#### Major bugfixes in 1.8.3
-
- - Fix Android build scripts on OS X and Windows
- - Fix stepping in PAUSED state in certain circumstances
- - Fix jackaudiosink hang when exiting
- - Fix udpsrc receiving multicast packets not only from the selected
-   multicast group
- - Fix unnecessary decoding of unselected streams in GES
- - Fix (multi)udpsink randomly not sending to clients
- - Fix ALL\_BOTH probes not considering EVENT\_FLUSH
- - Fix average input rate calculations in queue2
- - Fix various locking issues causing deadlock in adaptivedemux
- - Fix gst-libav encoders to correctly produce codec\_data in caps
- - Add Wayland, Windows and Rasberry Pi support to the QML GL video sink
- - Add support for building with OpenH264 1.6
- - Add support for controlling deinterlacing in GES video sources
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.8.3]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.8.3]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=145400&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.3
-
+This is GStreamer 1.9.90
diff --git a/README b/README
index fa53f95..48e2c9f 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.7.x development series
+GStreamer 1.9.x development series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index cdffd0e..4108882 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,16 +1,15 @@
 
-Release notes for GStreamer Ugly Plugins 1.8.3
+Release notes for GStreamer Ugly Plugins 1.9.90
 
-The GStreamer team is proud to announce the third bugfix release in the stable
-1.8 release series of your favourite cross-platform multimedia framework!
+The GStreamer team is pleased to announce the first release candidate of the
+stable 1.10 release series. The 1.10 release series is adding new features on
+top of the 1.0, 1.2, 1.4, 1.6 and 1.8 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.8.x. For a
-full list of bugfixes see Bugzilla.
+Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
 
 
-See /releases/1.8/ for the full release notes.
-
 
 "When you have to shoot, shoot.  Don't talk."
 
@@ -90,5 +89,8 @@
         
 Contributors to this release
     
+      * Jan Schmidt
       * Sebastian Dröge
+      * Thibault Saunier
+      * Tim-Philipp Müller
  
\ No newline at end of file
diff --git a/common/gst.supp b/common/gst.supp
index 2740e9a..f85cd69 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -4024,5 +4024,4 @@
    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 fe0977c..4b5dd1b 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -179,9 +179,13 @@
 		$(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 	@for f in $(EXAMPLE_CFILES); do \
 		$(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done
-	@gtkdoc-mkdb \
+	@_source_dir='' ;						\
+	for i in $(DOC_SOURCE_DIR) ; do					\
+	    _source_dir="$${_source_dir} --source-dir=$$i" ;	        \
+	done ;								\
+	gtkdoc-mkdb \
 		--module=$(DOC_MODULE) \
-		--source-dir=$(DOC_SOURCE_DIR) \
+		$${_source_dir} \
 		 --expand-content-files="$(expand_content_files)" \
 		--main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
 		--output-format=xml \
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index 2aab3a9..3f83491 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -121,7 +121,11 @@
 
 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
 	@echo '  DOC   Building XML'
-	@gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
+	@_source_dir='' ;						\
+	for i in $(DOC_SOURCE_DIR) ; do					\
+	    _source_dir="$${_source_dir} --source-dir=$$i" ;	        \
+	done ;							        \
+	gtkdoc-mkdb --module=$(DOC_MODULE) $${_source_dir}  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
 	@cp ../version.entities xml
 	@touch sgml-build.stamp
 
diff --git a/common/m4/ax_pthread.m4 b/common/m4/ax_pthread.m4
index d383ad5..4c4051e 100644
--- a/common/m4/ax_pthread.m4
+++ b/common/m4/ax_pthread.m4
@@ -19,10 +19,10 @@
 #   is necessary on AIX to use the special cc_r compiler alias.)
 #
 #   NOTE: You are assumed to not only compile your program with these flags,
-#   but also link it with them as well. e.g. you should link with
+#   but also to link with them as well. For example, you might link with
 #   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
 #
-#   If you are only building threads programs, you may wish to use these
+#   If you are only building threaded programs, you may wish to use these
 #   variables in your default LIBS, CFLAGS, and CC:
 #
 #     LIBS="$PTHREAD_LIBS $LIBS"
@@ -30,8 +30,8 @@
 #     CC="$PTHREAD_CC"
 #
 #   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
-#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
-#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
+#   that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
 #
 #   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
 #   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
@@ -82,35 +82,40 @@
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
-#serial 21
+#serial 23
 
 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
 AC_DEFUN([AX_PTHREAD], [
 AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_SED])
 AC_LANG_PUSH([C])
 ax_pthread_ok=no
 
 # We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on True64 or Sequent).
+# requires special compiler flags (e.g. on Tru64 or Sequent).
 # It gets checked for in the link test anyway.
 
 # First of all, check if the user has set any of the PTHREAD_LIBS,
 # etcetera environment variables, and if threads linking works using
 # them:
-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
-        save_CFLAGS="$CFLAGS"
+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
+        ax_pthread_save_CC="$CC"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-        save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
-        AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
+        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
+        AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
         AC_MSG_RESULT([$ax_pthread_ok])
-        if test x"$ax_pthread_ok" = xno; then
+        if test "x$ax_pthread_ok" = "xno"; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
         fi
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CC="$ax_pthread_save_CC"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 fi
 
 # We must check for the threads library under a number of different
@@ -123,7 +128,7 @@
 # which indicates that we try without any flags at all, and "pthread-config"
 # which is a program returning the flags for the Pth emulation library.
 
-ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
 
 # The ordering *is* (sometimes) important.  Some notes on the
 # individual items follow:
@@ -132,82 +137,225 @@
 # none: in case threads are in libc; should be tried before -Kthread and
 #       other compiler flags to prevent continual compiler warnings
 # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-# -pthreads: Solaris/gcc
-# -mthreads: Mingw32/gcc, Lynx/gcc
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
+#           (Note: HP C rejects this with "bad form for `-t' option")
+# -pthreads: Solaris/gcc (Note: HP C also rejects)
 # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-#      doesn't hurt to check since this sometimes defines pthreads too;
-#      also defines -D_REENTRANT)
-#      ... -mt is also the pthreads flag for HP/aCC
+#      doesn't hurt to check since this sometimes defines pthreads and
+#      -D_REENTRANT too), HP C (must be checked before -lpthread, which
+#      is present but should not be used directly; and before -mthreads,
+#      because the compiler interprets this as "-mt" + "-hreads")
+# -mthreads: Mingw32/gcc, Lynx/gcc
 # pthread: Linux, etcetera
 # --thread-safe: KAI C++
 # pthread-config: use pthread-config program (for GNU Pth library)
 
-case ${host_os} in
+case $host_os in
+
+        freebsd*)
+
+        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+
+        ax_pthread_flags="-kthread lthread $ax_pthread_flags"
+        ;;
+
+        hpux*)
+
+        # From the cc(1) man page: "[-mt] Sets various -D flags to enable
+        # multi-threading and also sets -lpthread."
+
+        ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
+        ;;
+
+        openedition*)
+
+        # IBM z/OS requires a feature-test macro to be defined in order to
+        # enable POSIX threads at all, so give the user a hint if this is
+        # not set. (We don't define these ourselves, as they can affect
+        # other portions of the system API in unpredictable ways.)
+
+        AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
+            [
+#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
+             AX_PTHREAD_ZOS_MISSING
+#            endif
+            ],
+            [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
+        ;;
+
         solaris*)
 
         # On Solaris (at least, for some versions), libc contains stubbed
         # (non-functional) versions of the pthreads routines, so link-based
-        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
-        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
-        # a function called by this macro, so we could check for that, but
-        # who knows whether they'll stub that too in a future libc.)  So,
-        # we'll just look for -pthreads and -lpthread first:
+        # tests will erroneously succeed. (N.B.: The stubs are missing
+        # pthread_cleanup_push, or rather a function called by this macro,
+        # so we could check for that, but who knows whether they'll stub
+        # that too in a future libc.)  So we'll check first for the
+        # standard Solaris way of linking pthreads (-mt -lpthread).
 
-        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
-        ;;
-
-        darwin*)
-        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags"
         ;;
 esac
 
-# Clang doesn't consider unrecognized options an error unless we specify
-# -Werror. We throw in some extra Clang-specific options to ensure that
-# this doesn't happen for GCC, which also accepts -Werror.
+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
 
-AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
-save_CFLAGS="$CFLAGS"
-ax_pthread_extra_flags="-Werror"
-CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
-                  [AC_MSG_RESULT([yes])],
-                  [ax_pthread_extra_flags=
-                   AC_MSG_RESULT([no])])
-CFLAGS="$save_CFLAGS"
+AS_IF([test "x$GCC" = "xyes"],
+      [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"])
 
-if test x"$ax_pthread_ok" = xno; then
-for flag in $ax_pthread_flags; do
+# The presence of a feature test macro requesting re-entrant function
+# definitions is, on some systems, a strong hint that pthreads support is
+# correctly enabled
 
-        case $flag in
+case $host_os in
+        darwin* | hpux* | linux* | osf* | solaris*)
+        ax_pthread_check_macro="_REENTRANT"
+        ;;
+
+        aix*)
+        ax_pthread_check_macro="_THREAD_SAFE"
+        ;;
+
+        *)
+        ax_pthread_check_macro="--"
+        ;;
+esac
+AS_IF([test "x$ax_pthread_check_macro" = "x--"],
+      [ax_pthread_check_cond=0],
+      [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
+
+# Are we compiling with Clang?
+
+AC_CACHE_CHECK([whether $CC is Clang],
+    [ax_cv_PTHREAD_CLANG],
+    [ax_cv_PTHREAD_CLANG=no
+     # Note that Autoconf sets GCC=yes for Clang as well as GCC
+     if test "x$GCC" = "xyes"; then
+        AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
+            [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
+#            if defined(__clang__) && defined(__llvm__)
+             AX_PTHREAD_CC_IS_CLANG
+#            endif
+            ],
+            [ax_cv_PTHREAD_CLANG=yes])
+     fi
+    ])
+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
+
+ax_pthread_clang_warning=no
+
+# Clang needs special handling, because older versions handle the -pthread
+# option in a rather... idiosyncratic way
+
+if test "x$ax_pthread_clang" = "xyes"; then
+
+        # Clang takes -pthread; it has never supported any other flag
+
+        # (Note 1: This will need to be revisited if a system that Clang
+        # supports has POSIX threads in a separate library.  This tends not
+        # to be the way of modern systems, but it's conceivable.)
+
+        # (Note 2: On some systems, notably Darwin, -pthread is not needed
+        # to get POSIX threads support; the API is always present and
+        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But
+        # -pthread does define _REENTRANT, and while the Darwin headers
+        # ignore this macro, third-party headers might not.)
+
+        PTHREAD_CFLAGS="-pthread"
+        PTHREAD_LIBS=
+
+        ax_pthread_ok=yes
+
+        # However, older versions of Clang make a point of warning the user
+        # that, in an invocation where only linking and no compilation is
+        # taking place, the -pthread option has no effect ("argument unused
+        # during compilation").  They expect -pthread to be passed in only
+        # when source code is being compiled.
+        #
+        # Problem is, this is at odds with the way Automake and most other
+        # C build frameworks function, which is that the same flags used in
+        # compilation (CFLAGS) are also used in linking.  Many systems
+        # supported by AX_PTHREAD require exactly this for POSIX threads
+        # support, and in fact it is often not straightforward to specify a
+        # flag that is used only in the compilation phase and not in
+        # linking.  Such a scenario is extremely rare in practice.
+        #
+        # Even though use of the -pthread flag in linking would only print
+        # a warning, this can be a nuisance for well-run software projects
+        # that build with -Werror.  So if the active version of Clang has
+        # this misfeature, we search for an option to squash it.
+
+        AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
+            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
+            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+             # Create an alternate version of $ac_link that compiles and
+             # links in two steps (.c -> .o, .o -> exe) instead of one
+             # (.c -> exe), because the warning occurs only in the second
+             # step
+             ax_pthread_save_ac_link="$ac_link"
+             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
+             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
+             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
+             ax_pthread_save_CFLAGS="$CFLAGS"
+             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
+                AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
+                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
+                ac_link="$ax_pthread_save_ac_link"
+                AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+                    [ac_link="$ax_pthread_2step_ac_link"
+                     AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+                         [break])
+                    ])
+             done
+             ac_link="$ax_pthread_save_ac_link"
+             CFLAGS="$ax_pthread_save_CFLAGS"
+             AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
+             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
+            ])
+
+        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
+                no | unknown) ;;
+                *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
+        esac
+
+fi # $ax_pthread_clang = yes
+
+if test "x$ax_pthread_ok" = "xno"; then
+for ax_pthread_try_flag in $ax_pthread_flags; do
+
+        case $ax_pthread_try_flag in
                 none)
                 AC_MSG_CHECKING([whether pthreads work without any flags])
                 ;;
 
+                -mt,pthread)
+                AC_MSG_CHECKING([whether pthreads work with -mt -lpthread])
+                PTHREAD_CFLAGS="-mt"
+                PTHREAD_LIBS="-lpthread"
+                ;;
+
                 -*)
-                AC_MSG_CHECKING([whether pthreads work with $flag])
-                PTHREAD_CFLAGS="$flag"
+                AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
+                PTHREAD_CFLAGS="$ax_pthread_try_flag"
                 ;;
 
                 pthread-config)
                 AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
-                if test x"$ax_pthread_config" = xno; then continue; fi
+                AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
                 PTHREAD_CFLAGS="`pthread-config --cflags`"
                 PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
                 ;;
 
                 *)
-                AC_MSG_CHECKING([for the pthreads library -l$flag])
-                PTHREAD_LIBS="-l$flag"
+                AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
+                PTHREAD_LIBS="-l$ax_pthread_try_flag"
                 ;;
         esac
 
-        save_LIBS="$LIBS"
-        save_CFLAGS="$CFLAGS"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
 
         # Check for various functions.  We must include pthread.h,
         # since some functions may be macros.  (On the Sequent, we
@@ -218,7 +366,11 @@
         # pthread_cleanup_push because it is one of the few pthread
         # functions on Solaris that doesn't have a non-functional libc stub.
         # We try pthread_create on general principles.
+
         AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
+#                       if $ax_pthread_check_cond
+#                        error "$ax_pthread_check_macro must be defined"
+#                       endif
                         static void routine(void *a) { a = 0; }
                         static void *start_routine(void *a) { return a; }],
                        [pthread_t th; pthread_attr_t attr;
@@ -227,16 +379,14 @@
                         pthread_attr_init(&attr);
                         pthread_cleanup_push(routine, 0);
                         pthread_cleanup_pop(0) /* ; */])],
-                [ax_pthread_ok=yes],
-                [])
+            [ax_pthread_ok=yes],
+            [])
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         AC_MSG_RESULT([$ax_pthread_ok])
-        if test "x$ax_pthread_ok" = xyes; then
-                break;
-        fi
+        AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
 
         PTHREAD_LIBS=""
         PTHREAD_CFLAGS=""
@@ -244,71 +394,74 @@
 fi
 
 # Various other checks:
-if test "x$ax_pthread_ok" = xyes; then
-        save_LIBS="$LIBS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        save_CFLAGS="$CFLAGS"
+if test "x$ax_pthread_ok" = "xyes"; then
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-        AC_MSG_CHECKING([for joinable pthread attribute])
-        attr_name=unknown
-        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
-                           [int attr = $attr; return attr /* ; */])],
-                [attr_name=$attr; break],
-                [])
-        done
-        AC_MSG_RESULT([$attr_name])
-        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-            AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
-                               [Define to necessary symbol if this constant
-                                uses a non-standard name on your system.])
-        fi
+        AC_CACHE_CHECK([for joinable pthread attribute],
+            [ax_cv_PTHREAD_JOINABLE_ATTR],
+            [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+                 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+                                                 [int attr = $ax_pthread_attr; return attr /* ; */])],
+                                [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
+                                [])
+             done
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
+               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
+               test "x$ax_pthread_joinable_attr_defined" != "xyes"],
+              [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
+                                  [$ax_cv_PTHREAD_JOINABLE_ATTR],
+                                  [Define to necessary symbol if this constant
+                                   uses a non-standard name on your system.])
+               ax_pthread_joinable_attr_defined=yes
+              ])
 
-        AC_MSG_CHECKING([if more special flags are required for pthreads])
-        flag=no
-        case ${host_os} in
-            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
-            osf* | hpux*) flag="-D_REENTRANT";;
-            solaris*)
-            if test "$GCC" = "yes"; then
-                flag="-D_REENTRANT"
-            else
-                # TODO: What about Clang on Solaris?
-                flag="-mt -D_REENTRANT"
-            fi
-            ;;
-        esac
-        AC_MSG_RESULT([$flag])
-        if test "x$flag" != xno; then
-            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
-        fi
+        AC_CACHE_CHECK([whether more special flags are required for pthreads],
+            [ax_cv_PTHREAD_SPECIAL_FLAGS],
+            [ax_cv_PTHREAD_SPECIAL_FLAGS=no
+             case $host_os in
+             solaris*)
+             ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
+             ;;
+             esac
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
+               test "x$ax_pthread_special_flags_added" != "xyes"],
+              [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
+               ax_pthread_special_flags_added=yes])
 
         AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
-            [ax_cv_PTHREAD_PRIO_INHERIT], [
-                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
-                                                [[int i = PTHREAD_PRIO_INHERIT;]])],
-                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
-                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            [ax_cv_PTHREAD_PRIO_INHERIT],
+            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+                                             [[int i = PTHREAD_PRIO_INHERIT;]])],
+                            [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                            [ax_cv_PTHREAD_PRIO_INHERIT=no])
             ])
-        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
-            [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
+               test "x$ax_pthread_prio_inherit_defined" != "xyes"],
+              [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
+               ax_pthread_prio_inherit_defined=yes
+              ])
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         # More AIX lossage: compile with *_r variant
-        if test "x$GCC" != xyes; then
+        if test "x$GCC" != "xyes"; then
             case $host_os in
                 aix*)
                 AS_CASE(["x/$CC"],
-                  [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
-                  [#handle absolute path differently from PATH based program lookup
-                   AS_CASE(["x$CC"],
-                     [x/*],
-                     [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
-                     [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
+                    [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+                    [#handle absolute path differently from PATH based program lookup
+                     AS_CASE(["x$CC"],
+                         [x/*],
+                         [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
+                         [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
                 ;;
             esac
         fi
@@ -321,7 +474,7 @@
 AC_SUBST([PTHREAD_CC])
 
 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test x"$ax_pthread_ok" = xyes; then
+if test "x$ax_pthread_ok" = "xyes"; then
         ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
         :
 else
diff --git a/common/win32.mak b/common/win32.mak
index 87cd346..6060532 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -61,8 +61,11 @@
 
 update-exports:
 	make check-exports 2>&1 | patch -p1
-	git add win32/common/libgst*.def
-	git diff --cached -- win32/common/
+	if test -f "$(top_srcdir)/win32/common/libgstgl.def"; then \
+	  git checkout "$(top_srcdir)/win32/common/libgstgl.def";  \
+	fi
+	git add $(top_srcdir)/win32/common/libgst*.def
+	git diff --cached -- $(top_srcdir)/win32/common/
 	echo '^^^--- updated and staged changes above'
 
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
diff --git a/configure b/configure
index ca84420..4fa858d 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 Ugly Plug-ins 1.8.3.
+# Generated by GNU Autoconf 2.69 for GStreamer Ugly Plug-ins 1.9.90.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Ugly Plug-ins'
 PACKAGE_TARNAME='gst-plugins-ugly'
-PACKAGE_VERSION='1.8.3'
-PACKAGE_STRING='GStreamer Ugly Plug-ins 1.8.3'
+PACKAGE_VERSION='1.9.90'
+PACKAGE_STRING='GStreamer Ugly Plug-ins 1.9.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1672,7 +1672,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 Ugly Plug-ins 1.8.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer Ugly Plug-ins 1.9.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1745,7 +1745,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Ugly Plug-ins 1.8.3:";;
+     short | recursive ) echo "Configuration of GStreamer Ugly Plug-ins 1.9.90:";;
    esac
   cat <<\_ACEOF
 
@@ -1987,7 +1987,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Ugly Plug-ins configure 1.8.3
+GStreamer Ugly Plug-ins configure 1.9.90
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2893,7 +2893,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 Ugly Plug-ins $as_me 1.8.3, which was
+It was created by GStreamer Ugly Plug-ins $as_me 1.9.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3872,7 +3872,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-ugly'
- VERSION='1.8.3'
+ VERSION='1.9.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4083,9 +4083,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.8.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.8.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.8.3 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.9.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.9.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.9.90 | cut -d'.' -f3)
 
 
 
@@ -4096,7 +4096,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.8.3 | cut -d'.' -f4)
+  NANO=$(echo 1.9.90 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8930,10 +8930,10 @@
 done
 
 
-  GST_CURRENT=803
+  GST_CURRENT=990
   GST_REVISION=0
-  GST_AGE=803
-  GST_LIBVERSION=803:0:803
+  GST_AGE=990
+  GST_LIBVERSION=990:0:990
 
 
 
@@ -13561,8 +13561,8 @@
 
 
 
-GST_REQ=1.8.0
-GSTPB_REQ=1.8.0
+GST_REQ=1.9.90
+GSTPB_REQ=1.9.90
 
 
 
@@ -27032,7 +27032,7 @@
   HAVE_MPEG2DEC=no
 
 
-  which="libmpeg2 >= 0.4.0"
+  which="libmpeg2 >= 0.5.1"
     required="no"
 
 
@@ -28797,7 +28797,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Ugly Plug-ins $as_me 1.8.3, which was
+This file was extended by GStreamer Ugly Plug-ins $as_me 1.9.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -28863,7 +28863,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 Ugly Plug-ins config.status 1.8.3
+GStreamer Ugly Plug-ins config.status 1.9.90
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 15917bf..40c6ffb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 dnl initialize autoconf
 dnl releases only do -Wall, cvs and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for cvs/prerelease
-AC_INIT([GStreamer Ugly Plug-ins],[1.8.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-ugly])
+AC_INIT([GStreamer Ugly Plug-ins],[1.9.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-ugly])
 
 AG_GST_INIT
 
@@ -42,11 +42,11 @@
 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
   [GStreamer API Version])
 
-AS_LIBTOOL(GST, 803, 0, 803)
+AS_LIBTOOL(GST, 990, 0, 990)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.8.0
-GSTPB_REQ=1.8.0
+GST_REQ=1.9.90
+GSTPB_REQ=1.9.90
 
 dnl *** autotools stuff ****
 
@@ -339,7 +339,7 @@
 dnl *** mpeg2dec ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
 AG_GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
-  AG_GST_PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.4.0)
+  AG_GST_PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.5.1)
 ])
 
 dnl *** mpg123 ***
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 5029a11..388bef0 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -953,9 +953,13 @@
 @ENABLE_GTK_DOC_TRUE@		$(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 @ENABLE_GTK_DOC_TRUE@	@for f in $(EXAMPLE_CFILES); do \
 @ENABLE_GTK_DOC_TRUE@		$(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done
-@ENABLE_GTK_DOC_TRUE@	@gtkdoc-mkdb \
+@ENABLE_GTK_DOC_TRUE@	@_source_dir='' ;						\
+@ENABLE_GTK_DOC_TRUE@	for i in $(DOC_SOURCE_DIR) ; do					\
+@ENABLE_GTK_DOC_TRUE@	    _source_dir="$${_source_dir} --source-dir=$$i" ;	        \
+@ENABLE_GTK_DOC_TRUE@	done ;								\
+@ENABLE_GTK_DOC_TRUE@	gtkdoc-mkdb \
 @ENABLE_GTK_DOC_TRUE@		--module=$(DOC_MODULE) \
-@ENABLE_GTK_DOC_TRUE@		--source-dir=$(DOC_SOURCE_DIR) \
+@ENABLE_GTK_DOC_TRUE@		$${_source_dir} \
 @ENABLE_GTK_DOC_TRUE@		 --expand-content-files="$(expand_content_files)" \
 @ENABLE_GTK_DOC_TRUE@		--main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
 @ENABLE_GTK_DOC_TRUE@		--output-format=xml \
diff --git a/docs/plugins/gst-plugins-ugly-plugins.hierarchy b/docs/plugins/gst-plugins-ugly-plugins.hierarchy
index 0d41043..99bab3c 100644
--- a/docs/plugins/gst-plugins-ugly-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-ugly-plugins.hierarchy
@@ -13,6 +13,7 @@
           GstA52Dec
           GstAmrnbDec
           GstAmrwbDec
+          GstDvdLpcmDec
           GstMad
           GstMpg123AudioDec
         GstAudioEncoder
@@ -27,7 +28,6 @@
             GstPNMSrc
         GstBin
           GstPipeline
-        GstDvdLpcmDec
         GstDvdSubDec
         GstDvdSubParse
         GstRDTDepay
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-a52dec.html b/docs/plugins/html/gst-plugins-ugly-plugins-a52dec.html
index 7a18dc3..83f6ffa 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-a52dec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-a52dec.html
@@ -85,10 +85,36 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-a52dec.description"></a><h2>Description</h2>
+<p>Dolby Digital (AC-3) audio decoder.</p>
+<div class="refsect2">
+<a name="id-1.2.2.7.3"></a><h3>Example launch line</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> dvdreadsrc title<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> mpegpsdemux <span class="gtkdoc opt">!</span> a52dec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play audio part of a dvd title.
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>abc<span class="gtkdoc opt">.</span>ac3 <span class="gtkdoc opt">!</span> ac3parse <span class="gtkdoc opt">!</span> a52dec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode and play a stand alone AC-3 file.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.2.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.2.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -114,7 +140,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.2.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.2.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-ugly-plugins-amrnbdec.html b/docs/plugins/html/gst-plugins-ugly-plugins-amrnbdec.html
index 19264f4..891afa0 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-amrnbdec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-amrnbdec.html
@@ -73,10 +73,26 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-amrnbdec.description"></a><h2>Description</h2>
+<p>AMR narrowband decoder based on the </p>
+<a class="ulink" href="http://sourceforge.net/projects/opencore-amr" target="_top">opencore codec implementation</a>.
+<div class="refsect2">
+<a name="id-1.2.3.7.4"></a><h3>Example launch line</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>abc<span class="gtkdoc opt">.</span>amr <span class="gtkdoc opt">!</span> amrparse <span class="gtkdoc opt">!</span> amrnbdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
 <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.3.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +118,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.3.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,6 +191,10 @@
 <p>Default value: IF1</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-amrnbdec.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-ugly-plugins-amrnbenc.html#GstAmrnbEnc"><span class="type">GstAmrnbEnc</span></a>, <a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct"><span class="type">GstAmrParse</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-amrnbenc.html b/docs/plugins/html/gst-plugins-ugly-plugins-amrnbenc.html
index c544e5d..3a66bc0 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-amrnbenc.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-amrnbenc.html
@@ -80,10 +80,28 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-amrnbenc.description"></a><h2>Description</h2>
+<p>AMR narrowband encoder based on the </p>
+<a class="ulink" href="http://sourceforge.net/projects/opencore-amr" target="_top">opencore codec implementation</a>.
+<div class="refsect2">
+<a name="id-1.2.4.8.4"></a><h3>Example launch line</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>abc<span class="gtkdoc opt">.</span>wav <span class="gtkdoc opt">!</span> wavparse <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> amrnbenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>abc<span class="gtkdoc opt">.</span>amr</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+Please note that the above stream misses the header, that is needed to play
+the stream.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.4.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.4.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +127,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.4.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.4.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -182,6 +200,10 @@
 <p>Default value: MR122</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-amrnbenc.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-ugly-plugins-amrnbdec.html#GstAmrnbDec"><span class="type">GstAmrnbDec</span></a>, <span class="type">GstAmrnbParse</span></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-amrwbdec.html b/docs/plugins/html/gst-plugins-ugly-plugins-amrwbdec.html
index 8d8e154..3ffab5e 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-amrwbdec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-amrwbdec.html
@@ -57,10 +57,26 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-amrwbdec.description"></a><h2>Description</h2>
+<p>AMR wideband decoder based on the </p>
+<a class="ulink" href="http://sourceforge.net/projects/opencore-amr" target="_top">opencore codec implementation</a>.
+<div class="refsect2">
+<a name="id-1.2.5.6.4"></a><h3>Example launch line</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>abc<span class="gtkdoc opt">.</span>amr <span class="gtkdoc opt">!</span> amrparse <span class="gtkdoc opt">!</span> amrwbdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.5.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.5.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.5.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.5.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -147,8 +163,13 @@
 <div class="refsect2">
 <a name="GstAmrwbDec-struct"></a><h3>struct GstAmrwbDec</h3>
 <pre class="programlisting">struct GstAmrwbDec;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-amrwbdec.see-also"></a><h2>See Also</h2>
+<p><span class="type">GstAmrwbEnc</span></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-cdiocddasrc.html b/docs/plugins/html/gst-plugins-ugly-plugins-cdiocddasrc.html
index 5f3415b..6947f2d 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-cdiocddasrc.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-cdiocddasrc.html
@@ -82,10 +82,61 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-cdiocddasrc.description"></a><h2>Description</h2>
+<div class="refsect2">
+<a name="id-1.2.6.8.2"></a><h3>Example launch line</h3>
+<p>
+cdiocddasrc reads and extracts raw audio from Audio CDs. It can operate
+in one of two modes:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+   treat each track as a separate stream, counting time from the start
+   of the track to the end of the track and posting EOS at the end of
+   a track, or
+ </p></li>
+<li class="listitem"><p>
+   treat the entire disc as one stream, counting time from the start of
+   the first track to the end of the last track, posting EOS only at
+   the end of the last track.
+ </p></li>
+</ul></div>
+<p>
+</p>
+<p>
+With a recent-enough version of libcdio, the element will extract
+CD-TEXT if this is supported by the CD-drive and CD-TEXT information
+is available on the CD. The information will be posted on the bus in
+form of a tag message.
+</p>
+<p>
+When opened, the element will also calculate a CDDB disc ID and a
+MusicBrainz disc ID, which applications can use to query online
+databases for artist/title information. These disc IDs will also be
+posted on the bus as part of the tag messages.
+</p>
+<p>
+cdiocddasrc supports the GstUriHandler interface, so applications can use
+playbin with cdda://&lt;track-number&gt; URIs for playback (they will have
+to connect to playbin's notify::source signal and set the device on the
+cd source in the notify callback if they want to set the device property).
+Applications should use seeks in "track" format to switch between different
+tracks of the same CD (passing a new cdda:// URI to playbin involves opening
+and closing the CD device, which is much slower).
+</p>
+<p>
+</p>
+<pre class="programlisting">
+gst-launch-1.0 cdiocddasrc track=5 device=/dev/cdrom ! audioconvert ! vorbisenc ! oggmux ! filesink location=track5.ogg
+</pre>
+<p>
+This pipeline extracts track 5 of the audio CD and encodes it into an
+Ogg/Vorbis file.
+</p>
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.6.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.6.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -111,7 +162,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.6.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.6.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -161,6 +212,10 @@
 <p>Default value: -1</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-cdiocddasrc.see-also"></a><h2>See Also</h2>
+<p>GstCdParanoiaSrc, GstAudioCdSrc</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html b/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html
index 701fc5d..338c12c 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html
@@ -107,10 +107,82 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-lamemp3enc.description"></a><h2>Description</h2>
+<p>This element encodes raw integer audio into an MPEG-1 layer 3 (MP3) stream.
+Note that <a class="ulink" href="http://en.wikipedia.org/wiki/MP3" target="_top">MP3</a> is not
+a free format, there are licensing and patent issues to take into
+consideration. See <a class="ulink" href="http://www.vorbis.com/" target="_top">Ogg/Vorbis</a>
+for a royalty free (and often higher quality) alternative.</p>
+<div class="refsect2">
+<a name="id-1.2.7.8.3"></a><h3>Output sample rate</h3>
+If no fixed output sample rate is negotiated on the element's src pad,
+the element will choose an optimal sample rate to resample to internally.
+For example, a 16-bit 44.1 KHz mono audio stream encoded at 48 kbit will
+get resampled to 32 KHz.  Use filter caps on the src pad to force a
+particular sample rate.
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.7.8.4"></a><h3>Example pipelines</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v audiotestsrc wave<span class="gtkdoc opt">=</span>sine num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> lamemp3enc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode a test sine signal to MP3.
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v autoaudiosrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> lamemp3enc target<span class="gtkdoc opt">=</span>bitrate bitrate<span class="gtkdoc opt">=</span><span class="number">192</span> <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Record from a sound card using ALSA and encode to MP3 with an average bitrate of 192kbps
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>music<span class="gtkdoc opt">.</span>wav <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> lamemp3enc target<span class="gtkdoc opt">=</span>quality quality<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> id3v2mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>music<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Transcode from a .wav file to MP3 (the id3v2mux element is optional) with best VBR quality
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v cdda<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//5 ! audioconvert ! lamemp3enc target=bitrate cbr=true bitrate=192 ! filesink location=track5.mp3</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode Audio CD track 5 to MP3 with a constant bitrate of 192kbps
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">10</span> <span class="gtkdoc opt">!</span> audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>rate<span class="gtkdoc opt">=</span><span class="number">44100</span><span class="gtkdoc opt">,</span>channels<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> lamemp3enc target<span class="gtkdoc opt">=</span>bitrate cbr<span class="gtkdoc opt">=</span><span class="keyword">true</span> bitrate<span class="gtkdoc opt">=</span><span class="number">48</span> <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode to a fixed sample rate
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.7.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.7.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +208,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.7.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.7.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -201,6 +273,7 @@
 <div class="refsect2">
 <a name="GstLameMP3Enc-struct"></a><h3>struct GstLameMP3Enc</h3>
 <pre class="programlisting">struct GstLameMP3Enc;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -255,6 +328,10 @@
 <p>Default value: Quality</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-lamemp3enc.see-also"></a><h2>See Also</h2>
+<p>lame, mad, vorbisenc</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-mad.html b/docs/plugins/html/gst-plugins-ugly-plugins-mad.html
index 67642da..b8cb0a0 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-mad.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-mad.html
@@ -80,10 +80,32 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-mad.description"></a><h2>Description</h2>
+<p>MP3 audio decoder. Note that while the mad plugin code is licensed under
+the LGPL, the libmad library itself is GPL licensed, so the effective
+runtime license of using the mad element is GPL.</p>
+<p>The mpg123audiodec and avdec_mp3 decoder elements are LGPL licensed and
+also tend to use less CPU for decoding.</p>
+<p>In general it doesn't matter which MP3 decoder you use, the main advantage
+of the mad decoder is that it also supports so-called 'freeform' mp3s which
+are mp3s with a bitrate higher than what the standard usually allows.</p>
+<div class="refsect2">
+<a name="id-1.2.8.7.5"></a><h3>Example pipelines</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>music<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mpegaudioparse <span class="gtkdoc opt">!</span> mad <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode and play an mp3 file
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.8.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.8.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +131,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.8.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.8.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -190,6 +212,10 @@
 <p>Default value: TRUE</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-mad.see-also"></a><h2>See Also</h2>
+<p>lame</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html b/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html
index d965f2c..de77d3a 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html
@@ -57,10 +57,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-mpg123audiodec.description"></a><h2>Description</h2>
+<p>Audio decoder for MPEG-1 layer 1/2/3 audio data.</p>
+<div class="refsect2">
+<a name="id-1.2.9.6.3"></a><h3>Example pipelines</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>music<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mpegaudioparse <span class="gtkdoc opt">!</span> mpg123audiodec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode and play the mp3 file
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.9.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.9.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.9.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.9.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -149,6 +164,10 @@
 <pre class="programlisting">struct GstMpg123AudioDec;</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-mpg123audiodec.see-also"></a><h2>See Also</h2>
+<p>lamemp3enc, mad</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-a52dec.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-a52dec.html
index ee55651..3f98fdf 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-a52dec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-a52dec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrnb.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrnb.html
index ae4e946..cdfa422 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrnb.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrnb.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrwbdec.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrwbdec.html
index b32b664..2536254 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrwbdec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-amrwbdec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-asf.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-asf.html
index a008aa3..3429369 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-asf.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-asf.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-cdio.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-cdio.html
index 08b2f61..4082226 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-cdio.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-cdio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdlpcmdec.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdlpcmdec.html
index 8ed1796..f343230 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdlpcmdec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdlpcmdec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdread.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdread.html
index a91eb8d..0cec27c 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdread.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdread.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdsub.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdsub.html
index 934ae0d..f6c5245 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdsub.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-dvdsub.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-lame.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-lame.html
index a8cac1e..66e3c0d 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-lame.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-lame.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mad.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mad.html
index f9208a2..a1379ee 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mad.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mad.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpeg2dec.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpeg2dec.html
index c1c87fa..2a413c8 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpeg2dec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpeg2dec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpg123.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpg123.html
index b66d740..f1b9500 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpg123.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpg123.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-realmedia.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-realmedia.html
index 49b0b08..316ce97 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-realmedia.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-realmedia.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-siddec.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-siddec.html
index 58f715c..6cb9b37 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-siddec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-siddec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html
index 384b140..dea79f4 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html
index 5d283bb..5d95984 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html b/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html
index 17237a0..a8b9b0f 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html
@@ -115,10 +115,30 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-siddec.description"></a><h2>Description</h2>
+<p>This element decodes .sid files to raw audio. .sid files are in fact
+small Commodore 64 programs that are executed on an emulated 6502 CPU and a
+MOS 6581 sound chip.</p>
+<p>This plugin will first load the complete program into memory before starting
+the emulator and producing output.</p>
+<p>Seeking is not (and cannot be) implemented.</p>
+<div class="refsect2">
+<a name="id-1.2.15.7.5"></a><h3>Example pipelines</h3>
+<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">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>Hawkeye<span class="gtkdoc opt">.</span>sid <span class="gtkdoc opt">!</span> siddec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode a sid file and play it back.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.15.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.15.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +164,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.15.7.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-ugly-plugins-twolame.html b/docs/plugins/html/gst-plugins-ugly-plugins-twolame.html
index 42db212..e5c9303 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-twolame.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-twolame.html
@@ -246,6 +246,7 @@
 <div class="refsect2">
 <a name="GstTwoLame-struct"></a><h3>struct GstTwoLame</h3>
 <pre class="programlisting">struct GstTwoLame;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html b/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html
index adeca37..ba053dc 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html
@@ -280,10 +280,110 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-ugly-plugins-x264enc.description"></a><h2>Description</h2>
+<p>This element encodes raw video into H264 compressed data,
+also otherwise known as MPEG-4 AVC (Advanced Video Codec).</p>
+<p>The <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--pass" title="The “pass” property"><span class="type">“pass”</span></a> property controls the type of encoding.  In case of Constant
+Bitrate Encoding (actually ABR), the <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--bitrate" title="The “bitrate” property"><span class="type">“bitrate”</span></a> will determine the quality
+of the encoding.  This will similarly be the case if this target bitrate
+is to obtained in multiple (2 or 3) pass encoding.
+Alternatively, one may choose to perform Constant Quantizer or Quality encoding,
+in which case the <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--quantizer" title="The “quantizer” property"><span class="type">“quantizer”</span></a> property controls much of the outcome, in that case <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--bitrate" title="The “bitrate” property"><span class="type">“bitrate”</span></a> is the maximum bitrate.</p>
+<p>The H264 profile that is eventually used depends on a few settings.
+If <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--dct8x8" title="The “dct8x8” property"><span class="type">“dct8x8”</span></a> is enabled, then High profile is used.
+Otherwise, if <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--cabac" title="The “cabac” property"><span class="type">“cabac”</span></a> entropy coding is enabled or <a class="link" href="gst-plugins-ugly-plugins-x264enc.html#GstX264Enc--bframes" title="The “bframes” property"><span class="type">“bframes”</span></a>
+are allowed, then Main Profile is in effect, and otherwise Baseline profile
+applies.  The high profile is imposed by default,
+which is fine for most software players and settings,
+but in some cases (e.g. hardware platforms) a more restricted profile/level
+may be necessary. The recommended way to set a profile is to set it in the
+downstream caps.</p>
+<p>If a preset/tuning are specified then these will define the default values and
+the property defaults will be ignored. After this the option-string property is
+applied, followed by the user-set properties, fast first pass restrictions and
+finally the profile restrictions.</p>
+<div class="note">Some settings, including the default settings, may lead to quite
+some latency (i.e. frame buffering) in the encoder. This may cause problems
+with pipeline stalling in non-trivial pipelines, because the encoder latency
+is often considerably higher than the default size of a simple queue
+element. Such problems are caused by one of the queues in the other
+non-x264enc streams/branches filling up and blocking upstream. They can
+be fixed by relaxing the default time/size/buffer limits on the queue
+elements in the non-x264 branches, or using a (single) multiqueue element
+for all branches. Also see the last example below. You can also work around
+this problem by setting the tune=zerolatency property, but this will affect
+overall encoding quality so may not be appropriate for your use case.
+</div>
+<div class="refsect2">
+<a name="id-1.2.17.8.7"></a><h3>Example pipeline</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> x264enc qp<span class="gtkdoc opt">-</span>min<span class="gtkdoc opt">=</span><span class="number">18</span> <span class="gtkdoc opt">!</span> \
+  avimux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>avi</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to H264 muxed in an
+AVI container, while ensuring a sane minimum quantization factor to avoid
+some (excessive) waste. You should ideally never put H264 into an AVI
+container (or really anything else, for that matter) - use Matroska or
+MP4/QuickTime or MPEG-TS instead.
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> x264enc pass<span class="gtkdoc opt">=</span>quant <span class="gtkdoc opt">!</span> \
+  matroskamux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>mkv</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to H264 using fixed
+quantization, and muxes it in a Matroska container.
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> x264enc pass<span class="gtkdoc opt">=</span><span class="number">5</span> quantizer<span class="gtkdoc opt">=</span><span class="number">25</span> speed<span class="gtkdoc opt">-</span>preset<span class="gtkdoc opt">=</span><span class="number">6</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>h264<span class="gtkdoc opt">,</span> profile<span class="gtkdoc opt">=</span>baseline <span class="gtkdoc opt">!</span> \
+  qtmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>mov</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to H264 using
+constant quality at around Q25 using the 'medium' speed/quality preset and
+restricting the options used so that the output is H.264 Baseline Profile
+compliant and finally multiplexing the output in Quicktime mov format.
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink \
+  t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> x264enc rc<span class="gtkdoc opt">-</span>lookahead<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> fakesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to H264 while
+displaying the input material at the same time.  As mentioned above,
+specific settings are needed in this case to avoid pipeline stalling.
+Depending on goals and context, other approaches are possible, e.g.
+tune=zerolatency might be configured, or queue sizes increased.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.17.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.17.8.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -309,7 +409,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.17.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.17.8.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -709,6 +809,10 @@
 <p>Default value: Automatic (use incoming video information)</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-ugly-plugins-x264enc.see-also"></a><h2>See Also</h2>
+<p>faac</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 23b9fd4..152de59 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Ugly Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Ugly Plugins 1.0 (1.8.3)
+      for GStreamer Ugly Plugins 1.0 (1.9.90)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/</a>.
     </p></div>
diff --git a/docs/plugins/inspect/plugin-a52dec.xml b/docs/plugins/inspect/plugin-a52dec.xml
index c9542d3..b0843dd 100644
--- a/docs/plugins/inspect/plugin-a52dec.xml
+++ b/docs/plugins/inspect/plugin-a52dec.xml
@@ -3,7 +3,7 @@
   <description>Decodes ATSC A/52 encoded audio streams</description>
   <filename>../../ext/a52dec/.libs/libgsta52dec.so</filename>
   <basename>libgsta52dec.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-amrnb.xml b/docs/plugins/inspect/plugin-amrnb.xml
index 03d62f8..70c961a 100644
--- a/docs/plugins/inspect/plugin-amrnb.xml
+++ b/docs/plugins/inspect/plugin-amrnb.xml
@@ -3,7 +3,7 @@
   <description>Adaptive Multi-Rate Narrow-Band</description>
   <filename>../../ext/amrnb/.libs/libgstamrnb.so</filename>
   <basename>libgstamrnb.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>unknown</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-amrwbdec.xml b/docs/plugins/inspect/plugin-amrwbdec.xml
index debf9a9..225b5d9 100644
--- a/docs/plugins/inspect/plugin-amrwbdec.xml
+++ b/docs/plugins/inspect/plugin-amrwbdec.xml
@@ -3,7 +3,7 @@
   <description>Adaptive Multi-Rate Wide-Band Decoder</description>
   <filename>../../ext/amrwbdec/.libs/libgstamrwbdec.so</filename>
   <basename>libgstamrwbdec.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>unknown</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-asf.xml b/docs/plugins/inspect/plugin-asf.xml
index 8ea2426..82a3693 100644
--- a/docs/plugins/inspect/plugin-asf.xml
+++ b/docs/plugins/inspect/plugin-asf.xml
@@ -3,7 +3,7 @@
   <description>Demuxes and muxes audio and video in Microsofts ASF format</description>
   <filename>../../gst/asfdemux/.libs/libgstasf.so</filename>
   <basename>libgstasf.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cdio.xml b/docs/plugins/inspect/plugin-cdio.xml
index 33646ff..23fdee8 100644
--- a/docs/plugins/inspect/plugin-cdio.xml
+++ b/docs/plugins/inspect/plugin-cdio.xml
@@ -3,7 +3,7 @@
   <description>Read audio from audio CDs</description>
   <filename>../../ext/cdio/.libs/libgstcdio.so</filename>
   <basename>libgstcdio.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvdlpcmdec.xml b/docs/plugins/inspect/plugin-dvdlpcmdec.xml
index e534d13..3d23add 100644
--- a/docs/plugins/inspect/plugin-dvdlpcmdec.xml
+++ b/docs/plugins/inspect/plugin-dvdlpcmdec.xml
@@ -3,7 +3,7 @@
   <description>Decode DVD LPCM frames into standard PCM</description>
   <filename>../../gst/dvdlpcmdec/.libs/libgstdvdlpcmdec.so</filename>
   <basename>libgstdvdlpcmdec.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-private1-lpcm; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 32000, 44100, 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ true, false }, mute=(boolean){ true, false }</details>
+          <details>audio/x-private1-lpcm; audio/x-private2-lpcm; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 32000, 44100, 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ true, false }, mute=(boolean){ true, false }</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-dvdread.xml b/docs/plugins/inspect/plugin-dvdread.xml
index f02def9..9a9da6b 100644
--- a/docs/plugins/inspect/plugin-dvdread.xml
+++ b/docs/plugins/inspect/plugin-dvdread.xml
@@ -3,7 +3,7 @@
   <description>Access a DVD with dvdread</description>
   <filename>../../ext/dvdread/.libs/libgstdvdread.so</filename>
   <basename>libgstdvdread.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvdsub.xml b/docs/plugins/inspect/plugin-dvdsub.xml
index 078cbca..efb0fb6 100644
--- a/docs/plugins/inspect/plugin-dvdsub.xml
+++ b/docs/plugins/inspect/plugin-dvdsub.xml
@@ -3,7 +3,7 @@
   <description>DVD subtitle parser and decoder</description>
   <filename>../../gst/dvdsub/.libs/libgstdvdsub.so</filename>
   <basename>libgstdvdsub.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-lame.xml b/docs/plugins/inspect/plugin-lame.xml
index d745521..d6a2137 100644
--- a/docs/plugins/inspect/plugin-lame.xml
+++ b/docs/plugins/inspect/plugin-lame.xml
@@ -3,7 +3,7 @@
   <description>Encode MP3s with LAME</description>
   <filename>../../ext/lame/.libs/libgstlame.so</filename>
   <basename>libgstlame.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mad.xml b/docs/plugins/inspect/plugin-mad.xml
index e372097..f58e7ba 100644
--- a/docs/plugins/inspect/plugin-mad.xml
+++ b/docs/plugins/inspect/plugin-mad.xml
@@ -3,7 +3,7 @@
   <description>mp3 decoding based on the mad library</description>
   <filename>../../ext/mad/.libs/libgstmad.so</filename>
   <basename>libgstmad.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpeg2dec.xml b/docs/plugins/inspect/plugin-mpeg2dec.xml
index 4788a8b..5bf08c9 100644
--- a/docs/plugins/inspect/plugin-mpeg2dec.xml
+++ b/docs/plugins/inspect/plugin-mpeg2dec.xml
@@ -3,7 +3,7 @@
   <description>LibMpeg2 decoder</description>
   <filename>../../ext/mpeg2dec/.libs/libgstmpeg2dec.so</filename>
   <basename>libgstmpeg2dec.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mpg123.xml b/docs/plugins/inspect/plugin-mpg123.xml
index 4f61e2b..ff41f0f 100644
--- a/docs/plugins/inspect/plugin-mpg123.xml
+++ b/docs/plugins/inspect/plugin-mpg123.xml
@@ -3,7 +3,7 @@
   <description>mp3 decoding based on the mpg123 library</description>
   <filename>../../ext/mpg123/.libs/libgstmpg123.so</filename>
   <basename>libgstmpg123.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-realmedia.xml b/docs/plugins/inspect/plugin-realmedia.xml
index 11da1c4..35fb844 100644
--- a/docs/plugins/inspect/plugin-realmedia.xml
+++ b/docs/plugins/inspect/plugin-realmedia.xml
@@ -3,7 +3,7 @@
   <description>RealMedia support plugins</description>
   <filename>../../gst/realmedia/.libs/libgstrmdemux.so</filename>
   <basename>libgstrmdemux.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-siddec.xml b/docs/plugins/inspect/plugin-siddec.xml
index 9e0f6e9..bedc6cc 100644
--- a/docs/plugins/inspect/plugin-siddec.xml
+++ b/docs/plugins/inspect/plugin-siddec.xml
@@ -3,7 +3,7 @@
   <description>Uses libsidplay to decode .sid files</description>
   <filename>../../ext/sidplay/.libs/libgstsid.so</filename>
   <basename>libgstsid.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-twolame.xml b/docs/plugins/inspect/plugin-twolame.xml
index 55ead55..21acede 100644
--- a/docs/plugins/inspect/plugin-twolame.xml
+++ b/docs/plugins/inspect/plugin-twolame.xml
@@ -3,7 +3,7 @@
   <description>Encode MP2s with TwoLAME</description>
   <filename>../../ext/twolame/.libs/libgsttwolame.so</filename>
   <basename>libgsttwolame.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-x264.xml b/docs/plugins/inspect/plugin-x264.xml
index 9651da2..88ee619 100644
--- a/docs/plugins/inspect/plugin-x264.xml
+++ b/docs/plugins/inspect/plugin-x264.xml
@@ -3,7 +3,7 @@
   <description>libx264-based H264 plugins</description>
   <filename>../../ext/x264/.libs/libgstx264.so</filename>
   <basename>libgstx264.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-xingmux.xml b/docs/plugins/inspect/plugin-xingmux.xml
index 31aee35..46452f3 100644
--- a/docs/plugins/inspect/plugin-xingmux.xml
+++ b/docs/plugins/inspect/plugin-xingmux.xml
@@ -3,7 +3,7 @@
   <description>Add XING tags to mpeg audio files</description>
   <filename>../../gst/xingmux/.libs/libgstxingmux.so</filename>
   <basename>libgstxingmux.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/ext/a52dec/gsta52dec.c b/ext/a52dec/gsta52dec.c
index c78cfeb..eabf152 100644
--- a/ext/a52dec/gsta52dec.c
+++ b/ext/a52dec/gsta52dec.c
@@ -38,9 +38,10 @@
 #endif
 
 #include <string.h>
-
 #include <stdlib.h>
-#include "_stdint.h"
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
 
 #include <gst/gst.h>
 
@@ -97,8 +98,8 @@
 static gboolean gst_a52dec_start (GstAudioDecoder * dec);
 static gboolean gst_a52dec_stop (GstAudioDecoder * dec);
 static gboolean gst_a52dec_set_format (GstAudioDecoder * bdec, GstCaps * caps);
-static gboolean gst_a52dec_parse (GstAudioDecoder * dec, GstAdapter * adapter,
-    gint * offset, gint * length);
+static GstFlowReturn gst_a52dec_parse (GstAudioDecoder * dec,
+    GstAdapter * adapter, gint * offset, gint * length);
 static GstFlowReturn gst_a52dec_handle_frame (GstAudioDecoder * dec,
     GstBuffer * buffer);
 
@@ -185,10 +186,8 @@
       g_param_spec_boolean ("lfe", "LFE", "LFE", TRUE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
   gst_element_class_set_static_metadata (gstelement_class,
       "ATSC A/52 audio decoder", "Codec/Decoder/Audio",
       "Decodes ATSC A/52 encoded audio streams",
diff --git a/ext/amrnb/amrnbdec.c b/ext/amrnb/amrnbdec.c
index 894c085..653f1c5 100644
--- a/ext/amrnb/amrnbdec.c
+++ b/ext/amrnb/amrnbdec.c
@@ -96,8 +96,8 @@
 static gboolean gst_amrnbdec_start (GstAudioDecoder * dec);
 static gboolean gst_amrnbdec_stop (GstAudioDecoder * dec);
 static gboolean gst_amrnbdec_set_format (GstAudioDecoder * dec, GstCaps * caps);
-static gboolean gst_amrnbdec_parse (GstAudioDecoder * dec, GstAdapter * adapter,
-    gint * offset, gint * length);
+static GstFlowReturn gst_amrnbdec_parse (GstAudioDecoder * dec,
+    GstAdapter * adapter, gint * offset, gint * length);
 static GstFlowReturn gst_amrnbdec_handle_frame (GstAudioDecoder * dec,
     GstBuffer * buffer);
 
@@ -114,10 +114,8 @@
   object_class->set_property = gst_amrnbdec_set_property;
   object_class->get_property = gst_amrnbdec_get_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "AMR-NB audio decoder",
       "Codec/Decoder/Audio",
diff --git a/ext/amrnb/amrnbenc.c b/ext/amrnb/amrnbenc.c
index 207b5dd..2f72b9f 100644
--- a/ext/amrnb/amrnbenc.c
+++ b/ext/amrnb/amrnbenc.c
@@ -154,10 +154,8 @@
           BANDMODE_DEFAULT,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "AMR-NB audio encoder",
       "Codec/Encoder/Audio",
diff --git a/ext/amrwbdec/amrwbdec.c b/ext/amrwbdec/amrwbdec.c
index 6cbce45..f90b7b7 100644
--- a/ext/amrwbdec/amrwbdec.c
+++ b/ext/amrwbdec/amrwbdec.c
@@ -69,8 +69,8 @@
 static gboolean gst_amrwbdec_start (GstAudioDecoder * dec);
 static gboolean gst_amrwbdec_stop (GstAudioDecoder * dec);
 static gboolean gst_amrwbdec_set_format (GstAudioDecoder * dec, GstCaps * caps);
-static gboolean gst_amrwbdec_parse (GstAudioDecoder * dec, GstAdapter * adapter,
-    gint * offset, gint * length);
+static GstFlowReturn gst_amrwbdec_parse (GstAudioDecoder * dec,
+    GstAdapter * adapter, gint * offset, gint * length);
 static GstFlowReturn gst_amrwbdec_handle_frame (GstAudioDecoder * dec,
     GstBuffer * buffer);
 
@@ -83,10 +83,8 @@
   GstAudioDecoderClass *base_class = GST_AUDIO_DECODER_CLASS (klass);
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "AMR-WB audio decoder",
       "Codec/Decoder/Audio",
diff --git a/ext/dvdread/dvdreadsrc.c b/ext/dvdread/dvdreadsrc.c
index 65ba58f..5df2637 100644
--- a/ext/dvdread/dvdreadsrc.c
+++ b/ext/dvdread/dvdreadsrc.c
@@ -23,11 +23,12 @@
 #include "config.h"
 #endif
 
-#include "_stdint.h"
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <unistd.h>
 #include <string.h>
 #include <errno.h>
 
@@ -163,8 +164,7 @@
       g_param_spec_int ("angle", "angle", "angle",
           1, 999, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "DVD Source",
       "Source/File/DVD",
diff --git a/ext/lame/gstlamemp3enc.c b/ext/lame/gstlamemp3enc.c
index 43b63ff..a4a637a 100644
--- a/ext/lame/gstlamemp3enc.c
+++ b/ext/lame/gstlamemp3enc.c
@@ -228,10 +228,10 @@
   gobject_class->get_property = gst_lamemp3enc_get_property;
   gobject_class->finalize = gst_lamemp3enc_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_lamemp3enc_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_lamemp3enc_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_lamemp3enc_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_lamemp3enc_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "L.A.M.E. mp3 encoder", "Codec/Encoder/Audio",
diff --git a/ext/mad/gstmad.c b/ext/mad/gstmad.c
index 93337d2..55899a5 100644
--- a/ext/mad/gstmad.c
+++ b/ext/mad/gstmad.c
@@ -85,8 +85,8 @@
 
 static gboolean gst_mad_start (GstAudioDecoder * dec);
 static gboolean gst_mad_stop (GstAudioDecoder * dec);
-static gboolean gst_mad_parse (GstAudioDecoder * dec, GstAdapter * adapter,
-    gint * offset, gint * length);
+static GstFlowReturn gst_mad_parse (GstAudioDecoder * dec,
+    GstAdapter * adapter, gint * offset, gint * length);
 static GstFlowReturn gst_mad_handle_frame (GstAudioDecoder * dec,
     GstBuffer * buffer);
 static void gst_mad_flush (GstAudioDecoder * dec, gboolean hard);
@@ -120,10 +120,10 @@
       g_param_spec_boolean ("ignore-crc", "Ignore CRC", "Ignore CRC errors",
           TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mad_sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mad_src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &mad_sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &mad_src_template_factory);
 
   gst_element_class_set_static_metadata (element_class, "mad mp3 decoder",
       "Codec/Decoder/Audio",
diff --git a/ext/mpeg2dec/gstmpeg2dec.c b/ext/mpeg2dec/gstmpeg2dec.c
index 069394e..137c7ea 100644
--- a/ext/mpeg2dec/gstmpeg2dec.c
+++ b/ext/mpeg2dec/gstmpeg2dec.c
@@ -32,19 +32,6 @@
 /* 16byte-aligns a buffer for libmpeg2 */
 #define ALIGN_16(p) ((void *)(((uintptr_t)(p) + 15) & ~((uintptr_t)15)))
 
-/* mpeg2dec changed a struct name after 0.3.1, here's a workaround */
-/* mpeg2dec also only defined MPEG2_RELEASE after 0.3.1
-   #if MPEG2_RELEASE < MPEG2_VERSION(0,3,2)
-*/
-#ifndef MPEG2_RELEASE
-#define MPEG2_VERSION(a,b,c) ((((a)&0xff)<<16)|(((b)&0xff)<<8)|((c)&0xff))
-#define MPEG2_RELEASE MPEG2_VERSION(0,3,1)
-typedef picture_t mpeg2_picture_t;
-typedef gint mpeg2_state_t;
-
-#define STATE_BUFFER 0
-#endif
-
 GST_DEBUG_CATEGORY_STATIC (mpeg2dec_debug);
 #define GST_CAT_DEFAULT mpeg2dec_debug
 GST_DEBUG_CATEGORY_STATIC (CAT_PERFORMANCE);
@@ -105,10 +92,10 @@
 
   gobject_class->finalize = gst_mpeg2dec_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &src_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template_factory);
   gst_element_class_set_static_metadata (element_class,
       "mpeg1 and mpeg2 video decoder", "Codec/Decoder/Video",
       "Uses libmpeg2 to decode MPEG video streams",
@@ -700,16 +687,12 @@
   if (GST_VIDEO_INFO_PAR_N (vinfo) == 1 &&
       GST_VIDEO_INFO_PAR_D (vinfo) == 1 &&
       sequence->pixel_width != 0 && sequence->pixel_height != 0) {
-#if MPEG2_RELEASE >= MPEG2_VERSION(0,5,0)
     guint pixel_width, pixel_height;
+
     if (mpeg2_guess_aspect (sequence, &pixel_width, &pixel_height)) {
       vinfo->par_n = pixel_width;
       vinfo->par_d = pixel_height;
     }
-#else
-    vinfo->par_n = sequence->pixel_width;
-    vinfo->par_d = sequence->pixel_height;
-#endif
     GST_DEBUG_OBJECT (mpeg2dec, "Setting PAR %d x %d",
         vinfo->par_n, vinfo->par_d);
   }
@@ -926,12 +909,9 @@
       GST_BUFFER_FLAG_SET (frame->output_buffer,
           GST_VIDEO_BUFFER_FLAG_INTERLACED);
     }
-#if MPEG2_RELEASE >= MPEG2_VERSION(0,5,0)
-    /* repeat field introduced in 0.5.0 */
     if (picture->flags & PIC_FLAG_REPEAT_FIRST_FIELD) {
       GST_BUFFER_FLAG_SET (frame->output_buffer, GST_VIDEO_BUFFER_FLAG_RFF);
     }
-#endif
   }
 
   if (mpeg2dec->discont_state == MPEG2DEC_DISC_NEW_PICTURE && key_frame) {
@@ -943,11 +923,7 @@
       GST_TIME_FORMAT,
       (picture->flags & PIC_FLAG_PROGRESSIVE_FRAME ? "prog" : "    "),
       (picture->flags & PIC_FLAG_TOP_FIELD_FIRST ? "tff" : "   "),
-#if MPEG2_RELEASE >= MPEG2_VERSION(0,5,0)
       (picture->flags & PIC_FLAG_REPEAT_FIRST_FIELD ? "rff" : "   "),
-#else
-      "unknown rff",
-#endif
       (picture->flags & PIC_FLAG_SKIP ? "skip" : "    "),
       (picture->flags & PIC_FLAG_COMPOSITE_DISPLAY ? "composite" : "         "),
       picture->nb_fields, GST_TIME_ARGS (frame->pts));
@@ -1095,13 +1071,11 @@
     GST_DEBUG_OBJECT (mpeg2dec, "parse state %d", state);
 
     switch (state) {
-#if MPEG2_RELEASE >= MPEG2_VERSION (0, 5, 0)
       case STATE_SEQUENCE_MODIFIED:
         GST_DEBUG_OBJECT (mpeg2dec, "sequence modified");
         mpeg2dec->discont_state = MPEG2DEC_DISC_NEW_PICTURE;
         gst_mpeg2dec_clear_buffers (mpeg2dec);
         /* fall through */
-#endif
       case STATE_SEQUENCE:
         ret = handle_sequence (mpeg2dec, info);
         /* if there is an error handling the sequence
@@ -1132,10 +1106,8 @@
         GST_LOG_OBJECT (mpeg2dec,
             "Second picture header encountered. Decoding 2nd field");
         break;
-#if MPEG2_RELEASE >= MPEG2_VERSION (0, 4, 0)
       case STATE_INVALID_END:
         GST_DEBUG_OBJECT (mpeg2dec, "invalid end");
-#endif
       case STATE_END:
         GST_DEBUG_OBJECT (mpeg2dec, "end");
       case STATE_SLICE:
diff --git a/ext/mpg123/gstmpg123audiodec.h b/ext/mpg123/gstmpg123audiodec.h
index e837a56..b865c41 100644
--- a/ext/mpg123/gstmpg123audiodec.h
+++ b/ext/mpg123/gstmpg123audiodec.h
@@ -19,6 +19,18 @@
 #ifndef __GST_MPG123_AUDIO_DEC_H__
 #define __GST_MPG123_AUDIO_DEC_H__
 
+/* This is what the visual studio build in mpg123 does before including the
+ * original header file. Without this we get syntax errors in the
+ * replace_reader function declarations because it doesn't know ssize_t etc.
+ * It doesn't realy matter for us if the ssize_t typedef here is correct. */
+#ifdef _MSC_VER
+#include <tchar.h>
+#include <stdlib.h>
+#include <sys/types.h>
+typedef long ssize_t;
+#include <stdint.h>
+#endif
+
 #include <gst/gst.h>
 #include <gst/audio/gstaudiodecoder.h>
 #include <mpg123.h>
diff --git a/ext/sidplay/gstsiddec.cc b/ext/sidplay/gstsiddec.cc
index f06ed9f..d09259d 100644
--- a/ext/sidplay/gstsiddec.cc
+++ b/ext/sidplay/gstsiddec.cc
@@ -21,15 +21,15 @@
 /**
  * SECTION:element-siddec
  *
- * This element decodes .sid files to raw audio. .sid files are in fact 
- * small Commodore 64 programs that are executed on an emulated 6502 CPU and a 
+ * This element decodes .sid files to raw audio. .sid files are in fact
+ * small Commodore 64 programs that are executed on an emulated 6502 CPU and a
  * MOS 6581 sound chip.
- * 
+ *
  * This plugin will first load the complete program into memory before starting
  * the emulator and producing output.
- * 
+ *
  * Seeking is not (and cannot be) implemented.
- * 
+ *
  * <refsect2>
  * <title>Example pipelines</title>
  * |[
@@ -198,10 +198,8 @@
       "Codec/Decoder/Audio", "Use libsidplay to decode SID audio tunes",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_templ);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_templ);
 
   GST_DEBUG_CATEGORY_INIT (gst_siddec_debug, "siddec", 0,
       "C64 sid song player");
@@ -396,7 +394,7 @@
   GstSidDec *siddec;
   GstBuffer *out;
   GstMapInfo outmap;
-  gint64 value, offset, time;
+  gint64 value, offset, time = 0;
   GstFormat format;
 
   siddec = GST_SIDDEC (gst_pad_get_parent (pad));
@@ -410,29 +408,29 @@
 
   /* get offset in samples */
   format = GST_FORMAT_DEFAULT;
-  gst_siddec_src_convert (siddec->srcpad,
-      GST_FORMAT_BYTES, siddec->total_bytes, &format, &offset);
-  GST_BUFFER_OFFSET (out) = offset;
+  if (gst_siddec_src_convert (siddec->srcpad,
+        GST_FORMAT_BYTES, siddec->total_bytes, &format, &offset))
+    GST_BUFFER_OFFSET (out) = offset;
 
   /* get current timestamp */
   format = GST_FORMAT_TIME;
-  gst_siddec_src_convert (siddec->srcpad,
-      GST_FORMAT_BYTES, siddec->total_bytes, &format, &time);
-  GST_BUFFER_TIMESTAMP (out) = time;
+  if (gst_siddec_src_convert (siddec->srcpad,
+        GST_FORMAT_BYTES, siddec->total_bytes, &format, &time))
+    GST_BUFFER_TIMESTAMP (out) = time;
 
   /* update position and get new timestamp to calculate duration */
   siddec->total_bytes += siddec->blocksize;
 
   /* get offset in samples */
   format = GST_FORMAT_DEFAULT;
-  gst_siddec_src_convert (siddec->srcpad,
-      GST_FORMAT_BYTES, siddec->total_bytes, &format, &value);
-  GST_BUFFER_OFFSET_END (out) = value;
+  if (gst_siddec_src_convert (siddec->srcpad,
+        GST_FORMAT_BYTES, siddec->total_bytes, &format, &value))
+    GST_BUFFER_OFFSET_END (out) = value;
 
   format = GST_FORMAT_TIME;
-  gst_siddec_src_convert (siddec->srcpad,
-      GST_FORMAT_BYTES, siddec->total_bytes, &format, &value);
-  GST_BUFFER_DURATION (out) = value - time;
+  if (gst_siddec_src_convert (siddec->srcpad,
+        GST_FORMAT_BYTES, siddec->total_bytes, &format, &value))
+    GST_BUFFER_DURATION (out) = value - time;
 
   if ((ret = gst_pad_push (siddec->srcpad, out)) != GST_FLOW_OK)
     goto pause;
@@ -445,19 +443,16 @@
   /* ERRORS */
 pause:
   {
-    const gchar *reason = gst_flow_get_name (ret);
-
     if (ret == GST_FLOW_EOS) {
       /* perform EOS logic, FIXME, segment seek? */
       gst_pad_push_event (pad, gst_event_new_eos ());
     } else if (ret < GST_FLOW_EOS || ret == GST_FLOW_NOT_LINKED) {
       /* for fatal errors we post an error message */
-      GST_ELEMENT_ERROR (siddec, STREAM, FAILED,
-          (NULL), ("streaming task paused, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (siddec, ret);
       gst_pad_push_event (pad, gst_event_new_eos ());
     }
 
-    GST_INFO_OBJECT (siddec, "pausing task, reason: %s", reason);
+    GST_INFO_OBJECT (siddec, "pausing task, reason: %s", gst_flow_get_name (ret));
     gst_pad_pause_task (pad);
     goto done;
   }
diff --git a/ext/twolame/gsttwolamemp2enc.c b/ext/twolame/gsttwolamemp2enc.c
index a5e1b55..31bec6b 100644
--- a/ext/twolame/gsttwolamemp2enc.c
+++ b/ext/twolame/gsttwolamemp2enc.c
@@ -327,10 +327,10 @@
           0, G_MAXINT, gst_two_lame_default_settings.quick_mode_count,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_two_lame_src_template));
-  gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
-      gst_static_pad_template_get (&gst_two_lame_sink_template));
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_two_lame_src_template);
+  gst_element_class_add_static_pad_template (GST_ELEMENT_CLASS (klass),
+      &gst_two_lame_sink_template);
 
   gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
       "TwoLAME mp2 encoder", "Codec/Encoder/Audio",
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c
index 2be4ab2..f053744 100644
--- a/ext/x264/gstx264enc.c
+++ b/ext/x264/gstx264enc.c
@@ -1036,10 +1036,8 @@
       "Josef Zlomek <josef.zlomek@itonis.tv>, "
       "Mark Nauwelaerts <mnauw@users.sf.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 }
 
 static void
@@ -1474,8 +1472,113 @@
       && (info->fps_d == 1001) && ((info->fps_n == 30000)
           || (info->fps_n == 24000))) {
     encoder->x264param.vui.i_vidformat = 2;     /* NTSC */
-  } else
+  } else {
     encoder->x264param.vui.i_vidformat = 5;     /* unspecified */
+  }
+
+  switch (info->colorimetry.primaries) {
+    case GST_VIDEO_COLOR_PRIMARIES_BT709:
+      encoder->x264param.vui.i_colorprim = 1;
+      break;
+    case GST_VIDEO_COLOR_PRIMARIES_BT470M:
+      encoder->x264param.vui.i_colorprim = 4;
+      break;
+    case GST_VIDEO_COLOR_PRIMARIES_BT470BG:
+      encoder->x264param.vui.i_colorprim = 5;
+      break;
+    case GST_VIDEO_COLOR_PRIMARIES_SMPTE170M:
+      encoder->x264param.vui.i_colorprim = 6;
+      break;
+    case GST_VIDEO_COLOR_PRIMARIES_SMPTE240M:
+      encoder->x264param.vui.i_colorprim = 7;
+      break;
+    case GST_VIDEO_COLOR_PRIMARIES_FILM:
+      encoder->x264param.vui.i_colorprim = 8;
+      break;
+    case GST_VIDEO_COLOR_PRIMARIES_BT2020:
+      encoder->x264param.vui.i_colorprim = 9;
+      break;
+    default:
+      encoder->x264param.vui.i_colorprim = 2;
+      break;
+  }
+
+  switch (info->colorimetry.transfer) {
+    case GST_VIDEO_TRANSFER_BT709:
+      encoder->x264param.vui.i_transfer = 1;
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA22:
+      encoder->x264param.vui.i_transfer = 4;
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA28:
+      encoder->x264param.vui.i_transfer = 5;
+      break;
+    case GST_VIDEO_TRANSFER_SMPTE240M:
+      encoder->x264param.vui.i_transfer = 7;
+      break;
+    case GST_VIDEO_TRANSFER_GAMMA10:
+      encoder->x264param.vui.i_transfer = 8;
+      break;
+    case GST_VIDEO_TRANSFER_LOG100:
+      encoder->x264param.vui.i_transfer = 9;
+      break;
+    case GST_VIDEO_TRANSFER_LOG316:
+      encoder->x264param.vui.i_transfer = 10;
+      break;
+    default:
+      encoder->x264param.vui.i_transfer = 2;
+      break;
+
+  }
+
+  switch (info->colorimetry.matrix) {
+    case GST_VIDEO_COLOR_MATRIX_RGB:
+      encoder->x264param.vui.i_colmatrix = 0;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_FCC:
+      encoder->x264param.vui.i_colmatrix = 4;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_BT709:
+      encoder->x264param.vui.i_colmatrix = 1;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_BT601:
+      encoder->x264param.vui.i_colmatrix = 5;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_SMPTE240M:
+      encoder->x264param.vui.i_colmatrix = 7;
+      break;
+    case GST_VIDEO_COLOR_MATRIX_BT2020:
+      encoder->x264param.vui.i_colmatrix = 9;
+      break;
+    default:
+      encoder->x264param.vui.i_colmatrix = 2;
+      break;
+  }
+
+  if (info->colorimetry.range == GST_VIDEO_COLOR_RANGE_0_255) {
+    encoder->x264param.vui.b_fullrange = 1;
+  } else {
+    encoder->x264param.vui.b_fullrange = 0;
+  }
+
+  switch (info->chroma_site) {
+    case GST_VIDEO_CHROMA_SITE_MPEG2:
+      encoder->x264param.vui.i_chroma_loc = 0;
+      break;
+    case GST_VIDEO_CHROMA_SITE_JPEG:
+      encoder->x264param.vui.i_chroma_loc = 1;
+      break;
+    case GST_VIDEO_CHROMA_SITE_V_COSITED:
+      encoder->x264param.vui.i_chroma_loc = 3;
+      break;
+    case GST_VIDEO_CHROMA_SITE_DV:
+      encoder->x264param.vui.i_chroma_loc = 2;
+      break;
+    default:
+      encoder->x264param.vui.i_chroma_loc = 0;
+      break;
+  }
+
 
   encoder->x264param.analyse.b_psnr = 0;
 
diff --git a/ext/x264/gstx264enc.h b/ext/x264/gstx264enc.h
index d1135d9..25ac897 100644
--- a/ext/x264/gstx264enc.h
+++ b/ext/x264/gstx264enc.h
@@ -24,7 +24,11 @@
 #include <gst/gst.h>
 #include <gst/video/video.h>
 #include <gst/video/gstvideoencoder.h>
-#include "_stdint.h"
+
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
 #include <x264.h>
 
 G_BEGIN_DECLS
diff --git a/gst-plugins-ugly.doap b/gst-plugins-ugly.doap
index 7576f0c..075d553 100644
--- a/gst-plugins-ugly.doap
+++ b/gst-plugins-ugly.doap
@@ -35,31 +35,31 @@
 
   <release>
   <Version>
-   <revision>1.8.3</revision>
-   <branch>1.8</branch>
+   <revision>1.9.90</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-08-19</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.8.3.tar.xz" />
+   <created>2016-09-30</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.9.90.tar.xz" />
   </Version>
  </release>
 
   <release>
   <Version>
-   <revision>1.8.2</revision>
-   <branch>1.8</branch>
+   <revision>1.9.2</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-06-09</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.8.2.tar.xz" />
+   <created>2016-09-01</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.9.2.tar.xz" />
   </Version>
  </release>
 
   <release>
   <Version>
-   <revision>1.8.1</revision>
-   <branch>1.8</branch>
+   <revision>1.9.1</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-04-20</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.8.1.tar.xz" />
+   <created>2016-06-06</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.9.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-ugly.spec b/gst-plugins-ugly.spec
index 83f5803..c1ad7e0 100644
--- a/gst-plugins-ugly.spec
+++ b/gst-plugins-ugly.spec
@@ -4,7 +4,7 @@
 %define gst_minver  0.11.0
 
 Name: 		%{gstreamer}-plugins-ugly
-Version: 	1.8.3
+Version: 	1.9.90
 Release: 	1.gst
 Summary: 	GStreamer streaming media framework "ugly" plug-ins
 
diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c
index c60ede8..28e1f09 100644
--- a/gst/asfdemux/gstasfdemux.c
+++ b/gst/asfdemux/gstasfdemux.c
@@ -128,12 +128,12 @@
       "Codec/Demuxer",
       "Demultiplexes ASF Streams", "Owen Fraser-Green <owen@discobabe.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_asf_demux_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_asf_demux_sink_template);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_asf_demux_change_state);
@@ -449,9 +449,7 @@
       }
       flow = gst_asf_demux_push_complete_payloads (demux, TRUE);
       if (flow < GST_FLOW_EOS || flow == GST_FLOW_NOT_LINKED) {
-        GST_ELEMENT_ERROR (demux, STREAM, FAILED,
-            (_("Internal data stream error.")),
-            ("streaming stopped, reason %s", gst_flow_get_name (flow)));
+        GST_ELEMENT_FLOW_ERROR (demux, flow);
         break;
       }
 
@@ -2123,9 +2121,7 @@
     /* For the error cases */
     if (flow < GST_FLOW_EOS || flow == GST_FLOW_NOT_LINKED) {
       /* Post an error. Hopefully something else already has, but if not... */
-      GST_ELEMENT_ERROR (demux, STREAM, FAILED,
-          (_("Internal data stream error.")),
-          ("streaming stopped, reason %s", gst_flow_get_name (flow)));
+      GST_ELEMENT_FLOW_ERROR (demux, flow);
       gst_asf_demux_send_event_unlocked (demux, gst_event_new_eos ());
     }
 
@@ -2625,6 +2621,27 @@
     g_free (codec_name);
   }
 
+  if (audio->byte_rate > 0) {
+    /* Some ASF files have no bitrate props object (often seen with
+     * ASF files that contain raw audio data). Example files can
+     * be generated with FFmpeg (tested with v2.8.6), like this:
+     *
+     *   ffmpeg -i sine-wave.wav -c:a pcm_alaw file.asf
+     *
+     * In this case, if audio->byte_rate is nonzero, use that as
+     * the bitrate. */
+
+    guint bitrate = audio->byte_rate * 8;
+
+    if (tags == NULL)
+      tags = gst_tag_list_new_empty ();
+
+    /* Add bitrate, but only if there is none set already, since
+     * this is just a fallback in case there is no bitrate tag
+     * already present */
+    gst_tag_list_add (tags, GST_TAG_MERGE_KEEP, GST_TAG_BITRATE, bitrate, NULL);
+  }
+
   if (extradata)
     gst_buffer_unref (extradata);
 
diff --git a/gst/asfdemux/gstrtpasfdepay.c b/gst/asfdemux/gstrtpasfdepay.c
index 1ba5d02..3f13b5c 100644
--- a/gst/asfdemux/gstrtpasfdepay.c
+++ b/gst/asfdemux/gstrtpasfdepay.c
@@ -75,10 +75,8 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  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_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP ASF packet depayloader", "Codec/Depayloader/Network",
diff --git a/gst/dvdlpcmdec/Makefile.am b/gst/dvdlpcmdec/Makefile.am
index 2edb120..6fb9371 100644
--- a/gst/dvdlpcmdec/Makefile.am
+++ b/gst/dvdlpcmdec/Makefile.am
@@ -2,8 +2,8 @@
 plugin_LTLIBRARIES = libgstdvdlpcmdec.la
 
 libgstdvdlpcmdec_la_SOURCES = gstdvdlpcmdec.c
-libgstdvdlpcmdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstdvdlpcmdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ $(GST_LIBS)
+libgstdvdlpcmdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdvdlpcmdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS)
 libgstdvdlpcmdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdvdlpcmdec_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
diff --git a/gst/dvdlpcmdec/Makefile.in b/gst/dvdlpcmdec/Makefile.in
index e126b8f..089a6cc 100644
--- a/gst/dvdlpcmdec/Makefile.in
+++ b/gst/dvdlpcmdec/Makefile.in
@@ -162,7 +162,7 @@
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstdvdlpcmdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstdvdlpcmdec_la_OBJECTS = libgstdvdlpcmdec_la-gstdvdlpcmdec.lo
 libgstdvdlpcmdec_la_OBJECTS = $(am_libgstdvdlpcmdec_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -504,8 +504,8 @@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstdvdlpcmdec.la
 libgstdvdlpcmdec_la_SOURCES = gstdvdlpcmdec.c
-libgstdvdlpcmdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstdvdlpcmdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ $(GST_LIBS)
+libgstdvdlpcmdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdvdlpcmdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_API_VERSION@ $(GST_BASE_LIBS) $(GST_LIBS)
 libgstdvdlpcmdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstdvdlpcmdec_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = gstdvdlpcmdec.h
diff --git a/gst/dvdlpcmdec/gstdvdlpcmdec.c b/gst/dvdlpcmdec/gstdvdlpcmdec.c
index 69c395f..a402007 100644
--- a/gst/dvdlpcmdec/gstdvdlpcmdec.c
+++ b/gst/dvdlpcmdec/gstdvdlpcmdec.c
@@ -36,6 +36,7 @@
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-private1-lpcm; "
+        "audio/x-private2-lpcm; "
         "audio/x-lpcm, "
         "width = (int) { 16, 20, 24 }, "
         "rate = (int) { 32000, 44100, 48000, 96000 }, "
@@ -56,86 +57,42 @@
         "channels = (int) [ 1, 8 ]")
     );
 
-/* DvdLpcmDec signals and args */
-enum
-{
-  /* FILL ME */
-  LAST_SIGNAL
-};
+#define gst_dvdlpcmdec_parent_class parent_class
+G_DEFINE_TYPE (GstDvdLpcmDec, gst_dvdlpcmdec, GST_TYPE_AUDIO_DECODER);
 
-enum
-{
-  PROP_0
-      /* FILL ME */
-};
-
-static void gst_dvdlpcmdec_base_init (gpointer g_class);
-static void gst_dvdlpcmdec_class_init (GstDvdLpcmDecClass * klass);
-static void gst_dvdlpcmdec_init (GstDvdLpcmDec * dvdlpcmdec);
-
-static GstFlowReturn gst_dvdlpcmdec_chain_raw (GstPad * pad, GstObject * parent,
+static gboolean gst_dvdlpcmdec_set_format (GstAudioDecoder * bdec,
+    GstCaps * caps);
+static GstFlowReturn gst_dvdlpcmdec_parse (GstAudioDecoder * bdec,
+    GstAdapter * adapter, gint * offset, gint * len);
+static GstFlowReturn gst_dvdlpcmdec_handle_frame (GstAudioDecoder * bdec,
     GstBuffer * buffer);
-static GstFlowReturn gst_dvdlpcmdec_chain_dvd (GstPad * pad, GstObject * parent,
+static GstFlowReturn gst_dvdlpcmdec_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buffer);
-static gboolean gst_dvdlpcmdec_setcaps (GstPad * pad, GstCaps * caps);
-static gboolean dvdlpcmdec_sink_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
 
-static GstStateChangeReturn gst_dvdlpcmdec_change_state (GstElement * element,
-    GstStateChange transition);
-
-static GstElementClass *parent_class = NULL;
-
-GType
-gst_dvdlpcmdec_get_type (void)
-{
-  static GType dvdlpcmdec_type = 0;
-
-  if (!dvdlpcmdec_type) {
-    static const GTypeInfo dvdlpcmdec_info = {
-      sizeof (GstDvdLpcmDecClass),
-      gst_dvdlpcmdec_base_init,
-      NULL,
-      (GClassInitFunc) gst_dvdlpcmdec_class_init,
-      NULL,
-      NULL,
-      sizeof (GstDvdLpcmDec),
-      0,
-      (GInstanceInitFunc) gst_dvdlpcmdec_init,
-    };
-
-    dvdlpcmdec_type =
-        g_type_register_static (GST_TYPE_ELEMENT, "GstDvdLpcmDec",
-        &dvdlpcmdec_info, 0);
-  }
-  return dvdlpcmdec_type;
-}
-
-static void
-gst_dvdlpcmdec_base_init (gpointer g_class)
-{
-  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_dvdlpcmdec_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_dvdlpcmdec_src_template));
-  gst_element_class_set_static_metadata (element_class,
-      "DVD LPCM Audio decoder", "Codec/Decoder/Audio",
-      "Decode DVD LPCM frames into standard PCM audio",
-      "Jan Schmidt <jan@noraisin.net>, Michael Smith <msmith@fluendo.com>");
-}
 
 static void
 gst_dvdlpcmdec_class_init (GstDvdLpcmDecClass * klass)
 {
-  GstElementClass *gstelement_class;
+  GstElementClass *element_class;
+  GstAudioDecoderClass *gstbase_class;
 
-  gstelement_class = (GstElementClass *) klass;
+  element_class = (GstElementClass *) klass;
+  gstbase_class = (GstAudioDecoderClass *) klass;
 
-  parent_class = g_type_class_peek_parent (klass);
+  gstbase_class->set_format = GST_DEBUG_FUNCPTR (gst_dvdlpcmdec_set_format);
+  gstbase_class->parse = GST_DEBUG_FUNCPTR (gst_dvdlpcmdec_parse);
+  gstbase_class->handle_frame = GST_DEBUG_FUNCPTR (gst_dvdlpcmdec_handle_frame);
 
-  gstelement_class->change_state = gst_dvdlpcmdec_change_state;
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_dvdlpcmdec_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_dvdlpcmdec_src_template);
+  gst_element_class_set_static_metadata (element_class,
+      "DVD LPCM Audio decoder", "Codec/Decoder/Audio",
+      "Decode DVD LPCM frames into standard PCM audio",
+      "Jan Schmidt <jan@noraisin.net>, Michael Smith <msmith@fluendo.com>");
+
+  GST_DEBUG_CATEGORY_INIT (dvdlpcm_debug, "dvdlpcmdec", 0, "DVD LPCM Decoder");
 }
 
 static void
@@ -145,27 +102,28 @@
   dvdlpcmdec->dynamic_range = 0;
   dvdlpcmdec->emphasis = FALSE;
   dvdlpcmdec->mute = FALSE;
-  dvdlpcmdec->timestamp = GST_CLOCK_TIME_NONE;
 
   dvdlpcmdec->header = 0;
 
-  gst_segment_init (&dvdlpcmdec->segment, GST_FORMAT_UNDEFINED);
+  dvdlpcmdec->mode = GST_LPCM_UNKNOWN;
 }
 
 static void
 gst_dvdlpcmdec_init (GstDvdLpcmDec * dvdlpcmdec)
 {
-  dvdlpcmdec->sinkpad =
-      gst_pad_new_from_static_template (&gst_dvdlpcmdec_sink_template, "sink");
-  gst_pad_set_event_function (dvdlpcmdec->sinkpad, dvdlpcmdec_sink_event);
-  gst_element_add_pad (GST_ELEMENT (dvdlpcmdec), dvdlpcmdec->sinkpad);
-
-  dvdlpcmdec->srcpad =
-      gst_pad_new_from_static_template (&gst_dvdlpcmdec_src_template, "src");
-  gst_pad_use_fixed_caps (dvdlpcmdec->srcpad);
-  gst_element_add_pad (GST_ELEMENT (dvdlpcmdec), dvdlpcmdec->srcpad);
-
   gst_dvdlpcm_reset (dvdlpcmdec);
+
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dvdlpcmdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dvdlpcmdec));
+
+  /* retrieve and intercept base class chain.
+   * Quite HACKish, but that's dvd specs/caps for you,
+   * since one buffer needs to be split into 2 frames */
+  dvdlpcmdec->base_chain =
+      GST_PAD_CHAINFUNC (GST_AUDIO_DECODER_SINK_PAD (dvdlpcmdec));
+  gst_pad_set_chain_function (GST_AUDIO_DECODER_SINK_PAD (dvdlpcmdec),
+      GST_DEBUG_FUNCPTR (gst_dvdlpcmdec_chain));
 }
 
 static const GstAudioChannelPosition channel_positions[][8] = {
@@ -209,31 +167,26 @@
   taglist = gst_tag_list_new (GST_TAG_AUDIO_CODEC, "LPCM Audio",
       GST_TAG_BITRATE, bitrate, NULL);
 
-  gst_pad_push_event (dvdlpcmdec->srcpad, gst_event_new_tag (taglist));
+  gst_audio_decoder_merge_tags (GST_AUDIO_DECODER (dvdlpcmdec), taglist,
+      GST_TAG_MERGE_REPLACE);
+  gst_tag_list_unref (taglist);
 }
 
 static gboolean
-gst_dvdlpcmdec_set_outcaps (GstDvdLpcmDec * dvdlpcmdec)
+gst_dvdlpcmdec_set_output_format (GstDvdLpcmDec * dvdlpcmdec)
 {
   gboolean res = TRUE;
-  GstCaps *src_caps;
 
-  /* Build caps to set on the src pad, which we know from the incoming caps */
-  src_caps = gst_audio_info_to_caps (&dvdlpcmdec->info);
-
-  res = gst_pad_set_caps (dvdlpcmdec->srcpad, src_caps);
+  res = gst_audio_decoder_set_output_format (GST_AUDIO_DECODER (dvdlpcmdec),
+      &dvdlpcmdec->info);
   if (res) {
-    GST_DEBUG_OBJECT (dvdlpcmdec, "Successfully set output caps: %"
-        GST_PTR_FORMAT, src_caps);
+    GST_DEBUG_OBJECT (dvdlpcmdec, "Successfully set output format");
 
     gst_dvdlpcmdec_send_tags (dvdlpcmdec);
   } else {
-    GST_DEBUG_OBJECT (dvdlpcmdec, "Failed to set output caps: %"
-        GST_PTR_FORMAT, src_caps);
+    GST_DEBUG_OBJECT (dvdlpcmdec, "Failed to set output format");
   }
 
-  gst_caps_unref (src_caps);
-
   return res;
 }
 
@@ -253,41 +206,46 @@
     guint c;
 
     position = channel_positions[channels - 1];
-    dec->lpcm_layout = position;
     for (c = 0; c < channels; ++c)
       sorted_position[c] = position[c];
     gst_audio_channel_positions_to_valid_order (sorted_position, channels);
     gst_audio_info_set_format (&dec->info, format, rate, channels,
         sorted_position);
+    if (memcmp (position, sorted_position,
+            channels * sizeof (position[0])) != 0)
+      dec->lpcm_layout = position;
+    else
+      dec->lpcm_layout = NULL;
   } else {
     gst_audio_info_set_format (&dec->info, format, rate, channels, NULL);
   }
 }
 
 static gboolean
-gst_dvdlpcmdec_setcaps (GstPad * pad, GstCaps * caps)
+gst_dvdlpcmdec_set_format (GstAudioDecoder * bdec, GstCaps * caps)
 {
+  GstDvdLpcmDec *dvdlpcmdec = GST_DVDLPCMDEC (bdec);
   GstStructure *structure;
   gboolean res = TRUE;
-  GstDvdLpcmDec *dvdlpcmdec;
   GstAudioFormat format;
   gint rate, channels, width;
 
-  g_return_val_if_fail (caps != NULL, FALSE);
-  g_return_val_if_fail (pad != NULL, FALSE);
-
-  dvdlpcmdec = GST_DVDLPCMDEC (gst_pad_get_parent (pad));
+  gst_dvdlpcm_reset (dvdlpcmdec);
 
   structure = gst_caps_get_structure (caps, 0);
 
   /* If we have the DVD structured LPCM (including header) then we wait
    * for incoming data before creating the output pad caps */
   if (gst_structure_has_name (structure, "audio/x-private1-lpcm")) {
-    gst_pad_set_chain_function (dvdlpcmdec->sinkpad, gst_dvdlpcmdec_chain_dvd);
+    dvdlpcmdec->mode = GST_LPCM_DVD;
+    goto done;
+  }
+  if (gst_structure_has_name (structure, "audio/x-private2-lpcm")) {
+    dvdlpcmdec->mode = GST_LPCM_1394;
     goto done;
   }
 
-  gst_pad_set_chain_function (dvdlpcmdec->sinkpad, gst_dvdlpcmdec_chain_raw);
+  dvdlpcmdec->mode = GST_LPCM_RAW;
 
   res &= gst_structure_get_int (structure, "rate", &rate);
   res &= gst_structure_get_int (structure, "channels", &channels);
@@ -318,60 +276,20 @@
 
   dvdlpcmdec->width = width;
 
-  res = gst_dvdlpcmdec_set_outcaps (dvdlpcmdec);
+  res = gst_dvdlpcmdec_set_output_format (dvdlpcmdec);
 
 done:
-  gst_object_unref (dvdlpcmdec);
   return res;
 
   /* ERRORS */
 caps_parse_error:
   {
     GST_DEBUG_OBJECT (dvdlpcmdec, "Couldn't get parameters; missing caps?");
-    gst_object_unref (dvdlpcmdec);
     return FALSE;
   }
 }
 
 static void
-update_timestamps (GstDvdLpcmDec * dvdlpcmdec, GstBuffer * buf, int samples)
-{
-  gboolean take_buf_ts = FALSE;
-  gint rate;
-
-  rate = GST_AUDIO_INFO_RATE (&dvdlpcmdec->info);
-
-  GST_BUFFER_DURATION (buf) = gst_util_uint64_scale (samples, GST_SECOND, rate);
-
-  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
-    if (GST_CLOCK_TIME_IS_VALID (dvdlpcmdec->timestamp)) {
-      GstClockTimeDiff one_sample = GST_SECOND / rate;
-      GstClockTimeDiff diff = GST_CLOCK_DIFF (GST_BUFFER_TIMESTAMP (buf),
-          dvdlpcmdec->timestamp);
-
-      if (diff > one_sample || diff < -one_sample)
-        take_buf_ts = TRUE;
-    } else {
-      take_buf_ts = TRUE;
-    }
-  } else if (!GST_CLOCK_TIME_IS_VALID (dvdlpcmdec->timestamp)) {
-    dvdlpcmdec->timestamp = 0;
-  }
-
-  if (take_buf_ts) {
-    /* Take buffer timestamp */
-    dvdlpcmdec->timestamp = GST_BUFFER_TIMESTAMP (buf);
-  } else {
-    GST_BUFFER_TIMESTAMP (buf) = dvdlpcmdec->timestamp;
-  }
-
-  dvdlpcmdec->timestamp += GST_BUFFER_DURATION (buf);
-
-  GST_LOG_OBJECT (dvdlpcmdec, "Updated timestamp to %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
-}
-
-static void
 parse_header (GstDvdLpcmDec * dec, guint32 header)
 {
   GstAudioFormat format;
@@ -430,73 +348,40 @@
 }
 
 static GstFlowReturn
-gst_dvdlpcmdec_chain_dvd (GstPad * pad, GstObject * parent, GstBuffer * buf)
+gst_dvdlpcmdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
 {
-  GstDvdLpcmDec *dvdlpcmdec;
-  GstMapInfo map;
-  guint8 *data;
+  GstDvdLpcmDec *dvdlpcmdec = GST_DVDLPCMDEC (parent);
+  guint8 data[2];
   gsize size;
   guint first_access;
-  guint32 header;
   GstBuffer *subbuf;
   GstFlowReturn ret = GST_FLOW_OK;
   gint off, len;
-  gint rate, channels;
 
-  dvdlpcmdec = GST_DVDLPCMDEC (parent);
+  if (dvdlpcmdec->mode != GST_LPCM_DVD)
+    return dvdlpcmdec->base_chain (pad, parent, buf);
 
-  gst_buffer_map (buf, &map, GST_MAP_READ);
-  data = map.data;
-  size = map.size;
-
+  size = gst_buffer_get_size (buf);
   if (size < 5)
     goto too_small;
 
-  /* We have a 5 byte header, now.
-   * The first two bytes are a (big endian) 16 bit offset into our buffer.
-   * The buffer timestamp refers to this offset.
-   *
-   * The other three bytes are a (big endian) number in which the header is
-   * encoded.
-   */
+  gst_buffer_extract (buf, 0, data, 2);
   first_access = (data[0] << 8) | data[1];
   if (first_access > size)
     goto invalid_data;
 
-  /* Don't keep the 'frame number' low 5 bits of the first byte */
-  header = ((data[2] & 0xC0) << 16) | (data[3] << 8) | data[4];
-
-  /* see if we have a new header */
-  if (header != dvdlpcmdec->header) {
-    parse_header (dvdlpcmdec, header);
-
-    if (!gst_dvdlpcmdec_set_outcaps (dvdlpcmdec))
-      goto negotiation_failed;
-
-    dvdlpcmdec->header = header;
-  }
-
-  GST_LOG_OBJECT (dvdlpcmdec, "first_access %d, buffer length %" G_GSIZE_FORMAT,
-      first_access, size);
-
-  rate = GST_AUDIO_INFO_RATE (&dvdlpcmdec->info);
-  channels = GST_AUDIO_INFO_CHANNELS (&dvdlpcmdec->info);
-
-  /* After first_access, we have an additional 3 bytes of data we've parsed and
-   * don't want to handle; this is included within the value of first_access.
+  /* After first_access, we have an additional 3 bytes of header data; this
+   * is included within the value of first_access.
    * So a first_access value of between 1 and 3 is just broken, we treat that
    * the same as zero. first_access == 4 means we only need to create a single
    * sub-buffer, greater than that we need to create two. */
 
-  /* skip access unit bytes and info */
-  off = 5;
+  /* skip access unit bytes */
+  off = 2;
 
   if (first_access > 4) {
-    guint samples = 0;
-    GstClockTime ts;
-
     /* length of first buffer */
-    len = first_access - 4;
+    len = first_access - 1;
 
     GST_LOG_OBJECT (dvdlpcmdec, "Creating first sub-buffer off %d, len %d",
         off, len);
@@ -506,36 +391,8 @@
       goto bad_first_access;
 
     subbuf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, off, len);
-
-    /* If we don't have a stored timestamp from the last packet,
-     * (it's straight after a new-segment, but we have one on the
-     * first access buffer, then calculate the timestamp to align
-     * this buffer to just before the first_access buffer */
-    if (!GST_CLOCK_TIME_IS_VALID (dvdlpcmdec->timestamp) &&
-        GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
-      switch (dvdlpcmdec->width) {
-        case 16:
-          samples = len / channels / 2;
-          break;
-        case 20:
-          samples = (len / channels) * 2 / 5;
-          break;
-        case 24:
-          samples = len / channels / 3;
-          break;
-      }
-    }
-    if (samples != 0) {
-      ts = gst_util_uint64_scale (samples, GST_SECOND, rate);
-      if (ts < GST_BUFFER_TIMESTAMP (buf))
-        GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf) - ts;
-      else
-        GST_BUFFER_TIMESTAMP (subbuf) = 0;
-    } else {
-      GST_BUFFER_TIMESTAMP (subbuf) = GST_CLOCK_TIME_NONE;
-    }
-
-    ret = gst_dvdlpcmdec_chain_raw (pad, parent, subbuf);
+    GST_BUFFER_TIMESTAMP (subbuf) = GST_CLOCK_TIME_NONE;
+    ret = dvdlpcmdec->base_chain (pad, parent, subbuf);
     if (ret != GST_FLOW_OK)
       goto done;
 
@@ -547,10 +404,14 @@
         len);
 
     if (len > 0) {
+      GstMemory *header, *tmp;
       subbuf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, off, len);
+      tmp = gst_buffer_peek_memory (buf, 0);
+      header = gst_memory_copy (tmp, 2, 3);
+      gst_buffer_prepend_memory (subbuf, header);
       GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf);
 
-      ret = gst_dvdlpcmdec_chain_raw (pad, parent, subbuf);
+      ret = dvdlpcmdec->base_chain (pad, parent, subbuf);
     }
   } else {
     GST_LOG_OBJECT (dvdlpcmdec,
@@ -558,11 +419,10 @@
         size - off);
     subbuf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, off, size - off);
     GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf);
-    ret = gst_dvdlpcmdec_chain_raw (pad, parent, subbuf);
+    ret = dvdlpcmdec->base_chain (pad, parent, subbuf);
   }
 
 done:
-  gst_buffer_unmap (buf, &map);
   gst_buffer_unref (buf);
 
   return ret;
@@ -585,13 +445,6 @@
     ret = GST_FLOW_OK;
     goto done;
   }
-negotiation_failed:
-  {
-    GST_ELEMENT_ERROR (dvdlpcmdec, STREAM, FORMAT, (NULL),
-        ("Failed to configure output format"));
-    ret = GST_FLOW_NOT_NEGOTIATED;
-    goto done;
-  }
 bad_first_access:
   {
     GST_WARNING_OBJECT (pad, "Bad first_access parameter in buffer");
@@ -604,15 +457,186 @@
 }
 
 static GstFlowReturn
-gst_dvdlpcmdec_chain_raw (GstPad * pad, GstObject * parent, GstBuffer * buf)
+gst_dvdlpcmdec_parse_dvd (GstDvdLpcmDec * dvdlpcmdec, GstAdapter * adapter,
+    gint * offset, gint * len)
 {
-  GstDvdLpcmDec *dvdlpcmdec;
+  guint32 header;
+  const guint8 *data;
+
+  data = (const guint8 *) gst_adapter_map (adapter, 3);
+  if (!data)
+    goto too_small;
+
+  /* Don't keep the 'frame number' low 5 bits of the first byte */
+  header = ((data[0] & 0xC0) << 16) | (data[1] << 8) | data[2];
+
+  gst_adapter_unmap (adapter);
+
+  /* see if we have a new header */
+  if (header != dvdlpcmdec->header) {
+    parse_header (dvdlpcmdec, header);
+
+    if (!gst_dvdlpcmdec_set_output_format (dvdlpcmdec))
+      goto negotiation_failed;
+
+    dvdlpcmdec->header = header;
+  }
+
+  *offset = 3;
+  *len = gst_adapter_available (adapter) - 3;
+
+  return GST_FLOW_OK;
+
+  /* ERRORS */
+too_small:
+  {
+    /* Buffer is too small */
+    GST_ELEMENT_WARNING (dvdlpcmdec, STREAM, DECODE,
+        ("Invalid data found parsing LPCM packet"),
+        ("LPCM packet was too small. Dropping"));
+    *offset = gst_adapter_available (adapter);
+    return GST_FLOW_EOS;
+  }
+negotiation_failed:
+  {
+    GST_ELEMENT_ERROR (dvdlpcmdec, STREAM, FORMAT, (NULL),
+        ("Failed to configure output format"));
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
+}
+
+static GstFlowReturn
+gst_dvdlpcmdec_parse_1394 (GstDvdLpcmDec * dvdlpcmdec, GstAdapter * adapter,
+    gint * offset, gint * len)
+{
+  guint32 header;
+  const guint8 *data;
+
+  data = (const guint8 *) gst_adapter_map (adapter, 4);
+  if (!data)
+    goto too_small;
+
+  header = GST_READ_UINT32_BE (data);
+
+  gst_adapter_unmap (adapter);
+
+  /* see if we have a new header */
+  if (header != dvdlpcmdec->header) {
+    GstAudioFormat format;
+    gint rate, channels;
+
+    if (header >> 24 != 0xa0)
+      goto invalid_data;
+
+    switch ((header >> 6) & 0x3) {
+      case 0x0:
+        format = GST_AUDIO_FORMAT_S16BE;
+        dvdlpcmdec->width = 16;
+        break;
+      default:
+        format = GST_AUDIO_FORMAT_UNKNOWN;
+        dvdlpcmdec->width = 0;
+        GST_WARNING ("Invalid quantization word length!");
+        break;
+    }
+
+    switch ((header >> 3) & 0x7) {
+      case 0x1:
+        rate = 44100;
+        break;
+      case 0x2:
+        rate = 48000;
+        break;
+      default:
+        rate = 0;
+        GST_WARNING ("Invalid audio sampling frequency!");
+        break;
+    }
+    switch (header & 0x7) {
+      case 0x0:                /* 2 channels dual-mono */
+      case 0x1:                /* 2 channles stereo */
+        channels = 2;
+        break;
+      default:
+        channels = 0;
+        GST_WARNING ("Invalid number of audio channels!");
+        break;
+    }
+
+    gst_dvdlpcmdec_update_audio_formats (dvdlpcmdec, channels, rate, format);
+
+    if (!gst_dvdlpcmdec_set_output_format (dvdlpcmdec))
+      goto negotiation_failed;
+
+    dvdlpcmdec->header = header;
+  }
+
+  *offset = 4;
+  *len = gst_adapter_available (adapter) - 4;
+
+  return GST_FLOW_OK;
+
+  /* ERRORS */
+too_small:
+  {
+    /* Buffer is too small */
+    GST_ELEMENT_WARNING (dvdlpcmdec, STREAM, DECODE,
+        ("Invalid data found parsing LPCM packet"),
+        ("LPCM packet was too small. Dropping"));
+    *offset = gst_adapter_available (adapter);
+    return GST_FLOW_EOS;
+  }
+invalid_data:
+  {
+    GST_ELEMENT_WARNING (dvdlpcmdec, STREAM, DECODE,
+        ("Invalid data found parsing LPCM packet"),
+        ("LPCM packet contains invalid sub_stream_id."));
+    return GST_FLOW_ERROR;
+  }
+negotiation_failed:
+  {
+    GST_ELEMENT_ERROR (dvdlpcmdec, STREAM, FORMAT, (NULL),
+        ("Failed to configure output format"));
+    return GST_FLOW_NOT_NEGOTIATED;
+  }
+}
+
+static GstFlowReturn
+gst_dvdlpcmdec_parse (GstAudioDecoder * bdec, GstAdapter * adapter,
+    gint * offset, gint * len)
+{
+  GstDvdLpcmDec *dvdlpcmdec = GST_DVDLPCMDEC (bdec);
+
+  switch (dvdlpcmdec->mode) {
+    case GST_LPCM_UNKNOWN:
+      return GST_FLOW_NOT_NEGOTIATED;
+
+    case GST_LPCM_RAW:
+      *offset = 0;
+      *len = gst_adapter_available (adapter);
+      return GST_FLOW_OK;
+
+    case GST_LPCM_DVD:
+      return gst_dvdlpcmdec_parse_dvd (dvdlpcmdec, adapter, offset, len);
+
+    case GST_LPCM_1394:
+      return gst_dvdlpcmdec_parse_1394 (dvdlpcmdec, adapter, offset, len);
+  }
+  return GST_FLOW_ERROR;
+}
+
+static GstFlowReturn
+gst_dvdlpcmdec_handle_frame (GstAudioDecoder * bdec, GstBuffer * buf)
+{
+  GstDvdLpcmDec *dvdlpcmdec = GST_DVDLPCMDEC (bdec);
   gsize size;
   GstFlowReturn ret;
   guint samples = 0;
   gint rate, channels;
 
-  dvdlpcmdec = GST_DVDLPCMDEC (parent);
+  /* no fancy draining */
+  if (G_UNLIKELY (!buf))
+    return GST_FLOW_OK;
 
   size = gst_buffer_get_size (buf);
 
@@ -626,9 +650,6 @@
   if (rate == 0)
     goto not_negotiated;
 
-  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf))
-    dvdlpcmdec->timestamp = GST_BUFFER_TIMESTAMP (buf);
-
   /* We don't currently do anything at all regarding emphasis, mute or
    * dynamic_range - I'm not sure what they're for */
   switch (dvdlpcmdec->width) {
@@ -639,7 +660,8 @@
       samples = size / channels / 2;
       if (samples < 1)
         goto drop;
-      buf = gst_buffer_make_writable (buf);
+
+      gst_buffer_ref (buf);
       break;
     }
     case 20:
@@ -688,7 +710,6 @@
       }
       gst_buffer_unmap (outbuf, &destmap);
       gst_buffer_unmap (buf, &srcmap);
-      gst_buffer_unref (buf);
       buf = outbuf;
       break;
     }
@@ -698,51 +719,57 @@
        * and last byte are already correct */
       guint count = size / 12;
       gint i;
-      GstMapInfo map;
-      guint8 *ptr;
+      GstMapInfo srcmap, destmap;
+      guint8 *src, *dest;
+      GstBuffer *outbuf;
 
       samples = size / channels / 3;
 
       if (samples < 1)
         goto drop;
 
-      /* Ensure our output buffer is writable */
-      buf = gst_buffer_make_writable (buf);
+      outbuf = gst_buffer_new_allocate (NULL, size, NULL);
+      gst_buffer_copy_into (outbuf, buf, GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
 
-      gst_buffer_map (buf, &map, GST_MAP_READWRITE);
-      ptr = map.data;
+      gst_buffer_map (buf, &srcmap, GST_MAP_READ);
+      gst_buffer_map (outbuf, &destmap, GST_MAP_READWRITE);
+      src = srcmap.data;
+      dest = destmap.data;
 
       for (i = 0; i < count; i++) {
-        guint8 tmp;
+        dest[0] = src[0];
+        dest[1] = src[1];
+        dest[11] = src[11];
+        dest[10] = src[7];
+        dest[7] = src[5];
+        dest[5] = src[9];
+        dest[9] = src[6];
+        dest[6] = src[4];
+        dest[4] = src[3];
+        dest[3] = src[2];
+        dest[2] = src[8];
+        dest[8] = src[10];
 
-        tmp = ptr[10];
-        ptr[10] = ptr[7];
-        ptr[7] = ptr[5];
-        ptr[5] = ptr[9];
-        ptr[9] = ptr[6];
-        ptr[6] = ptr[4];
-        ptr[4] = ptr[3];
-        ptr[3] = ptr[2];
-        ptr[2] = ptr[8];
-        ptr[8] = tmp;
-
-        ptr += 12;
+        src += 12;
+        dest += 12;
       }
-      gst_buffer_unmap (buf, &map);
+      gst_buffer_unmap (outbuf, &destmap);
+      gst_buffer_unmap (buf, &srcmap);
+      buf = outbuf;
       break;
     }
     default:
       goto invalid_width;
   }
 
-  update_timestamps (dvdlpcmdec, buf, samples);
-
-  if (dvdlpcmdec->lpcm_layout)
+  if (dvdlpcmdec->lpcm_layout) {
+    buf = gst_buffer_make_writable (buf);
     gst_audio_buffer_reorder_channels (buf, dvdlpcmdec->info.finfo->format,
         dvdlpcmdec->info.channels, dvdlpcmdec->lpcm_layout,
         dvdlpcmdec->info.position);
+  }
 
-  ret = gst_pad_push (dvdlpcmdec->srcpad, buf);
+  ret = gst_audio_decoder_finish_frame (bdec, buf, 1);
 
 done:
   return ret;
@@ -752,7 +779,6 @@
   {
     GST_DEBUG_OBJECT (dvdlpcmdec,
         "Buffer of size %" G_GSIZE_FORMAT " is too small. Dropping", size);
-    gst_buffer_unref (buf);
     ret = GST_FLOW_OK;
     goto done;
   }
@@ -760,7 +786,6 @@
   {
     GST_ELEMENT_ERROR (dvdlpcmdec, STREAM, FORMAT, (NULL),
         ("Buffer pushed before negotiation"));
-    gst_buffer_unref (buf);
     ret = GST_FLOW_NOT_NEGOTIATED;
     goto done;
   }
@@ -768,88 +793,14 @@
   {
     GST_ELEMENT_ERROR (dvdlpcmdec, STREAM, WRONG_TYPE, (NULL),
         ("Invalid sample width configured"));
-    gst_buffer_unref (buf);
     ret = GST_FLOW_NOT_NEGOTIATED;
     goto done;
   }
 }
 
 static gboolean
-dvdlpcmdec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  GstDvdLpcmDec *dvdlpcmdec;
-  gboolean res;
-
-  dvdlpcmdec = GST_DVDLPCMDEC (parent);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      GstCaps *caps;
-
-      gst_event_parse_caps (event, &caps);
-      res = gst_dvdlpcmdec_setcaps (pad, caps);
-      gst_event_unref (event);
-      break;
-    }
-    case GST_EVENT_SEGMENT:
-    {
-      GstSegment seg;
-
-      gst_event_copy_segment (event, &seg);
-
-      GST_DEBUG_OBJECT (dvdlpcmdec, "segment %" GST_SEGMENT_FORMAT, &seg);
-
-      dvdlpcmdec->segment = seg;
-
-      if (seg.format == GST_FORMAT_TIME) {
-        dvdlpcmdec->timestamp = GST_CLOCK_TIME_NONE;
-      } else {
-        dvdlpcmdec->timestamp = 0;
-      }
-      res = gst_pad_push_event (dvdlpcmdec->srcpad, event);
-      break;
-    }
-    case GST_EVENT_FLUSH_STOP:
-      gst_segment_init (&dvdlpcmdec->segment, GST_FORMAT_UNDEFINED);
-      res = gst_pad_push_event (dvdlpcmdec->srcpad, event);
-      break;
-    default:
-      res = gst_pad_push_event (dvdlpcmdec->srcpad, event);
-      break;
-  }
-
-  return res;
-}
-
-static GstStateChangeReturn
-gst_dvdlpcmdec_change_state (GstElement * element, GstStateChange transition)
-{
-  GstDvdLpcmDec *dvdlpcmdec = GST_DVDLPCMDEC (element);
-  GstStateChangeReturn res;
-
-  switch (transition) {
-    case GST_STATE_CHANGE_READY_TO_PAUSED:
-      gst_dvdlpcm_reset (dvdlpcmdec);
-      break;
-    default:
-      break;
-  }
-
-  res = parent_class->change_state (element, transition);
-
-  switch (transition) {
-    default:
-      break;
-  }
-
-  return res;
-}
-
-static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  GST_DEBUG_CATEGORY_INIT (dvdlpcm_debug, "dvdlpcmdec", 0, "DVD LPCM Decoder");
 
   if (!gst_element_register (plugin, "dvdlpcmdec", GST_RANK_PRIMARY,
           GST_TYPE_DVDLPCMDEC)) {
diff --git a/gst/dvdlpcmdec/gstdvdlpcmdec.h b/gst/dvdlpcmdec/gstdvdlpcmdec.h
index 955f60c..7f3d0c9 100644
--- a/gst/dvdlpcmdec/gstdvdlpcmdec.h
+++ b/gst/dvdlpcmdec/gstdvdlpcmdec.h
@@ -23,6 +23,7 @@
 
 #include <gst/gst.h>
 #include <gst/audio/audio.h>
+#include <gst/audio/gstaudiodecoder.h>
 
 G_BEGIN_DECLS
 
@@ -40,11 +41,19 @@
 typedef struct _GstDvdLpcmDec GstDvdLpcmDec;
 typedef struct _GstDvdLpcmDecClass GstDvdLpcmDecClass;
 
+typedef enum {
+  GST_LPCM_UNKNOWN,
+  GST_LPCM_RAW,
+  GST_LPCM_DVD,
+  GST_LPCM_1394
+} GstDvdLpcmMode;
+
 struct _GstDvdLpcmDec {
-  GstElement element;
+  GstAudioDecoder element;
 
-  GstPad *sinkpad,*srcpad;
+  GstPadChainFunction base_chain;
 
+  GstDvdLpcmMode mode;
   guint32 header;
 
   GstAudioInfo info;
@@ -55,11 +64,10 @@
   gint mute;
 
   GstClockTime timestamp;
-  GstSegment   segment;
 };
 
 struct _GstDvdLpcmDecClass {
-  GstElementClass parent_class;
+  GstAudioDecoderClass parent_class;
 };
 
 GType gst_dvdlpcmdec_get_type (void);
diff --git a/gst/dvdsub/gstdvdsubdec.c b/gst/dvdsub/gstdvdsubdec.c
index 89a2c94..77bfbc9 100644
--- a/gst/dvdsub/gstdvdsubdec.c
+++ b/gst/dvdsub/gstdvdsubdec.c
@@ -109,10 +109,9 @@
 
   gobject_class->finalize = gst_dvd_sub_dec_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subtitle_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitle_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DVD subtitle decoder", "Codec/Decoder/Video",
diff --git a/gst/dvdsub/gstdvdsubparse.c b/gst/dvdsub/gstdvdsubparse.c
index ea49e53..4184a41 100644
--- a/gst/dvdsub/gstdvdsubparse.c
+++ b/gst/dvdsub/gstdvdsubparse.c
@@ -72,10 +72,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_dvd_sub_parse_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DVD subtitle parser", "Codec/Parser/Subtitle",
diff --git a/gst/realmedia/pnmsrc.c b/gst/realmedia/pnmsrc.c
index 4db082f..fdd4980 100644
--- a/gst/realmedia/pnmsrc.c
+++ b/gst/realmedia/pnmsrc.c
@@ -90,8 +90,8 @@
           DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_pnm_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_pnm_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "PNM packet receiver", "Source/Network",
diff --git a/gst/realmedia/rademux.c b/gst/realmedia/rademux.c
index 5aa92ac..3dadcc5 100644
--- a/gst/realmedia/rademux.c
+++ b/gst/realmedia/rademux.c
@@ -96,10 +96,8 @@
 
   gobject_class->finalize = gst_real_audio_demux_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RealAudio Demuxer",
       "Codec/Demuxer",
diff --git a/gst/realmedia/rdtdepay.c b/gst/realmedia/rdtdepay.c
index ac79b74..5cf5e4a 100644
--- a/gst/realmedia/rdtdepay.c
+++ b/gst/realmedia/rdtdepay.c
@@ -92,10 +92,10 @@
 
   gstelement_class->change_state = gst_rdt_depay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rdt_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rdt_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rdt_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rdt_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RDT packet parser",
       "Codec/Depayloader/Network",
diff --git a/gst/realmedia/rdtmanager.c b/gst/realmedia/rdtmanager.c
index 0cfaef9..48bc5ef 100644
--- a/gst/realmedia/rdtmanager.c
+++ b/gst/realmedia/rdtmanager.c
@@ -517,15 +517,15 @@
       GST_DEBUG_FUNCPTR (gst_rdt_manager_release_pad);
 
   /* sink pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rdt_manager_recv_rtp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rdt_manager_recv_rtcp_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rdt_manager_recv_rtp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rdt_manager_recv_rtcp_sink_template);
   /* src pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rdt_manager_recv_rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rdt_manager_rtcp_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rdt_manager_recv_rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rdt_manager_rtcp_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP Decoder",
       "Codec/Parser/Network",
diff --git a/gst/realmedia/realhash.c b/gst/realmedia/realhash.c
index 294f204..97b1390 100644
--- a/gst/realmedia/realhash.c
+++ b/gst/realmedia/realhash.c
@@ -22,7 +22,10 @@
 #include "config.h"
 #endif
 
-#include "_stdint.h"
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
 #include <string.h>
 
 #include <gst/gst.h>
diff --git a/gst/realmedia/rmdemux.c b/gst/realmedia/rmdemux.c
index e670f98..6634c22 100644
--- a/gst/realmedia/rmdemux.c
+++ b/gst/realmedia/rmdemux.c
@@ -197,12 +197,12 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rmdemux_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rmdemux_videosrc_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rmdemux_audiosrc_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rmdemux_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rmdemux_videosrc_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rmdemux_audiosrc_template);
   gst_element_class_set_static_metadata (element_class, "RealMedia Demuxer",
       "Codec/Demuxer",
       "Demultiplex a RealMedia file into audio and video streams",
@@ -967,8 +967,7 @@
         gst_rmdemux_send_event (rmdemux, gst_event_new_eos ());
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
-      GST_ELEMENT_ERROR (rmdemux, STREAM, FAILED,
-          (NULL), ("stream stopped, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (rmdemux, ret);
       gst_rmdemux_send_event (rmdemux, gst_event_new_eos ());
     }
     return;
diff --git a/gst/realmedia/rtspreal.c b/gst/realmedia/rtspreal.c
index b7b3383..f3460a1 100644
--- a/gst/realmedia/rtspreal.c
+++ b/gst/realmedia/rtspreal.c
@@ -28,8 +28,11 @@
 #include "config.h"
 #endif
 
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
 #include <stdlib.h>
-#include "_stdint.h"
 #include <string.h>
 
 #include <gst/rtsp/gstrtspextension.h>
diff --git a/gst/xingmux/gstxingmux.c b/gst/xingmux/gstxingmux.c
index 0572060..b0809aa 100644
--- a/gst/xingmux/gstxingmux.c
+++ b/gst/xingmux/gstxingmux.c
@@ -413,10 +413,10 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_xing_mux_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_xing_mux_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_xing_mux_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_xing_mux_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_xing_mux_sink_template);
 
   GST_DEBUG_CATEGORY_INIT (xing_mux_debug, "xingmux", 0, "Xing Header Muxer");
 
diff --git a/ltmain.sh b/ltmain.sh
index 2ad8be8..a736cf9 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -31,7 +31,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-1"
+VERSION="2.4.6 Debian-2.4.6-2"
 package_revision=2.4.6
 
 
@@ -1977,7 +1977,7 @@
 # End:
 
 # Set a version string.
-scriptversion='(GNU libtool) 2.4.6 Debian-2.4.6-1'
+scriptversion='(GNU libtool) 2.4.6'
 
 
 # func_echo ARG...
@@ -2068,7 +2068,7 @@
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
-       version:        $progname $scriptversion
+       version:        $progname $scriptversion Debian-2.4.6-2
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
diff --git a/po/af.gmo b/po/af.gmo
index bd33e25..f87c818 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index fce2f8c..0f725e5 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-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -69,9 +69,6 @@
 msgid "This stream contains no data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 #, fuzzy
 #~ msgid "Could not read title information for DVD."
 #~ msgstr "Kon nie skryf na lêer \"%s\" nie."
diff --git a/po/az.gmo b/po/az.gmo
index d122e1a..edfa642 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 6305704..dbce168 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-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -70,9 +70,6 @@
 msgid "This stream contains no data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 #, fuzzy
 #~ msgid "Could not read title information for DVD."
 #~ msgstr "\"%s\" faylına yazıla bilmədi."
diff --git a/po/bg.gmo b/po/bg.gmo
index 373f5cf..25ef682 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index e3df355..d0496fa 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2016-02-21 21:03+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@ludost.net>\n"
@@ -77,5 +77,5 @@
 msgid "This stream contains no data."
 msgstr "Потокът не съдържа данни."
 
-msgid "Internal data stream error."
-msgstr "Вътрешна грешка в потока от данни."
+#~ msgid "Internal data stream error."
+#~ msgstr "Вътрешна грешка в потока от данни."
diff --git a/po/ca.gmo b/po/ca.gmo
index 1b617eb..ca6ae73 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 5e22106..6592251 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -80,5 +80,5 @@
 msgid "This stream contains no data."
 msgstr "Aquest flux no conté dades."
 
-msgid "Internal data stream error."
-msgstr "S'ha produït un error intern de flux de dades."
+#~ msgid "Internal data stream error."
+#~ msgstr "S'ha produït un error intern de flux de dades."
diff --git a/po/cs.gmo b/po/cs.gmo
index 1300123..e303953 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 4ea2ebc..d34b2de 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2013-09-07 07:06+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -79,5 +79,5 @@
 msgid "This stream contains no data."
 msgstr "Tento proud neobsahuje žádná data."
 
-msgid "Internal data stream error."
-msgstr "Interní chyba datového proudu."
+#~ msgid "Internal data stream error."
+#~ msgstr "Interní chyba datového proudu."
diff --git a/po/da.gmo b/po/da.gmo
index 5a56fcc..008fec2 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 3b6dc4b..01c46d6 100644
--- a/po/da.po
+++ b/po/da.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-12-09 03:56+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -77,8 +77,8 @@
 msgid "This stream contains no data."
 msgstr "Denne strøm indeholder ingen data."
 
-msgid "Internal data stream error."
-msgstr "Intern datastrømfejl."
+#~ msgid "Internal data stream error."
+#~ msgstr "Intern datastrømfejl."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Ugyldig titelinformation på dvd."
diff --git a/po/de.gmo b/po/de.gmo
index 0e21576..40c7bf5 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index e56ac17..d04fb5c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -13,7 +13,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2014-05-22 18:29+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -85,8 +85,8 @@
 msgid "This stream contains no data."
 msgstr "Dieser Strom enthält keine Daten."
 
-msgid "Internal data stream error."
-msgstr "Interner Datenstromfehler."
+#~ msgid "Internal data stream error."
+#~ msgstr "Interner Datenstromfehler."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Ungültige Titelinformation auf der DVD."
diff --git a/po/el.gmo b/po/el.gmo
index 7e45c93..4797f78 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 4a62db2..9617141 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-03-18 01:04+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -78,5 +78,5 @@
 msgid "This stream contains no data."
 msgstr "Η ροή αυτή δεν περιέχει καθόλου δεδομένα."
 
-msgid "Internal data stream error."
-msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
+#~ msgid "Internal data stream error."
+#~ msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 57b44af..daecf48 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 d8de481..61909a1 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-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -68,9 +68,6 @@
 msgid "This stream contains no data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 #, fuzzy
 #~ msgid "Could not read title information for DVD."
 #~ msgstr "Could not write to file \"%s\"."
diff --git a/po/eo.gmo b/po/eo.gmo
index f5e28a7..33b1d67 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 5bca572..ccb5e91 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2014-09-21 21:03+0200\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -75,5 +75,5 @@
 msgid "This stream contains no data."
 msgstr "Tiu fluo enhavas neniun datumon."
 
-msgid "Internal data stream error."
-msgstr "Interna datum-flu-eraro."
+#~ msgid "Internal data stream error."
+#~ msgstr "Interna datum-flu-eraro."
diff --git a/po/es.gmo b/po/es.gmo
index 911d66e..0fb53f1 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 40a2f83..6436c41 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2011-10-02 15:45+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -79,8 +79,8 @@
 msgid "This stream contains no data."
 msgstr "Este medio no contiene datos."
 
-msgid "Internal data stream error."
-msgstr "Error del flujo de datos interno."
+#~ msgid "Internal data stream error."
+#~ msgstr "Error del flujo de datos interno."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Información del título del DVD no válida."
diff --git a/po/eu.gmo b/po/eu.gmo
index d44c832..f2a298f 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 000593d..3db57ef 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-0.10.13.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2010-03-07 13:12+0200\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -80,8 +80,8 @@
 msgid "This stream contains no data."
 msgstr "Korronte honek ez du daturik."
 
-msgid "Internal data stream error."
-msgstr "Datu-korrontearen barne-errorea."
+#~ msgid "Internal data stream error."
+#~ msgstr "Datu-korrontearen barne-errorea."
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/fi.gmo b/po/fi.gmo
index cc1f724..901d24b 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 24c982b..3a19c40 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2009-03-10 20:41+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -78,8 +78,8 @@
 msgid "This stream contains no data."
 msgstr "Virta ei sisällä tietoa."
 
-msgid "Internal data stream error."
-msgstr "Sisäinen tietovirtavirhe."
+#~ msgid "Internal data stream error."
+#~ msgstr "Sisäinen tietovirtavirhe."
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/fr.gmo b/po/fr.gmo
index c098d3e..6ef7f99 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index aba71d7..86d32da 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2015-12-27 01:51+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -78,5 +78,5 @@
 msgid "This stream contains no data."
 msgstr "Ce flux ne contient aucune données."
 
-msgid "Internal data stream error."
-msgstr "Erreur du flux de données interne."
+#~ msgid "Internal data stream error."
+#~ msgstr "Erreur du flux de données interne."
diff --git a/po/gl.gmo b/po/gl.gmo
index fe87e2c..762b06c 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 8792fe9..5f898dc 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-12-15 03:47+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -80,5 +80,5 @@
 msgid "This stream contains no data."
 msgstr "Este fluxo non contén datos."
 
-msgid "Internal data stream error."
-msgstr "Erro de fluxo de datos interno."
+#~ msgid "Internal data stream error."
+#~ msgstr "Erro de fluxo de datos interno."
diff --git a/po/gst-plugins-ugly-1.0.pot b/po/gst-plugins-ugly-1.0.pot
index fbbca33..ed30ee1 100644
--- a/po/gst-plugins-ugly-1.0.pot
+++ b/po/gst-plugins-ugly-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-ugly 1.8.3\n"
+"Project-Id-Version: gst-plugins-ugly 1.9.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -79,7 +79,3 @@
 #: gst/asfdemux/gstasfdemux.c:446
 msgid "This stream contains no data."
 msgstr ""
-
-#: gst/asfdemux/gstasfdemux.c:453 gst/asfdemux/gstasfdemux.c:2127
-msgid "Internal data stream error."
-msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index afcbba7..30c7fa0 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 2b4c05f..2bf9dea 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2016-05-27 12:48-0700\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -78,5 +78,5 @@
 msgid "This stream contains no data."
 msgstr "Ovaj stream (tok podataka) ne sadrži podatke."
 
-msgid "Internal data stream error."
-msgstr "Interna greška toka (stream) podataka."
+#~ msgid "Internal data stream error."
+#~ msgstr "Interna greška toka (stream) podataka."
diff --git a/po/hu.gmo b/po/hu.gmo
index ddd3bc0..b4911d7 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index cb2507c..688a274 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-11-30 15:02+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -77,8 +77,8 @@
 msgid "This stream contains no data."
 msgstr "Ez az adatfolyam nem tartalmaz adatokat."
 
-msgid "Internal data stream error."
-msgstr "Belső adatfolyam-hiba."
+#~ msgid "Internal data stream error."
+#~ msgstr "Belső adatfolyam-hiba."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "A DVD címinformációi érvénytelenek."
diff --git a/po/id.gmo b/po/id.gmo
index f2a6dba..81ce2e9 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index ba79c23..4ad6517 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2014-01-27 20:04+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -14,6 +14,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 
 msgid "Could not read from CD."
 msgstr "Tak dapat membaca dari CD."
@@ -71,8 +72,8 @@
 msgid "This stream contains no data."
 msgstr "Arus ini tidak berisi data."
 
-msgid "Internal data stream error."
-msgstr "Galat arus data internal."
+#~ msgid "Internal data stream error."
+#~ msgstr "Galat arus data internal."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Informasi judul tidak sah pada DVD."
diff --git a/po/it.gmo b/po/it.gmo
index 58ccbec..2c38e4b 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index f0fd704..93a541d 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.11.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2009-06-14 12:31+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -78,8 +78,8 @@
 msgid "This stream contains no data."
 msgstr "Questo stream non contiene alcun dato."
 
-msgid "Internal data stream error."
-msgstr "Errore interno dello stream di dati."
+#~ msgid "Internal data stream error."
+#~ msgstr "Errore interno dello stream di dati."
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/ja.gmo b/po/ja.gmo
index 1daeb46..6de6917 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 4561b15..bd1c374 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-12-22 19:42+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -78,8 +78,8 @@
 msgid "This stream contains no data."
 msgstr "このストリームはデータを含んでいません。"
 
-msgid "Internal data stream error."
-msgstr "内部データストリームエラー。"
+#~ msgid "Internal data stream error."
+#~ msgstr "内部データストリームエラー。"
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "DVD上のタイトル情報が不正です。"
diff --git a/po/lt.gmo b/po/lt.gmo
index 97a1023..b71334a 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index e1569d8..c3eb9aa 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-0.10.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2008-05-14 02:52+0300\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -80,9 +80,6 @@
 msgid "This stream contains no data."
 msgstr "Šiame sraute nėra duomenų."
 
-msgid "Internal data stream error."
-msgstr ""
-
 #, fuzzy
 #~ msgid ""
 #~ "Failed to configure LAMEMP3ENC encoder. Check your encoding parameters."
diff --git a/po/lv.gmo b/po/lv.gmo
index 7e6fefe..2973bd4 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index cc8dfaa..16cb55e 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2014-04-20 16:24+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -78,8 +78,8 @@
 msgid "This stream contains no data."
 msgstr "Šī straume nesatur datus."
 
-msgid "Internal data stream error."
-msgstr "Iekšēja datu plūsmas kļūda."
+#~ msgid "Internal data stream error."
+#~ msgstr "Iekšēja datu plūsmas kļūda."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Nederīga DVD virsraksta informācija."
diff --git a/po/ms.gmo b/po/ms.gmo
index 98afb97..9d55278 100644
--- a/po/ms.gmo
+++ b/po/ms.gmo
Binary files differ
diff --git a/po/ms.po b/po/ms.po
index defe3d3..e5e2380 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-0.10.11.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2009-07-16 15:07+0800\n"
 "Last-Translator: Muhammad Najmi bin Ahmad Zabidi <najmi.zabidi@gmail.com>\n"
 "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
@@ -73,8 +73,8 @@
 msgid "This stream contains no data."
 msgstr "Aliran ini tiada data."
 
-msgid "Internal data stream error."
-msgstr "Ralat aliran data dalaman."
+#~ msgid "Internal data stream error."
+#~ msgstr "Ralat aliran data dalaman."
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/mt.gmo b/po/mt.gmo
index 0eff9ec..9d66a18 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index ff3370c..b0ca05d 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-0.10.9.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2008-11-13 18:18+0100\n"
 "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
 "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
@@ -77,8 +77,8 @@
 msgid "This stream contains no data."
 msgstr "L-istream ma fiha l-ebda data."
 
-msgid "Internal data stream error."
-msgstr "Problema interna fid-data stream."
+#~ msgid "Internal data stream error."
+#~ msgstr "Problema interna fid-data stream."
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/nb.gmo b/po/nb.gmo
index 208aa7e..77b0662 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index adf92d5..8c61da7 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-12-21 21:38+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -75,8 +75,8 @@
 msgid "This stream contains no data."
 msgstr "Denne strømmen inneholde ikke data."
 
-msgid "Internal data stream error."
-msgstr "Intern feil i datastrøm."
+#~ msgid "Internal data stream error."
+#~ msgstr "Intern feil i datastrøm."
 
 #~ msgid "This file is encrypted and cannot be played."
 #~ msgstr "Denne filen er kryptert og kan ikke spilles av."
diff --git a/po/nl.gmo b/po/nl.gmo
index a19d5fe..b3af1a6 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 656e3f8..3db71a5 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2015-06-13 13:05+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -77,8 +77,8 @@
 msgid "This stream contains no data."
 msgstr "Deze stroom bevat geen gegevens."
 
-msgid "Internal data stream error."
-msgstr "Fout met interne gegevensstroom."
+#~ msgid "Internal data stream error."
+#~ msgstr "Fout met interne gegevensstroom."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Ongeldige titelinformatie op de DVD."
diff --git a/po/or.gmo b/po/or.gmo
index 4dc93e8..7810614 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 592a866..dcb054b 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-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -70,9 +70,6 @@
 msgid "This stream contains no data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 #, fuzzy
 #~ msgid "Could not read title information for DVD."
 #~ msgstr "\"%s\" ଫାଇଲ ଲେଖିହେଲା ନାହିଁ."
diff --git a/po/pl.gmo b/po/pl.gmo
index e416280..5307930 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index a9ac99a..9150546 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-11-28 19:34+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -75,5 +75,5 @@
 msgid "This stream contains no data."
 msgstr "Ten strumień nie zawiera danych."
 
-msgid "Internal data stream error."
-msgstr "Błąd wewnętrzny strumienia danych."
+#~ msgid "Internal data stream error."
+#~ msgstr "Błąd wewnętrzny strumienia danych."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index a6e04df..3cfc05a 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 d8505a8..7e90a13 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2015-12-28 19:54-0200\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -79,8 +79,8 @@
 msgid "This stream contains no data."
 msgstr "Este fluxo não contém dados."
 
-msgid "Internal data stream error."
-msgstr "Erro interno no fluxo de dados."
+#~ msgid "Internal data stream error."
+#~ msgstr "Erro interno no fluxo de dados."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "As informações de título no DVD são inválidas."
diff --git a/po/ro.gmo b/po/ro.gmo
index 9603dd6..7e95139 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 852e64e..ebb84ba 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.14.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2010-08-16 03:32+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -75,8 +75,8 @@
 msgid "This stream contains no data."
 msgstr "Fluxul acesta nu conține date."
 
-msgid "Internal data stream error."
-msgstr "Eroare internă a fluxului de date."
+#~ msgid "Internal data stream error."
+#~ msgstr "Eroare internă a fluxului de date."
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/ru.gmo b/po/ru.gmo
index 022111c..318e040 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index e61cd37..18205d4 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-12-01 13:38+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -79,8 +79,8 @@
 msgid "This stream contains no data."
 msgstr "Поток не содержит данных."
 
-msgid "Internal data stream error."
-msgstr "Внутренняя ошибка потока данных."
+#~ msgid "Internal data stream error."
+#~ msgstr "Внутренняя ошибка потока данных."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Неверные сведения о разделах на DVD."
diff --git a/po/sk.gmo b/po/sk.gmo
index b910108..f40c478 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index c04cac8..e40454c 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2014-01-30 10:28+0100\n"
 "Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -80,8 +80,8 @@
 msgid "This stream contains no data."
 msgstr "Tento prúd neobsahuje žiadne údaje."
 
-msgid "Internal data stream error."
-msgstr "Vnútorná chyba prúdu údajov."
+#~ msgid "Internal data stream error."
+#~ msgstr "Vnútorná chyba prúdu údajov."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "Chybný titul na DVD."
diff --git a/po/sl.gmo b/po/sl.gmo
index e0756a8..fcb828f 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 232999d..055038b 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 0.10.17.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-03-26 22:48+0100\n"
 "Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -76,8 +76,8 @@
 msgid "This stream contains no data."
 msgstr "Pretok ne vsebuje podatkov."
 
-msgid "Internal data stream error."
-msgstr "Notranja napaka pretoka podatkov."
+#~ msgid "Internal data stream error."
+#~ msgstr "Notranja napaka pretoka podatkov."
 
 #~ msgid "Failed to configure LAME encoder. Check your encoding parameters."
 #~ msgstr ""
diff --git a/po/sq.gmo b/po/sq.gmo
index 1f07ba8..55b77e5 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 19fc9ac..8930b3b 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-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\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"
@@ -68,9 +68,6 @@
 msgid "This stream contains no data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 #, fuzzy
 #~ msgid "Could not read title information for DVD."
 #~ msgstr "I pamundur shkrimi tek file \"%s\"."
diff --git a/po/sr.gmo b/po/sr.gmo
index d3e161d..c3fbcd6 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 8c6508b..45dc8c0 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2013-10-03 22:30+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -76,5 +76,5 @@
 msgid "This stream contains no data."
 msgstr "Овај ток не садржи податке."
 
-msgid "Internal data stream error."
-msgstr "Унутрашња грешка тока података."
+#~ msgid "Internal data stream error."
+#~ msgstr "Унутрашња грешка тока података."
diff --git a/po/sv.gmo b/po/sv.gmo
index 5ea4019..c3ab342 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index f4a2f20..4a26633 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.6.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2015-10-31 16:08+0100\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -16,6 +16,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Poedit 1.8.6\n"
 
 msgid "Could not read from CD."
@@ -78,5 +79,5 @@
 msgid "This stream contains no data."
 msgstr "Den här strömmen innehåller inget data."
 
-msgid "Internal data stream error."
-msgstr "Fel i intern dataström."
+#~ msgid "Internal data stream error."
+#~ msgstr "Fel i intern dataström."
diff --git a/po/tr.gmo b/po/tr.gmo
index b961ac8..e7bead8 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 7cbbccd..b9bcd1c 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-12-01 01:19+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -74,8 +74,8 @@
 msgid "This stream contains no data."
 msgstr "Akış veri içermiyor."
 
-msgid "Internal data stream error."
-msgstr "İç veri akış hatası."
+#~ msgid "Internal data stream error."
+#~ msgstr "İç veri akış hatası."
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "DVD'de geçersiz başlık bilgisi."
diff --git a/po/uk.gmo b/po/uk.gmo
index 0aaf662..85850c5 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index afb2fa1..43d7450 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2012-11-28 20:25+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -80,8 +80,8 @@
 msgid "This stream contains no data."
 msgstr "Потік не містить даних."
 
-msgid "Internal data stream error."
-msgstr "Помилка внутрішнього потоку даних."
+#~ msgid "Internal data stream error."
+#~ msgstr "Помилка внутрішнього потоку даних."
 
 #~ msgid "This file is encrypted and cannot be played."
 #~ msgstr "Файл зашифрований та не може бути відтворений."
diff --git a/po/vi.gmo b/po/vi.gmo
index d373fe6..73f65e2 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 29f82e7..59ca2a6 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2014-06-30 09:20+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -80,5 +80,5 @@
 msgid "This stream contains no data."
 msgstr "Luồng này không chứa dữ liệu."
 
-msgid "Internal data stream error."
-msgstr "Lỗi luồng dữ liệu nội bộ."
+#~ msgid "Internal data stream error."
+#~ msgstr "Lỗi luồng dữ liệu nội bộ."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index cbf61fd..9272d16 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 dad10ab..eb0adc2 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 12:02+0300\n"
+"POT-Creation-Date: 2016-09-30 12:22+0300\n"
 "PO-Revision-Date: 2015-08-28 15:36+0800\n"
 "Last-Translator: Mingye Wang <arthur200126@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -70,8 +70,8 @@
 msgid "This stream contains no data."
 msgstr "这个串流中没有包含数据."
 
-msgid "Internal data stream error."
-msgstr "内部数据流错误。"
+#~ msgid "Internal data stream error."
+#~ msgstr "内部数据流错误。"
 
 #~ msgid "Invalid title information on DVD."
 #~ msgstr "无效的 DVD 标题信息。"
diff --git a/win32/common/config.h b/win32/common/config.h
index 85117b9..45d5680 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -67,7 +67,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-08-19"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-09-30"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -256,7 +256,7 @@
 #define PACKAGE_NAME "GStreamer Ugly Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Ugly Plug-ins 1.8.3"
+#define PACKAGE_STRING "GStreamer Ugly Plug-ins 1.9.90"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-ugly"
@@ -265,7 +265,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.8.3"
+#define PACKAGE_VERSION "1.9.90"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -296,7 +296,7 @@
 #undef TARGET_CPU
 
 /* Version number of package */
-#define VERSION "1.8.3"
+#define VERSION "1.9.90"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */