New upstream version 1.11.1
diff --git a/ChangeLog b/ChangeLog
index 5b204ca..dbbf440 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,127 @@
-=== release 1.10.2 ===
+=== release 1.11.1 ===
 
-2016-11-29  Sebastian Dröge <slomo@coaxion.net>
+2017-01-12  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.10.2
+	  releasing 1.11.1
 
-2016-11-29 14:10:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+2017-01-12 14:37:02 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/hr.po:
 	* po/id.po:
 	* po/sv.po:
 	  po: Update translations
 
+2016-12-16 16:52:00 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* ext/amrnb/meson.build:
+	* ext/x264/meson.build:
+	* meson.build:
+	  meson: Install presets files
+
+2015-06-26 20:22:47 +0200  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
+
+	* ext/x264/GstX264Enc.prs:
+	  x264enc: Add a youtube preset.
+	  Based on https://support.google.com/youtube/answer/1722171
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751560
+
+2016-12-28 10:42:15 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* config.h.meson:
+	* configure.ac:
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
+	* docs/plugins/inspect/plugin-mad.xml:
+	* ext/Makefile.am:
+	* ext/mad/Makefile.am:
+	* ext/mad/gstmad.c:
+	* ext/mad/gstmad.h:
+	* ext/mad/meson.build:
+	* ext/meson.build:
+	  mad: remove plugin
+	  We have better replacements such as the mpg123 plugin.
+	  The main reason to keep around mad was for 'freeform'
+	  mp3 support, but mpg123 can handle those too nowadays.
+	  Also, mad is GPL and has been unmaintained for years.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=776140
+
+2016-12-16 19:07:51 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* Makefile.am:
+	* configure.ac:
+	* win32/MANIFEST:
+	* win32/common/.gitignore:
+	* win32/common/config.h:
+	  win32: remove platform-specific copies of generated headers
+	  Unused and no longer needed.
+
+2016-12-14 10:24:26 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* .gitignore:
+	* Makefile.am:
+	* configure.ac:
+	* gst-plugins-ugly.spec.in:
+	  Remove generated .spec file
+	  Likely extremely bitrotten, and we should not ship this anyway.
+
+2016-12-09 17:45:34 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* meson.build:
+	  meson: Support building without Gst debug
+
+2016-12-03 08:19:44 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* README:
+	* common:
+	  Automatic update of common submodule
+	  From f980fd9 to 39ac2f5
+
+2016-12-02 14:06:21 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/asfdemux/gstasfdemux.c:
+	  asfdemux: Fix memory leak of payload extensions for unusable/unsupported streams
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775515
+
+2016-11-30 18:11:30 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* ext/x264/gstx264enc.c:
+	  x264enc: Add information for mixed mode
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775411
+
+2016-11-30 17:30:33 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* ext/x264/gstx264enc.c:
+	  x264enc: Correctly pass interlacing/TFF information
+	  Give the interlacing information correctly to the encoder. Also parse
+	  TFF/BFF information from the caps and pass it too.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775411
+
+2016-11-28 15:14:18 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* ext/x264/gstx264enc.c:
+	  x264enc: Auto-detect interlace mode from caps
+	  If the caps are interlaced, interlacing is always enabled on the
+	  encoder. If the interlace-mode field is missing or if it's progressive,
+	  the encoder uses the "interlaced" property.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775228
+
+2016-11-26 11:20:51 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* .gitmodules:
+	  common: use https protocol for common submodule
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775110
+
+2016-11-25 23:51:00 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/realmedia/realhash.c:
+	  real: Fix compiler warnings with latest clang
+	  realhash.c:295:11: error: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Werror,-Wconstant-conversion]
+	  *buf1 = 128;
+	  ~ ^~~
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775112
+
 2016-11-25 12:41:03 +0100  Edward Hervey <edward@centricular.com>
 
 	* gst/asfdemux/gstasfdemux.c:
@@ -80,95 +190,46 @@
 	  we are neither EOS'd nor ERROR'd out from a pipeline point of view.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=774846
 
-2016-11-20 14:53:32 +0000  Tim-Philipp Müller <tim@centricular.com>
+2016-11-20 20:54:25 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* ext/dvdread/dvdreadsrc.c:
+	  dvdreadsrc: dvd-spu-clut-change is a sticky custom event
+
+2016-11-17 17:20:03 -0800  Scott D Phillips <scott.d.phillips@intel.com>
 
 	* meson.build:
-	  meson: update version
+	  meson: Add ignored warnings for MSVC
+	  https://bugzilla.gnome.org/show_bug.cgi?id=774656
 
-=== release 1.10.1 ===
+2016-11-11 14:15:17 +0200  Sebastian Dröge <sebastian@centricular.com>
 
-2016-11-17 15:55:50 +0200  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:
-	* 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.10.1
+	* ext/x264/Makefile.am:
+	* ext/x264/gstx264enc.c:
+	* ext/x264/gstx264enc.h:
+	* ext/x264/meson.build:
+	* meson_options.txt:
+	  x264enc: Add configure parameter to specify additional x264 libraries with e.g. different depth configuration
+	  x264 has to be compiled specifically for a target bit depth.
+	  Distributions currently ship various libraries in their packages, with
+	  different bit depths.
+	  This change now allows to provide them all at configure time and have
+	  the x264enc element dynamically switch between them based on the bit
+	  depth of the input format.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763297
 
-2016-11-17 15:06:59 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/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
-
-2016-11-17 14:46:41 +0200  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/id.po:
-	* po/sv.po:
-	  po: Update translations
-
-2016-11-01 19:43:03 +0000  Tim-Philipp Müller <tim@centricular.com>
+2016-11-01 18:09:25 +0000  Tim-Philipp Müller <tim@centricular.com>
 
 	* meson.build:
 	  meson: update version
 
+=== release 1.11.0 ===
+
+2016-11-01 18:53:15 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
 === release 1.10.0 ===
 
 2016-11-01 18:05:31 +0200  Sebastian Dröge <sebastian@centricular.com>
diff --git a/Makefile.am b/Makefile.am
index 1ecaff5..6462feb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,16 +2,11 @@
 
 SUBDIRS = \
 	gst-libs gst ext docs m4 tests common pkgconfig po
-
-# include before EXTRA_DIST for win32 assignment
-include $(top_srcdir)/common/win32.mak
 	
 EXTRA_DIST = \
-	gst-plugins-ugly.spec depcomp \
+	depcomp \
 	AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \
-	ChangeLog gst-plugins-ugly.doap autogen.sh \
-	$(win32)
-	
+	ChangeLog gst-plugins-ugly.doap autogen.sh
 
 DISTCLEANFILES = _stdint.h
 
@@ -35,20 +30,19 @@
 	true
 endif
 
-win32-update:
-	cp $(top_builddir)/win32/common/config.h-new \
-	    $(top_builddir)/win32/common/config.h
-
 include $(top_srcdir)/common/coverage/lcov.mak
 
 # cruft: plugins that have been merged or moved or renamed
 
 CRUFT_FILES = \
+	$(top_builddir)/gst-plugins-ugly.spec \
 	$(top_builddir)/common/shave \
 	$(top_builddir)/common/shave-libtool
 
 CRUFT_DIRS = \
-	$(top_srcdir)/docs/plugins/tmpl
+	$(top_srcdir)/docs/plugins/tmpl \
+	$(top_builddir)/win32 \
+	$(top_srcdir)/win32
 
 include $(top_srcdir)/common/cruft.mak
 
diff --git a/Makefile.in b/Makefile.in
index 0336a9d..1ca118d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,8 +14,6 @@
 
 @SET_MAKE@
 
-# various tests to make sure we dist the win32 stuff (for MSVC builds) right
-
 # include this snippet to add a common release: target by using
 # include $(top_srcdir)/common/release.mak
 
@@ -140,7 +138,7 @@
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = gst-plugins-ugly.spec
+CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -200,13 +198,11 @@
 CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
-	$(srcdir)/gst-plugins-ugly.spec.in \
 	$(top_srcdir)/common/coverage/lcov.mak \
 	$(top_srcdir)/common/cruft.mak $(top_srcdir)/common/po.mak \
-	$(top_srcdir)/common/release.mak \
-	$(top_srcdir)/common/win32.mak ABOUT-NLS AUTHORS COPYING \
+	$(top_srcdir)/common/release.mak ABOUT-NLS AUTHORS COPYING \
 	ChangeLog INSTALL NEWS README compile config.guess \
-	config.rpath config.sub depcomp install-sh ltmain.sh missing
+	config.rpath config.sub install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -385,8 +381,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -519,34 +513,23 @@
 SUBDIRS = \
 	gst-libs gst ext docs m4 tests common pkgconfig po
 
-
-# the MANIFEST contains all win32 related files that should be disted
-win32 = $(shell cat $(top_srcdir)/win32/MANIFEST)
-
-# wildcard is apparently not portable to other makes, hence the use of find
-# these are library .def files with the symbols to export
-win32defs = $(shell find $(top_srcdir)/win32/common -name '*.def')
-
-# wildcard is apparently not portable to other makes, hence the use of find
-# these are files that need to be disted with CRLF line endings:
-win32crlf = $(shell find $(top_srcdir)/win32 -name '*.dsw' -o -name '*.dsp')
-
-# include before EXTRA_DIST for win32 assignment
 EXTRA_DIST = \
-	gst-plugins-ugly.spec depcomp \
+	depcomp \
 	AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \
-	ChangeLog gst-plugins-ugly.doap autogen.sh \
-	$(win32)
+	ChangeLog gst-plugins-ugly.doap autogen.sh
 
 DISTCLEANFILES = _stdint.h
 
 # cruft: plugins that have been merged or moved or renamed
 CRUFT_FILES = \
+	$(top_builddir)/gst-plugins-ugly.spec \
 	$(top_builddir)/common/shave \
 	$(top_builddir)/common/shave-libtool
 
 CRUFT_DIRS = \
-	$(top_srcdir)/docs/plugins/tmpl
+	$(top_srcdir)/docs/plugins/tmpl \
+	$(top_builddir)/win32 \
+	$(top_srcdir)/win32
 
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -554,7 +537,7 @@
 .SUFFIXES:
 am--refresh: Makefile
 	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -576,7 +559,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__empty):
+$(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -601,8 +584,6 @@
 
 distclean-hdr:
 	-rm -f config.h stamp-h1
-gst-plugins-ugly.spec: $(top_builddir)/config.status $(srcdir)/gst-plugins-ugly.spec.in
-	cd $(top_builddir) && $(SHELL) ./config.status $@
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -776,9 +757,6 @@
 	      || exit 1; \
 	  fi; \
 	done
-	$(MAKE) $(AM_MAKEFLAGS) \
-	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
-	  dist-hook
 	-test -n "$(am__skip_mode_fix)" \
 	|| find "$(distdir)" -type d ! -perm -755 \
 		-exec chmod u+rwx,go+rx {} \; -o \
@@ -1021,93 +999,23 @@
 .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
 	am--refresh check check-am clean clean-cscope clean-generic \
 	clean-libtool cscope cscopelist-am ctags ctags-am dist \
-	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
-	dist-tarZ dist-xz dist-zip distcheck distclean \
-	distclean-generic distclean-hdr distclean-libtool \
-	distclean-tags distcleancheck distdir distuninstallcheck dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs installdirs-am \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am
+	dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+	dist-xz dist-zip distcheck distclean distclean-generic \
+	distclean-hdr distclean-libtool distclean-tags distcleancheck \
+	distdir distuninstallcheck dvi dvi-am html html-am info \
+	info-am install install-am install-data install-data-am \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
 
 .PRECIOUS: Makefile
 
 
-win32-debug:
-	@echo; \
-	echo win32     = $(win32); \
-	echo; \
-	echo win32defs = $(win32defs); \
-	echo; \
-	echo win32crlf = $(win32crlf); \
-	echo
-
-win32-check-crlf:
-	@echo Checking win32 files for CR LF line endings ...; \
-	fail=0 ; \
-	for each in $(win32crlf) ; do \
-	  result=`perl -e 'print grep(/\r\n/,<>)' "$$each" | wc -l`; \
-	  if test "$$result" = 0 ; then \
-	    echo $$each must be fixed to have CRLF line endings ; \
-	    fail=1; \
-	  fi ; \
-	done ; \
-	exit $$fail
-
-# make sure all symbols we export on linux are defined in the win32 .def too
-# (don't care about other unixes for now, it's enough if it works on one of
-# the linux build bots; we assume .so )
-check-exports:
-	@fail=0 ; \
-	for l in $(win32defs); do \
-	  libbase=`basename "$$l" ".def"`; \
-	  libso=`find "$(top_builddir)" -name "$$libbase-@GST_API_VERSION@.so" | grep -v /_build/ | head -n1`; \
-	  libdef="$(top_srcdir)/win32/common/$$libbase.def"; \
-	  if test "x$$libso" != "x"; then \
-	    echo Checking symbols in $$libso; \
-	    if ! ($(top_srcdir)/common/check-exports $$libdef $$libso) ; then \
-	      echo "$$libdef"; \
-	      if test "$$libbase" != "libgstgl"; then \
-	        fail=1; \
-	      fi; \
-	    fi; \
-	  fi; \
-	done ; \
-	if test $$fail != 0; then \
-	  echo '-----------------------------------------------------------'; \
-	  echo 'Run this to update the .def files:'; \
-	  echo 'make update-exports'; \
-	  echo '-----------------------------------------------------------'; \
-	fi; \
-	exit $$fail
-
-update-exports:
-	make check-exports 2>&1 | patch -p1
-	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.)
-check-nonportable-print-format:
-	@fail=0 ; \
-	loc=`find "$(top_srcdir)" -name '*.c' | xargs grep -n -e '%[0-9]*ll[udx]' -e '%[0-9]*z[udx]'`; \
-	if test "x$$loc" != "x"; then \
-	  echo "Please fix the following print format strings:" ; \
-	  find "$(top_srcdir)" -name '*.c' | xargs grep -n -e '%[0-9]*ll[udx]' -e '%[0-9]*z[udx]'; \
-	  fail=1; \
-	fi; \
-	exit $$fail
-
-dist-hook: check-exports win32-check-crlf
-
 release: dist
 	@$(MAKE) $(PACKAGE)-$(VERSION).tar.xz.sha256sum
 	@echo
@@ -1158,10 +1066,6 @@
 @HAVE_GST_CHECK_FALSE@	true
 @HAVE_GST_CHECK_FALSE@build-checks:
 @HAVE_GST_CHECK_FALSE@	true
-
-win32-update:
-	cp $(top_builddir)/win32/common/config.h-new \
-	    $(top_builddir)/win32/common/config.h
 .PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload lcov-clean
 
 # run lcov from scratch, always
diff --git a/NEWS b/NEWS
index 815dee3..a940f7b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,1162 +1 @@
-# GStreamer 1.10 Release Notes
-
-GStreamer 1.10.0 was originally released on 1st November 2016.
-The latest bug-fix release in the 1.10 series is [1.10.2](#1.10.2) and was
-released on 29 November 2016.
-
-The GStreamer team is proud to announce a new major feature release in the
-stable 1.x API series of your favourite cross-platform multimedia framework!
-
-As always, this release is again packed with new features, bug fixes and other
-improvements.
-
-See [https://gstreamer.freedesktop.org/releases/1.10/][latest] for the latest
-version of this document.
-
-*Last updated: Tuesday 29 Nov 2016, 12:30 UTC [(log)][gitlog]*
-
-[latest]: https://gstreamer.freedesktop.org/releases/1.10/
-[gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.10/release-notes-1.10.md
-
-## Introduction
-
-The GStreamer team is proud to announce a new major feature release in the
-stable 1.x API series of your favourite cross-platform multimedia framework!
-
-As always, this release is again packed with new features, bug fixes and other
-improvements.
-
-## Highlights
-
-- Several convenience APIs have been added to make developers' lives easier
-- A new `GstStream` API provides applications a more meaningful view of the
-  structure of streams, simplifying the process of dealing with media in
-  complex container formats
-- Experimental `decodebin3` and `playbin3` elements which bring a number of
-  improvements which were hard to implement within `decodebin` and `playbin`
-- A new `parsebin` element to automatically unpack and parse a stream, stopping
-  just short of decoding
-- Experimental new `meson`-based build system, bringing faster build and much
-  better Windows support (including for building with Visual Studio)
-- A new `gst-docs` module has been created, and we are in the process of moving
-  our documentation to a markdown-based format for easier maintenance and
-  updates
-- A new `gst-examples` module has been created, which contains example
-  GStreamer applications and is expected to grow with many more examples in
-  the future
-- Various OpenGL and OpenGL|ES-related fixes and improvements for greater
-  efficiency on desktop and mobile platforms, and Vulkan support on Wayland was
-  also added
-- Extensive improvements to the VAAPI plugins for improved robustness and
-  efficiency
-- Lots of fixes and improvements across the board, spanning RTP/RTSP, V4L2,
-  Bluetooth, audio conversion, echo cancellation, and more!
-
-## Major new features and changes
-
-### Noteworthy new API, features and other changes
-
-#### Core API additions
-
-##### Receive property change notifications via bus messages
-
-New API was added to receive element property change notifications via
-bus messages. So far, applications had to connect a callback to an element's
-`notify::property-name` signal via the GObject API, which was inconvenient for
-at least two reasons: one had to implement a signal callback function, and that
-callback function would usually be called from one of the streaming threads, so
-one had to marshal (send) any information gathered or pending requests to the
-main application thread which was tedious and error-prone.
-
-Enter [`gst_element_add_property_notify_watch()`][notify-watch] and
-[`gst_element_add_property_deep_notify_watch()`][deep-notify-watch] which will
-watch for changes of a property on the specified element, either only for this
-element or recursively for a whole bin or pipeline. Whenever such a
-property change happens, a `GST_MESSAGE_PROPERTY_NOTIFY` message will be posted
-on the pipeline bus with details of the element, the property and the new
-property value, all of which can be retrieved later from the message in the
-application via [`gst_message_parse_property_notify()`][parse-notify]. Unlike
-the GstBus watch functions, this API does not rely on a running GLib main loop.
-
-The above can be used to be notified asynchronously of caps changes in the
-pipeline, or volume changes on an audio sink element, for example.
-
-[notify-watch]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-add-property-notify-watch
-[deep-notify-watch]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-add-property-deep-notify-watch
-[parse-notify]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-parse-property-notify
-
-##### GstBin "deep" element-added and element-removed signals
-
-GstBin has gained `"deep-element-added"` and `"deep-element-removed"` signals
-which makes it easier for applications and higher-level plugins to track when
-elements are added or removed from a complex pipeline with multiple sub-bins.
-
-`playbin` makes use of this to implement the new `"element-setup"` signal which
-can be used to configure elements as they are added to `playbin`, just like the
-existing `"source-setup"` signal which can be used to configure the source
-element created.
-
-##### Error messages can contain additional structured details
-
-It is often useful to provide additional, structured information in error,
-warning or info messages for applications (or higher-level elements) to make
-intelligent decisions based on them. To allow this, error, warning and info
-messages now have API for adding arbitrary additional information to them
-using a `GstStructure`:
-[`GST_ELEMENT_ERROR_WITH_DETAILS`][element-error-with-details] and
-corresponding API for the other message types.
-
-This is now used e.g. by the new [`GST_ELEMENT_FLOW_ERROR`][element-flow-error]
-API to include the actual flow error in the error message, and the
-[souphttpsrc element][souphttpsrc-detailed-errors] to provide the HTTP
-status code, and the URL (if any) to which a redirection has happened.
-
-[element-error-with-details]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-ELEMENT-ERROR-WITH-DETAILS:CAPS
-[element-flow-error]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-ELEMENT-FLOW-ERROR:CAPS
-[souphttpsrc-detailed-errors]: https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/ext/soup/gstsouphttpsrc.c?id=60d30db912a1aedd743e66b9dcd2e21d71fbb24f#n1318
-
-##### Redirect messages have official API now
-
-Sometimes, elements need to redirect the current stream URL and tell the
-application to proceed with this new URL, possibly using a different
-protocol too (thus changing the pipeline configuration). Until now, this was
-informally implemented using `ELEMENT` messages on the bus.
-
-Now this has been formalized in the form of a new `GST_MESSAGE_REDIRECT` message.
-A new redirect message can be created using [`gst_message_new_redirect()`][new-redirect].
-If needed, multiple redirect locations can be specified by calling
-[`gst_message_add_redirect_entry()`][add-redirect] to add further redirect
-entries, all with metadata, so the application can decide which is
-most suitable (e.g. depending on the bitrate tags).
-
-[new-redirect]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-redirect
-[add-redirect]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-add-redirect-entry
-
-##### New pad linking convenience functions that automatically create ghost pads
-
-New pad linking convenience functions were added:
-[`gst_pad_link_maybe_ghosting()`][pad-maybe-ghost] and
-[`gst_pad_link_maybe_ghosting_full()`][pad-maybe-ghost-full] which were
-previously internal to GStreamer have now been exposed for general use.
-
-The existing pad link functions will refuse to link pads or elements at
-different levels in the pipeline hierarchy, requiring the developer to
-create ghost pads where necessary. These new utility functions will
-automatically create ghostpads as needed when linking pads at different
-levels of the hierarchy (e.g. from an element inside a bin to one that's at
-the same level in the hierarchy as the bin, or in another bin).
-
-[pad-maybe-ghost]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-link-maybe-ghosting
-[pad-maybe-ghost-full]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-link-maybe-ghosting-full
-
-##### Miscellaneous
-
-Pad probes: IDLE and BLOCK probes now work slightly differently in pull mode,
-so that push and pull mode have opposite scenarios for idle and blocking probes.
-In push mode, it will block with some data type and IDLE won't have any data.
-In pull mode, it will block _before_ getting a buffer and will be IDLE once some
-data has been obtained. ([commit][commit-pad-probes], [bug][bug-pad-probes])
-
-[commit-pad-probes]: https://cgit.freedesktop.org/gstreamer/gstreamer/commit/gst/gstpad.c?id=368ee8a336d0c868d81fdace54b24431a8b48cbf
-[bug-pad-probes]: https://bugzilla.gnome.org/show_bug.cgi?id=761211
-
-[`gst_parse_launch_full()`][parse-launch-full] can now be made to return a
-`GstBin` instead of a top-level pipeline by passing the new
-`GST_PARSE_FLAG_PLACE_IN_BIN` flag.
-
-[parse-launch-full]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstParse.html#gst-parse-launch-full
-
-The default GStreamer debug log handler can now be removed before
-calling `gst_init()`, so that it will never get installed and won't be active
-during initialization.
-
-A new [`STREAM_GROUP_DONE` event][stream-group-done-event] was added. In some
-ways it works similar to the `EOS` event in that it can be used to unblock
-downstream elements which may be waiting for further data, such as for example
-`input-selector`. Unlike `EOS`, further data flow may happen after the
-`STREAM_GROUP_DONE` event though (and without the need to flush the pipeline).
-This is used to unblock input-selector when switching between streams in
-adaptive streaming scenarios (e.g. HLS).
-
-[stream-group-done-event]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-new-stream-group-done
-
-The `gst-launch-1.0` command line tool will now print unescaped caps in verbose
-mode (enabled by the -v switch).
-
-[`gst_element_call_async()`][call-async] has been added as convenience API for
-plugin developers. It is useful for one-shot operations that need to be done
-from a thread other than the current streaming thread. It is backed by a
-thread-pool that is shared by all elements.
-
-[call-async]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-call-async
-
-Various race conditions have been fixed around the `GstPoll` API used by e.g.
-`GstBus` and `GstBufferPool`. Some of these manifested themselves primarily
-on Windows.
-
-`GstAdapter` can now keep track of discontinuities signalled via the `DISCONT`
-buffer flag, and has gained [new API][new-adapter-api] to track PTS, DTS and
-offset at the last discont. This is useful for plugins implementing advanced
-trick mode scenarios.
-
-[new-adapter-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-pts-at-discont
-
-`GstTestClock` gained a new [`"clock-type"` property][clock-type-prop].
-
-[clock-type-prop]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstTestClock.html#GstTestClock--clock-type
-
-#### GstStream API for stream announcement and stream selection
-
-New stream listing and stream selection API: new API has been added to
-provide high-level abstractions for streams ([`GstStream`][stream-api])
-and collections of streams ([`GstStreamCollections`][stream-collection-api]).
-
-##### Stream listing
-
-A [`GstStream`][stream-api] contains all the information pertinent to a stream,
-such as stream id, caps, tags, flags and stream type(s); it can represent a
-single elementary stream (e.g. audio, video, subtitles, etc.) or a container
-stream. This will depend on the context. In a decodebin3/playbin3 one
-it will typically be elementary streams that can be selected and unselected.
-
-A [`GstStreamCollection`][stream-collection-api] represents a group of streams
-and is used to announce or publish all available streams. A GstStreamCollection
-is immutable - once created it won't change. If the available streams change,
-e.g. because a new stream appeared or some streams disappeared, a new stream
-collection will be published. This new stream collection may contain streams
-from the previous collection if those streams persist, or completely new ones.
-Stream collections do not yet list all theoretically available streams,
-e.g. other available DVD angles or alternative resolutions/bitrate of the same
-stream in case of adaptive streaming.
-
-New events and messages have been added to notify or update other elements and
-the application about which streams are currently available and/or selected.
-This way, we can easily and seamlessly let the application know whenever the
-available streams change, as happens frequently with digital television streams
-for example. The new system is also more flexible. For example, it is now also
-possible for the application to select multiple streams of the same type
-(e.g. in a transcoding/transmuxing scenario).
-
-A [`STREAM_COLLECTION` message][stream-collection-msg] is posted on the bus
-to inform the parent bin (e.g. `playbin3`, `decodebin3`) and/or the application
-about what streams are available, so you no longer have to hunt for this
-information at different places. The available information includes number of
-streams of each type, caps, tags etc.  Bins and/or the application can intercept
-the message synchronously to select and deselect streams before any data is
-produced - for the case where elements such as the demuxers support the new
-stream API, not necessarily in the parsebin compatibility fallback case.
-
-Similarly, there is also a [`STREAM_COLLECTION` event][stream-collection-event]
-to inform downstream elements of the available streams. This event can be used
-by elements to aggregate streams from multiple inputs into one single collection.
-
-The `STREAM_START` event was extended so that it can also contain a GstStream
-object with all information about the current stream, see
-[`gst_event_set_stream()`][event-set-stream] and
-[`gst_event_parse_stream()`][event-parse-stream].
-[`gst_pad_get_stream()`][pad-get-stream] is a new utility function that can be
-used to look up the GstStream from the `STREAM_START` sticky event on a pad.
-
-[stream-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStream.html
-[stream-collection-api]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStreamCollection.html
-[stream-collection-msg]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#gst-message-new-stream-collection
-[stream-collection-event]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-new-stream-collection
-[event-set-stream]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-set-stream
-[event-parse-stream]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-parse-stream
-[pad-get-stream]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-get-stream
-
-##### Stream selection
-
-Once the available streams have been published, streams can be selected via
-their stream ID using the new `SELECT_STREAMS` event, which can be created
-with [`gst_event_new_select_streams()`][event-select-streams]. The new API
-supports selecting multiple streams per stream type. In the future, we may also
-implement explicit deselection of streams that will never be used, so
-elements can skip these and never expose them or output data for them in the
-first place.
-
-The application is then notified of the currently selected streams via the
-new `STREAMS_SELECTED` message on the pipeline bus, containing both the current
-stream collection as well as the selected streams. This might be posted in
-response to the application sending a `SELECT_STREAMS` event or when
-`decodebin3` or `playbin3` decide on the streams to be initially selected without
-application input.
-
-[event-select-streams]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstEvent.html#gst-event-new-select-streams
-
-##### Further reading
-
-See further below for some notes on the new elements supporting this new
-stream API, namely: `decodebin3`, `playbin3` and `parsebin`.
-
-More information about the new API and the new elements can also be found here:
-
-- GStreamer [stream selection design docs][streams-design]
-- Edward Hervey's talk ["The new streams API: Design and usage"][streams-talk] ([slides][streams-slides])
-- Edward Hervey's talk ["Decodebin3: Dealing with modern playback use cases"][db3-talk] ([slides][db3-slides])
-
-[streams-design]: https://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-stream-selection.txt
-[streams-talk]: https://gstconf.ubicast.tv/videos/the-new-gststream-api-design-and-usage/
-[streams-slides]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2016/Edward%20Hervey%20-%20The%20New%20Streams%20API%20Design%20and%20Usage.pdf
-[db3-talk]: https://gstconf.ubicast.tv/videos/decodebin3-or-dealing-with-modern-playback-use-cases/
-[db3-slides]: https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2015/Edward%20Hervey%20-%20decodebin3.pdf
-
-#### Audio conversion and resampling API
-
-The audio conversion library received a completely new and rewritten audio
-resampler, complementing the audio conversion routines moved into the audio
-library in the [previous release][release-notes-1.8]. Integrating the resampler
-with the other audio conversion library allows us to implement generic
-conversion much more efficiently, as format conversion and resampling can now
-be done in the same processing loop instead of having to do it in separate
-steps (our element implementations do not make use of this yet though).
-
-The new audio resampler library is a combination of some of the best features
-of other samplers such as ffmpeg, speex and SRC. It natively supports S16, S32,
-F32 and F64 formats and uses optimized x86 and neon assembly for most of its
-processing. It also has support for dynamically changing sample rates by incrementally
-updating the filter tables using linear or cubic interpolation. According to
-some benchmarks, it's one of the fastest and most accurate resamplers around.
-
-The `audioresample` plugin has been ported to the new audio library functions
-to make use of the new resampler.
-
-[release-notes-1.8]: https://gstreamer.freedesktop.org/releases/1.8/
-
-#### Support for SMPTE timecodes
-
-Support for SMPTE timecodes was added to the GStreamer video library. This
-comes with an abstraction for timecodes, [`GstVideoTimeCode`][video-timecode]
-and a [`GstMeta`][video-timecode-meta] that can be placed on video buffers for
-carrying the timecode information for each frame. Additionally there is
-various API for making handling of timecodes easy and to do various
-calculations with them.
-
-A new plugin called [`timecode`][timecode-plugin] was added, that contains an
-element called `timecodestamper` for putting the timecode meta on video frames
-based on counting the frames and another element called `timecodewait` that
-drops all video (and audio) until a specific timecode is reached.
-
-Additionally support was added to the Decklink plugin for including the
-timecode information when sending video out or capturing it via SDI, the
-`qtmux` element is able to write timecode information into the MOV container,
-and the `timeoverlay` element can overlay timecodes on top of the video.
-
-More information can be found in the [talk about timecodes][timecode-talk] at
-the GStreamer Conference 2016.
-
-[video-timecode]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideo.html#GstVideoTimeCode
-[video-timecode-meta]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-time-code-meta
-[timecode-plugin]: https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst/timecode
-[timecode-talk]: https://gstconf.ubicast.tv/videos/smpte-timecodes-in-gstreamer/
-
-#### GStreamer OpenMAX IL plugin
-
-The last gst-omx release, 1.2.0, was in July 2014. It was about time to get
-a new one out with all the improvements that have happened in the meantime.
-From now on, we will try to release gst-omx together with all other modules.
-
-This release features a lot of bugfixes, improved support for the Raspberry Pi
-and in general improved support for zerocopy rendering via EGL and a few minor
-new features.
-
-At this point, gst-omx is known to work best on the Raspberry Pi platform but
-it is also known to work on various other platforms. Unfortunately, we are
-not including configurations for any other platforms, so if you happen to use
-gst-omx: please send us patches with your configuration and code changes!
-
-### New Elements
-
-#### decodebin3, playbin3, parsebin (experimental)
-
-This release features new decoding and playback elements as experimental
-technology previews: `decodebin3` and `playbin3` will soon supersede the
-existing `decodebin` and `playbin` elements. We skipped the number 2 because
-it was already used back in the 0.10 days, which might cause confusion.
-Experimental technology preview means that everything should work fine already,
-but we can't guarantee there won't be minor behavioural changes in the
-next cycle. In any case, please test and report any problems back.
-
-Before we go into detail about what these new elements improve, let's look at
-the new [`parsebin`][parsebin] element. It works similarly to `decodebin` and
-`decodebin3`, only that it stops one step short and does not plug any actual
-decoder elements. It will only plug parsers, tag readers, demuxers and
-depayloaders. Also note that parsebin does not contain any queueing element.
-
-[`decodebin3`'s][decodebin3] internal architecture is slightly different from
-the existing `decodebin` element and fixes many long-standing issues with our
-decoding engine. For one, data is now fed into the internal `multiqueue` element
-*after* it has been parsed and timestamped, which means that the `multiqueue`
-element now has more knowledge and is able to calculate the interleaving of the
-various streams, thus minimizing memory requirements and doing away with magic
-values for buffering limits that were conceived when videos were 240p or 360p.
-Anyone who has tried to play back 4k video streams with decodebin2
-will have noticed the limitations of that approach. The improved timestamp
-tracking also enables `multiqueue` to keep streams of the same type (audio,
-video) aligned better, making sure switching between streams of the same type
-is very fast.
-
-Another major improvement in `decodebin3` is that it will no longer decode
-streams that are not being used. With the old `decodebin` and `playbin`, when
-there were 8 audio streams we would always decode all 8 streams even
-if 7 were not actually used. This caused a lot of CPU overhead, which was
-particularly problematic on embedded devices. When switching between streams
-`decodebin3` will try hard to re-use existing decoders. This is useful when
-switching between multiple streams of the same type if they are encoded in the
-same format.
-
-Re-using decoders is also useful when the available streams change on the fly,
-as might happen with radio streams (chained Oggs), digital television
-broadcasts, when adaptive streaming streams change bitrate, or when switching
-gaplessly to the next title. In order to guarantee a seamless transition, the
-old `decodebin2` would plug a second decoder for the new stream while finishing
-up the old stream. With `decodebin3`, this is no longer needed - at least not
-when the new and old format are the same. This will be particularly useful
-on embedded systems where it is often not possible to run multiple decoders
-at the same time, or when tearing down and setting up decoders is fairly
-expensive.
-
-`decodebin3` also allows for multiple input streams, not just a single one.
-This will be useful, in the future, for gapless playback, or for feeding
-multiple external subtitle streams to decodebin/playbin.
-
-`playbin3` uses `decodebin3` internally, and will supercede `playbin`.
-It was decided that it would be too risky to make the old `playbin` use the
-new `decodebin3` in a backwards-compatible way. The new architecture
-makes it awkward, if not impossible, to maintain perfect backwards compatibility
-in some aspects, hence `playbin3` was born, and developers can migrate to the
-new element and new API at their own pace.
-
-All of these new elements make use of the new `GstStream` API for listing and
-selecting streams, as described above. `parsebin` provides backwards
-compatibility for demuxers and parsers which do not advertise their streams
-using the new API yet (which is most).
-
-The new elements are not entirely feature-complete yet: `playbin3` does not
-support so-called decodersinks yet where the data is not decoded inside
-GStreamer but passed directly for decoding to the sink. `decodebin3` is missing
-the various `autoplug-*` signals to influence which decoders get autoplugged
-in which order. We're looking to add back this functionality, but it will probably
-be in a different way, with a single unified signal and using GstStream perhaps.
-
-For more information on these new elements, check out Edward Hervey's talk
-[*decodebin3 - dealing with modern playback use cases*][db3-talk]
-
-[parsebin]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-parsebin.html
-[decodebin3]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-decodebin3.html
-[db3-talk]: https://gstconf.ubicast.tv/videos/decodebin3-or-dealing-with-modern-playback-use-cases/
-
-#### LV2 ported from 0.10 and switched from slv2 to lilv2
-
-The LV2 wrapper plugin has been ported to 1.0 and moved from using the
-deprecated slv2 library to its replacement liblv2. We support sources and
-filter elements. lv2 is short for *Linux Audio Developer's Simple Plugin API
-(LADSPA) version 2* and is an open standard for audio plugins which includes
-support for audio synthesis (generation), digital signal processing of digital
-audio, and MIDI. The new lv2 plugin supersedes the existing LADSPA plugin.
-
-#### WebRTC DSP Plugin for echo-cancellation, gain control and noise suppression
-
-A set of new elements ([webrtcdsp][webrtcdsp], [webrtcechoprobe][webrtcechoprobe])
-based on the WebRTC DSP software stack can now be used to improve your audio
-voice communication pipelines. They support echo cancellation, gain control,
-noise suppression and more. For more details you may read
-[Nicolas' blog post][webrtc-blog-post].
-
-[webrtcdsp]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-webrtcdsp.html
-[webrtcechoprobe]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-webrtcechoprobe.html
-[webrtc-blog-post]: https://ndufresne.ca/2016/06/gstreamer-echo-canceller/
-
-#### Fraunhofer FDK AAC encoder and decoder
-
-New encoder and decoder elements wrapping the Fraunhofer FDK AAC library have
-been added (`fdkaacdec`, `fdkaacdec`). The Fraunhofer FDK AAC encoder is
-generally considered to be a very high-quality AAC encoder, but unfortunately
-it comes under a non-free license with the option to obtain a paid, commercial
-license.
-
-### Noteworthy element features and additions
-
-#### Major RTP and RTSP improvements
-
-- The RTSP server and source element, as well as the RTP jitterbuffer now support
-  remote clock synchronization according to [RFC7273][https://tools.ietf.org/html/rfc7273].
-- Support for application and profile specific RTCP packets was added.
-- The H265/HEVC payloader/depayloader is again in sync with the final RFC.
-- Seeking stability of the RTSP source and server was improved a lot and
-  runs stably now, even when doing scrub-seeking.
-- The RTSP server received various major bugfixes, including for regressions that
-  caused the IP/port address pool to not be considered, or NAT hole punching
-  to not work anymore. [Bugzilla #766612][https://bugzilla.gnome.org/show_bug.cgi?id=766612]
-- Various other bugfixes that improve the stability of RTP and RTSP, including
-  many new unit / integration tests.
-
-#### Improvements to splitmuxsrc and splitmuxsink
-
-- The splitmux element received reliability and error handling improvements,
-  removing at least one deadlock case. `splitmuxsrc` now stops cleanly at the end
-  of the segment when handling seeks with a stop time. We fixed a bug with large
-  amounts of downstream buffering causing incorrect out-of-sequence playback.
-
-- `splitmuxsrc` now has a `"format-location"` signal to directly specify the list
-  of files to play from.
-
-- `splitmuxsink` can now optionally send force-keyunit events to upstream
-  elements to allow splitting files more accurately instead of having to wait
-  for upstream to provide a new keyframe by itself.
-
-#### OpenGL/GLES improvements
-
-##### iOS and macOS (OS/X)
-
-- We now create OpenGL|ES 3.x contexts on iOS by default with a fallback to
-  OpenGL|ES 2.x if that fails.
-- Various zerocopy decoding fixes and enhancements with the
-  encoding/decoding/capturing elements.
-- libdispatch is now used on all Apple platforms instead of GMainLoop, removing
-  the expensive poll()/pthread_*() overhead.
-
-##### New API
-
-- `GstGLFramebuffer` - for wrapping OpenGL frame buffer objects.  It provides
-  facilities for attaching `GstGLMemory` objects to the necessary attachment
-  points, binding and unbinding and running a user-supplied function with the
-  framebuffer bound.
-- `GstGLRenderbuffer` (a `GstGLBaseMemory` subclass) - for wrapping OpenGL
-  render buffer objects that are typically used for depth/stencil buffers or
-  for color buffers where we don't care about the output.
-- `GstGLMemoryEGL` (a `GstGLMemory` subclass) - for combining `EGLImage`s with a GL
-  texture that replaces `GstEGLImageMemory` bringing the improvements made to the
-  other `GstGLMemory` implementations.  This fixes a performance regression in
-  zerocopy decoding on the Raspberry Pi when used with an updated gst-omx.
-
-##### Miscellaneous improvements
-
-- `gltestsrc` is now usable on devices/platforms with OpenGL 3.x and OpenGL|ES
-  and has completed or gained support for new patterns in line with the
-  existing ones in `videotestsrc`.
-- `gldeinterlace` is now available on devices/platforms with OpenGL|ES
-  implementations.
-- The dispmanx backend (used on the Raspberry Pi) now supports the
-  `gst_video_overlay_set_window_handle()` and
-  `gst_video_overlay_set_render_rectangle()` functions.
-- The `gltransformation` element now correctly transforms mouse coordinates (in
-  window space) to stream coordinates for both perspective and orthographic
-  projections.
-- The `gltransformation` element now detects if the
-  `GstVideoAffineTransformationMeta` is supported downstream and will efficiently
-  pass its transformation downstream. This is a performance improvement as it
-  results in less processing being required.
-- The wayland implementation now uses the multi-threaded safe event-loop API
-  allowing correct usage in applications that call wayland functions from
-  multiple threads.
-- Support for native 90 degree rotations and horizontal/vertical flips
-  in `glimagesink`.
-
-#### Vulkan
-
-- The Vulkan elements now work under Wayland and have received numerous
-  bugfixes.
-
-#### QML elements
-
-- `qmlglsink` video sink now works on more platforms, notably, Windows, Wayland,
-  and Qt's eglfs (for embedded devices with an OpenGL implementation) including
-  the Raspberry Pi.
-- New element `qmlglsrc` to record a QML scene into a GStreamer pipeline.
-
-#### KMS video sink
-
-- New element `kmssink` to render video using Direct Rendering Manager
-  (DRM) and Kernel Mode Setting (KMS) subsystems in the Linux
-  kernel. It is oriented to be used mostly in embedded systems.
-
-#### Wayland video sink
-
-- `waylandsink` now supports the wl_viewporter extension allowing
-  video scaling and cropping to be delegated to the Wayland
-  compositor. This extension is also been made optional, so that it can
-  also work on current compositors that don't support it. It also now has
-  support for the video meta, allowing zero-copy operations in more
-  cases.
-
-#### DVB improvements
-
-- `dvbsrc` now has better delivery-system autodetection and several
-  new parameter sanity-checks to improve its resilience to configuration
-  omissions and errors. Superfluous polling continues to be trimmed down,
-  and the debugging output has been made more consistent and precise.
-  Additionally, the channel-configuration parser now supports the new dvbv5
-  format, enabling `dvbbasebin` to automatically playback content transmitted
-  on delivery systems that previously required manual description, like ISDB-T.
-
-#### DASH, HLS and adaptivedemux
-
-- HLS now has support for Alternate Rendition audio and video tracks. Full
-  support for Alternate Rendition subtitle tracks will be in an upcoming release.
-- DASH received support for keyframe-only trick modes if the
-  `GST_SEEK_FLAG_TRICKMODE_KEY_UNITS` flag is given when seeking. It will
-  only download keyframes then, which should help with high-speed playback.
-  Changes to skip over multiple frames based on bandwidth and other metrics
-  will be added in the near future.
-- Lots of reliability fixes around seek handling and bitrate switching.
-
-#### Bluetooth improvements
-
-- The `avdtpsrc` element now supports metadata such as track title, artist
-  name, and more, which devices can send via AVRCP. These are published as
-  tags on the pipeline.
-- The `a2dpsink` element received some love and was cleaned up so that it
-  actually works after the initial GStreamer 1.0 port.
-
-#### GStreamer VAAPI
-
-- All the decoders have been split, one plugin feature per codec. So
-  far, the available ones, depending on the driver, are:
-  `vaapimpeg2dec`, `vaapih264dec`, `vaapih265dec`, `vaapivc1dec`, `vaapivp8dec`,
-  `vaapivp9dec` and `vaapijpegdec` (which already was split).
-- Improvements when mapping VA surfaces into memory. It now differentiates
-  between negotiation caps and allocations caps, since the allocation
-  memory for surfaces may be bigger than one that is going to be
-  mapped.
-- `vaapih265enc` now supports constant bitrate mode (CBR).
-- Since several VA drivers are unmaintained, we decide to keep a whitelist
-  with the va drivers we actually test, which is mostly the i915 and to a lesser
-  degree gallium from the mesa project. Exporting the environment variable
-  `GST_VAAPI_ALL_DRIVERS` disables the whitelist.
-- Plugin features are registered at run-time, according to their support by
-  the loaded VA driver. So only the decoders and encoder supported by the
-  system are registered. Since the driver can change, some dependencies are
-  tracked to invalidate the GStreamer registry and reload the plugin.
-- `dmabuf` importation from upstream has been improved, gaining performance.
-- `vaapipostproc` now can negotiate buffer transformations via caps.
-- Decoders now can do I-frame only reverse playback. This decodes I-frames
-  only because the surface pool is smaller than the required by the GOP to show all the
-  frames.
-- The upload of frames onto native GL textures has been optimized too, keeping
-  a cache of the internal structures for the offered textures by the sink.
-
-#### V4L2 changes
-
-- More pixels formats are now supported
-- Decoder is now using `G_SELECTION` instead of the deprecated `G_CROP`
-- Decoder now uses the `STOP` command to handle EOS
-- Transform element can now scale the pixel aspect ratio
-- Colorimetry support has been improved even more
-- We now support the `OUTPUT_OVERLAY` type of video node in v4l2sink
-
-#### Miscellaneous
-
-- `multiqueue`'s input pads gained a new `"group-id"` property which
-  can be used to group input streams. Typically one will assign
-  different id numbers to audio, video and subtitle streams for
-  example. This way `multiqueue` can make sure streams of the same
-  type advance in lockstep if some of the streams are unlinked and the
-  `"sync-by-running-time"` property is set. This is used in
-  decodebin3/playbin3 to implement almost-instantaneous stream
-  switching.  The grouping is required because different downstream
-  paths (audio, video, etc.)  may have different buffering/latency
-  etc. so might be consuming data from multiqueue with a slightly
-  different phase, and if we track different stream groups separately
-  we minimize stream switching delays and buffering inside the
-  `multiqueue`.
-- `alsasrc` now supports ALSA drivers without a position for each
-  channel, this is common in some professional or industrial hardware.
-- `libvpx` based decoders (`vp8dec` and `vp9dec`) now create multiple threads on
-  computers with multiple CPUs automatically.
-- `rfbsrc` - used for capturing from a VNC server - has seen a lot of
-  debugging. It now supports the latest version of the RFB
-  protocol and uses GIO everywhere.
-- `tsdemux` can now read ATSC E-AC-3 streams.
-- New `GstVideoDirection` video orientation interface for rotating, flipping
-  and mirroring video in 90° steps. It is implemented by the `videoflip` and
-  `glvideoflip` elements currently.
-- It is now possible to give `appsrc` a duration in time, and there is now a
-  non-blocking try-pull API for `appsink` that returns NULL if nothing is
-  available right now.
-- `x264enc` has support now for chroma-site and colorimetry settings
-- A new JPEG2000 parser element was added, and the JPEG2000 caps were cleaned
-  up and gained more information needed in combination with RTP and various
-  container formats.
-- Reverse playback support for `videorate` and `deinterlace` was implemented
-- Various improvements everywhere for reverse playback and `KEY_UNITS` trick mode
-- New cleaned up `rawaudioparse` and `rawvideoparse` elements that replace the
-  old `audioparse` and `videoparse` elements. There are compatibility element
-  factories registered with the old names to allow existing code to continue
-  to work.
-- The Decklink plugin gained support for 10 bit video SMPTE timecodes, and
-  generally got many bugfixes for various issues.
-- New API in `GstPlayer` for setting the multiview mode for stereoscopic
-  video, setting an HTTP/RTSP user agent and a time offset between audio and
-  video. In addition to that, there were various bugfixes and the new
-  gst-examples module contains Android, iOS, GTK+ and Qt example applications.
-- `GstBin` has new API for suppressing various `GstElement` or `GstObject`
-  flags that would otherwise be affected by added/removed child elements. This
-  new API allows `GstBin` subclasses to handle for themselves if they
-  should be considered a sink or source element, for example.
-- The `subparse` element can handle WebVTT streams now.
-- A new `sdpsrc` element was added that can read an SDP from a file, or get it
-  as a string as property and then sets up an RTP pipeline accordingly.
-
-### Plugin moves
-
-No plugins were moved this cycle. We'll make up for it next cycle, promise!
-
-### Rewritten memory leak tracer
-
-GStreamer has had basic functionality to trace allocation and freeing of
-both mini-objects (buffers, events, caps, etc.) and objects in the form of the
-internal `GstAllocTrace` tracing system. This API was never exposed in the
-1.x API series though. When requested, this would dump a list of objects and
-mini-objects at exit time which had still not been freed at that point,
-enabled with an environment variable. This subsystem has now been removed
-in favour of a new implementation based on the recently-added tracing framework.
-
-Tracing hooks have been added to trace the creation and destruction of
-GstObjects and mini-objects, and a new tracer plugin has been written using
-those new hooks to track which objects are still live and which are not. If
-GStreamer has been compiled against the libunwind library, the new leaks tracer
-will remember where objects were allocated from as well. By default the leaks
-tracer will simply output a warning if leaks have been detected on `gst_deinit()`.
-
-If the `GST_LEAKS_TRACER_SIG` environment variable is set, the leaks tracer
-will also handle the following UNIX signals:
-
- - `SIGUSR1`: log alive objects
- - `SIGUSR2`: create a checkpoint and print a list of objects created and
-   destroyed since the previous checkpoint.
-
-Unfortunately this will not work on Windows due to no signals, however.
-
-If the `GST_LEAKS_TRACER_STACK_TRACE` environment variable is set, the leaks
-tracer will also log the creation stack trace of leaked objects. This may
-significantly increase memory consumption however.
-
-New `MAY_BE_LEAKED` flags have been added to GstObject and GstMiniObject, so
-that objects and mini-objects that are likely to stay around forever can be
-flagged and blacklisted from the leak output.
-
-To give the new leak tracer a spin, simply call any GStreamer application such
-as `gst-launch-1.0` or `gst-play-1.0` like this:
-
-    GST_TRACERS=leaks gst-launch-1.0 videotestsrc num-buffers=10 ! fakesink
-
-If there are any leaks, a warning will be raised at the end.
-
-It is also possible to trace only certain types of objects or mini-objects:
-
-    GST_TRACERS="leaks(GstEvent,GstMessage)" gst-launch-1.0 videotestsrc num-buffers=10 ! fakesink
-
-This dedicated leaks tracer is much much faster than valgrind since all code is
-executed natively instead of being instrumented. This makes it very suitable
-for use on slow machines or embedded devices. It is however limited to certain
-types of leaks and won't catch memory leaks when the allocation has been made
-via plain old `malloc()` or `g_malloc()` or other means. It will also not trace
-non-GstObject GObjects.
-
-The goal is to enable leak tracing on GStreamer's Continuous-Integration and
-testing system, both for the regular unit tests (make check) and media tests
-(gst-validate), so that accidental leaks in common code paths can be detected
-and fixed quickly.
-
-For more information about the new tracer, check out Guillaume Desmottes's
-["Tracking Memory Leaks"][leaks-talk] talk or his [blog post][leaks-blog] about
-the topic.
-
-[leaks-talk]: https://gstconf.ubicast.tv/videos/tracking-memory-leaks/
-[leaks-blog]: https://blog.desmottes.be/?post/2016/06/20/GStreamer-leaks-tracer
-
-### GES and NLE changes
-
-- Clip priorities are now handled by the layers, and the GESTimelineElement
-  priority property is now deprecated and unused
-- Enhanced (de)interlacing support to always use the `deinterlace` element
-  and expose needed properties to users
-- Allow reusing clips children after removing the clip from a layer
-- We are now testing many more rendering formats in the gst-validate
-  test suite, and failures have been fixed.
-- Also many bugs have been fixed in this cycle!
-
-### GStreamer validate changes
-
-This cycle has been focused on making GstValidate more than just a validating
-tool, but also a tool to help developers debug their GStreamer issues. When
-reporting issues, we try to gather as much information as possible and expose
-it to end users in a useful way. For an example of such enhancements, check out
-Thibault Saunier's [blog post](improving-debugging-gstreamer-validate) about
-the new Not Negotiated Error reporting mechanism.
-
-Playbin3 support has been added so we can run validate tests with `playbin3`
-instead of playbin.
-
-We are now able to properly communicate between `gst-validate-launcher` and
-launched subprocesses with actual IPC between them. That has enabled the test
-launcher to handle failing tests specifying the exact expected issue(s).
-
-[improving-debugging-gstreamer-validate]: https://blogs.s-osg.org/improving-debugging-gstreamer-validate/
-
-### gst-libav changes
-
-gst-libav uses the recently released ffmpeg 3.2 now, which brings a lot of
-improvements and bugfixes from the ffmpeg team in addition to various new
-codec mappings on the GStreamer side and quite a few bugfixes to the GStreamer
-integration to make it more robust.
-
-## Build and Dependencies
-
-### Experimental support for Meson as build system
-
-#### Overview
-
-We have have added support for building GStreamer using the
-[Meson build system][meson]. This is currently experimental, but should work
-fine at least on Linux using the gcc or clang toolchains and on Windows using
-the MingW or MSVC toolchains.
-
-Autotools remains the primary build system for the time being, but we hope to
-someday replace it and will steadily work towards that goal.
-
-More information about the background and implications of all this and where
-we're hoping to go in future with this can be found in [Tim's mail][meson-mail]
-to the gstreamer-devel mailing list.
-
-For more information on Meson check out [these videos][meson-videos] and also
-the [Meson talk][meson-gstconf] at the GStreamer Conference.
-
-Immediate benefits for Linux users are faster builds and rebuilds. At the time
-of writing the Meson build of GStreamer is used by default in GNOME's jhbuild
-system.
-
-The Meson build currently still lacks many of the fine-grained configuration
-options to enable/disable specific plugins. These will be added back in due
-course.
-
-Note: The meson build files are not distributed in the source tarballs, you will
-need to get GStreamer from git if you want try it out.
-
-[meson]: http://mesonbuild.com/
-[meson-mail]: https://lists.freedesktop.org/archives/gstreamer-devel/2016-September/060231.html
-[meson-videos]: http://mesonbuild.com/videos.html
-[meson-gstconf]: https://gstconf.ubicast.tv/videos/gstreamer-development-on-windows-ans-faster-builds-everywhere-with-meson/
-
-#### Windows Visual Studio toolchain support
-
-Windows users might appreciate being able to build GStreamer using the MSVC
-toolchain, which is not possible using autotools. This means that it will be
-possible to debug GStreamer and applications in Visual Studio, for example.
-We require VS2015 or newer for this at the moment.
-
-There are two ways to build GStreamer using the MSVC toolchain:
-
-1. Using the MSVC command-line tools (`cl.exe` etc.) via Meson's "ninja" backend.
-2. Letting Meson's "vs2015" backend generate Visual Studio project files that
-   can be opened in Visual Studio and compiled from there.
-
-This is currently only for adventurous souls though. All the bits are in place,
-but support for all of this has not been merged into GStreamer's cerbero build
-tool yet at the time of writing. This will hopefully happen in the next cycle,
-but for now this means that those wishing to compile GStreamer with MSVC will
-have to get their hands dirty.
-
-There are also no binary SDK builds using the MSVC toolchain yet.
-
-For more information on GStreamer builds using Meson and the Windows toolchain
-check out Nirbheek Chauhan's blog post ["Building and developing GStreamer using Visual Studio"][msvc-blog].
-
-[msvc-blog]: http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
-
-### Dependencies
-
-#### gstreamer
-
-libunwind was added as an optional dependency. It is used only for debugging
-and tracing purposes.
-
-The `opencv` plugin in gst-plugins-bad can now be built against OpenCV
-version 3.1, previously only 2.3-2.5 were supported.
-
-#### gst-plugins-ugly
-
-- `mpeg2dec` now requires at least libmpeg2 0.5.1 (from 2008).
-
-#### gst-plugins-bad
-
-- `gltransformation` now requires at least graphene 1.4.0.
-
-- `lv2` now plugin requires at least lilv 0.16 instead of slv2.
-
-### Packaging notes
-
-Packagers please note that the `gst/gstconfig.h` public header file in the
-GStreamer core library moved back from being an architecture dependent include
-to being architecture independent, and thus it is no longer installed into
-`$(libdir)/gstreamer-1.0/include/gst` but into the normal include directory
-where it lives happily ever after with all the other public header files. The
-reason for this is that we now check whether the target supports unaligned
-memory access based on predefined compiler macros at compile time instead of
-checking it at configure time.
-
-## Platform-specific improvements
-
-### Android
-
-#### New universal binaries for all supported ABIs
-
-We now provide a "universal" tarball to allow building apps against all the
-architectures currently supported (x86, x86-64, armeabi, armeabi-v7a,
-armeabi-v8a). This is needed for building with recent versions of the Android
-NDK which defaults to building against all supported ABIs. Use [the Android
-player example][android-player-example-build] as a reference for the required
-changes.
-
-[android-player-example-build]: https://cgit.freedesktop.org/gstreamer/gst-examples/commit/playback/player/android?id=a5cdde9119f038a1eb365aca20faa9741a38e788
-
-#### Miscellaneous
-
-- New `ahssrc` element that allows reading the hardware sensors, e.g. compass
-  or accelerometer.
-
-### macOS (OS/X) and iOS
-
-- Support for querying available devices on OS/X via the GstDeviceProvider
-  API was added.
-- It is now possible to create OpenGL|ES 3.x contexts on iOS and use them in
-  combination with the VideoToolbox based decoder element.
-- many OpenGL/GLES improvements, see OpenGL section above
-
-### Windows
-
-- gstconfig.h: Always use dllexport/import on Windows with MSVC
-- Miscellaneous fixes to make libs and plugins compile with the MVSC toolchain
-- MSVC toolchain support (see Meson section above for more details)
-
-## New Modules for Documentation, Examples, Meson Build
-
-Three new git modules have been added recently:
-
-### gst-docs
-
-This is a new module where we will maintain documentation in the markdown
-format.
-
-It contains the former gstreamer.com SDK tutorials which have kindly been made
-available by Fluendo under a Creative Commons license. The tutorials have been
-reviewed and updated for GStreamer 1.x and will be available as part of the
-[official GStreamer documentation][doc] going forward. The old gstreamer.com
-site will then be shut down with redirects pointing to the updated tutorials.
-
-Some of the existing docbook XML-formatted documentation from the GStreamer
-core module such as the *Application Development Manual* and the *Plugin
-Writer's Guide* have been converted to markdown as well and will be maintained
-in the gst-docs module in future. They will be removed from the GStreamer core
-module in the next cycle.
-
-This is just the beginning. Our goal is to provide a more cohesive documentation
-experience for our users going forward, and easier to create and maintain
-documentation for developers. There is a lot more work to do, get in touch if
-you want to help out.
-
-If you encounter any problems or spot any omissions or outdated content in the
-new documentation, please [file a bug in bugzilla][doc-bug] to let us know.
-
-We will probably release gst-docs as a separate tarball for distributions to
-package in the next cycle.
-
-[doc]: http://gstreamer.freedesktop.org/documentation/
-[doc-bug]: https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=documentation
-
-### gst-examples
-
-A new [module][examples-git] has been added for examples. It does not contain
-much yet, currently it only contains a small [http-launch][http-launch] utility
-that serves a pipeline over http as well as various [GstPlayer playback frontends][puis]
-for Android, iOS, Gtk+ and Qt.
-
-More examples will be added over time. The examples in this repository should
-be more useful and more substantial than most of the examples we ship as part
-of our other modules, and also written in a way that makes them good example
-code. If you have ideas for examples, let us know.
-
-No decision has been made yet if this module will be released and/or packaged.
-It probably makes sense to do so though.
-
-[examples-git]: https://cgit.freedesktop.org/gstreamer/gst-examples/tree/
-[http-launch]: https://cgit.freedesktop.org/gstreamer/gst-examples/tree/network/http-launch/
-[puis]: https://cgit.freedesktop.org/gstreamer/gst-examples/tree/playback/player
-
-### gst-build
-
-[gst-build][gst-build-git] is a new meta module to build GStreamer using the
-new Meson build system. This module is not required to build GStreamer with
-Meson, it is merely for convenience and aims to provide a development setup
-similar to the existing `gst-uninstalled` setup.
-
-gst-build makes use of Meson's [subproject feature][meson-subprojects] and sets
-up the various GStreamer modules as subprojects, so they can all be updated and
-built in parallel.
-
-This module is still very new and highly experimental. It should work at least
-on Linux and Windows (OS/X needs some build fixes). Let us know of any issues
-you encounter by popping into the `#gstreamer` IRC channel or by
-[filing a bug][gst-build-bug].
-
-This module will probably not be released or packaged (does not really make sense).
-
-[gst-build-git]: https://cgit.freedesktop.org/gstreamer/gst-build/tree/
-[gst-build-bug]: https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer&component=gst-build
-[meson-subprojects]: https://github.com/mesonbuild/meson/wiki/Subprojects
-
-## Contributors
-
-Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț, Alex
-Ashley, Alex-P. Natsios, Alistair Buxton, Allen Zhang, Andreas Naumann, Andrew
-Eikum, Andy Devar, Anthony G. Basile, Arjen Veenhuizen, Arnaud Vrac, Artem
-Martynovich, Arun Raghavan, Aurélien Zanelli, Barun Kumar Singh, Bernhard
-Miller, Brad Lackey, Branko Subasic, Carlos Garcia Campos, Carlos Rafael
-Giani, Christoffer Stengren, Daiki Ueno, Damian Ziobro, Danilo Cesar Lemes de
-Paula, David Buchmann, Dimitrios Katsaros, Duncan Palmer, Edward Hervey,
-Emmanuel Poitier, Enrico Jorns, Enrique Ocaña González, Fabrice Bellet,
-Florian Zwoch, Florin Apostol, Francisco Velazquez, Frédéric Bertolus, Fredrik
-Fornwall, Gaurav Gupta, George Kiagiadakis, Georg Lippitsch, Göran Jönsson,
-Graham Leggett, Gregoire Gentil, Guillaume Desmottes, Gwang Yoon Hwang, Haakon
-Sporsheim, Haihua Hu, Havard Graff, Heinrich Fink, Hoonhee Lee, Hyunjun Ko,
-Iain Lane, Ian, Ian Jamison, Jagyum Koo, Jake Foytik, Jakub Adam, Jan
-Alexander Steffens (heftig), Jan Schmidt, Javier Martinez Canillas, Jerome
-Laheurte, Jesper Larsen, Jie Jiang, Jihae Yi, Jimmy Ohn, Jinwoo Ahn, Joakim
-Johansson, Joan Pau Beltran, Jonas Holmberg, Jonathan Matthew, Jonathan Roy,
-Josep Torra, Julien Isorce, Jun Ji, Jürgen Slowack, Justin Kim, Kazunori
-Kobayashi, Kieran Bingham, Kipp Cannon, Koop Mast, Kouhei Sutou, Kseniia, Kyle
-Schwarz, Kyungyong Kim, Linus Svensson, Luis de Bethencourt, Marcin Kolny,
-Marcin Lewandowski, Marianna Smidth Buschle, Mario Sanchez Prada, Mark
-Combellack, Mark Nauwelaerts, Martin Kelly, Matej Knopp, Mathieu Duponchelle,
-Mats Lindestam, Matthew Gruenke, Matthew Waters, Michael Olbrich, Michal Lazo,
-Miguel París Díaz, Mikhail Fludkov, Minjae Kim, Mohan R, Munez, Nicola Murino,
-Nicolas Dufresne, Nicolas Huet, Nikita Bobkov, Nirbheek Chauhan, Olivier
-Crête, Paolo Pettinato, Patricia Muscalu, Paulo Neves, Peng Liu, Peter
-Seiderer, Philippe Normand, Philippe Renon, Philipp Zabel, Pierre Lamot, Piotr
-Drąg, Prashant Gotarne, Raffaele Rossi, Ray Strode, Reynaldo H. Verdejo
-Pinochet, Santiago Carot-Nemesio, Scott D Phillips, Sebastian Dröge, Sebastian
-Rasmussen, Sergei Saveliev, Sergey Borovkov, Sergey Mamonov, Sergio Torres
-Soldado, Seungha Yang, sezero, Song Bing, Sreerenj Balachandran, Stefan Sauer,
-Stephen, Steven Hoving, Stian Selnes, Thiago Santos, Thibault Saunier, Thijs
-Vermeir, Thomas Bluemel, Thomas Jones, Thomas Klausner, Thomas Scheuermann,
-Tim-Philipp Müller, Ting-Wei Lan, Tom Schoonjans, Ursula Maplehurst, Vanessa
-Chipirras Navalon, Víctor Manuel Jáquez Leal, Vincent Penquerc'h, Vineeth TM,
-Vivia Nikolaidou, Vootele Vesterblom, Wang Xin-yu (王昕宇), William Manley,
-Wim Taymans, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens, xlazom00,
-Yann Jouanin, Zaheer Abbas Merali
-
-... and many others who have contributed bug reports, translations, sent
-suggestions or helped testing.
-
-## Bugs fixed in 1.10
-
-More than [750 bugs][bugs-fixed-in-1.10] have been fixed during
-the development of 1.10.
-
-This list does not include issues that have been cherry-picked into the
-stable 1.8 branch and fixed there as well, all fixes that ended up in the
-1.8 branch are also included in 1.10.
-
-This list also does not include issues that have been fixed without a bug
-report in bugzilla, so the actual number of fixes is much higher.
-
-[bugs-fixed-in-1.10]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=164074&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.1&target_milestone=1.8.2&target_milestone=1.8.3&target_milestone=1.8.4&target_milestone=1.9.1&target_milestone=1.9.2&target_milestone=1.9.90&target_milestone=1.10.0
-
-## Stable 1.10 branch
-
-After the 1.10.0 release there will be several 1.10.x bug-fix releases which
-will contain bug fixes which have been deemed suitable for a stable branch,
-but no new features or intrusive changes will be added to a bug-fix release
-usually. The 1.10.x bug-fix releases will be made from the git 1.10 branch,
-which is a stable branch.
-
-### 1.10.0
-
-1.10.0 was released on 1st November 2016.
-
-<a name="1.10.1"></a>
-
-### 1.10.1
-
-The first 1.10 bug-fix release (1.10.1) was released on 17 November 2016.
-This release only contains bugfixes and it should be safe to update from 1.10.x.
-
-#### Major bugfixes in 1.10.1
-
- - Security-relevant bugfix in the vmnc decoder (CVE-2016-9445, CVE-2016-9446)
- - Various bugfixes to playbin3/decodebin3
- - Fix error at the end of playing any WAV file
- - Fix usability of androidmedia plugin if the camera or sensor API is not
-   available, but codecs are
- - Handle redirections on PLAY, and missing control attribute in the RTSP source
- - Various OpenGL related bugfixes
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.10.1]. 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.10.1]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=168172&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.1
-
-<a name="1.10.2"></a>
-
-### 1.10.2
-
-The first 1.10 bug-fix release (1.10.2) was released on 29 November 2016.
-This release only contains bugfixes and it should be safe to update from 1.10.x.
-
-#### Major bugfixes in 1.10.2
-
- - Security-relevant bugfix in the FLI/FLX/FLC decoder (CVE-2016-9634,
-   CVE-2016-9635, CVE-2016-9636)
- - Various fixes for crashes, assertions and other failures on fuzzed input
-   files (among others, thanks to Hanno Böck for testing and reporting)
- - SAVP/SAVPF profile in gst-rtsp-server works for live streams again, and the
-   correct MIKEY policy message is generated
- - Further OpenGL related bugfixes
- - gst-libav was updated to ffmpeg 3.2.1
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.10.2]. 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.10.2]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=168172&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.2
-
-## Known Issues
-
-- iOS builds with iOS 6 SDK and old C++ STL. You need to select iOS 6 instead
-  of 7 or 8 in your projects settings to be able to link applications.
-  [Bug #766366](https://bugzilla.gnome.org/show_bug.cgi?id=766366)
-- Code signing for Apple platforms has some problems currently, requiring
-  manual work to get your application signed. [Bug #771860](https://bugzilla.gnome.org/show_bug.cgi?id=771860)
-- Building applications with Android NDK r13 on Windows does not work. Other
-  platforms and earlier/later versions of the NDK are not affected.
-  [Bug #772842](https://bugzilla.gnome.org/show_bug.cgi?id=772842)
-- vp8enc crashes on 32 bit Windows, but was working fine in 1.6. 64 bit Windows is unaffected.
-  [Bug #763663](https://bugzilla.gnome.org/show_bug.cgi?id=763663)
-
-## Schedule for 1.12
-
-Our next major feature release will be 1.12, and 1.11 will be the unstable
-development version leading up to the stable 1.12 release. The development
-of 1.11/1.12 will happen in the git master branch.
-
-The plan for the 1.12 development cycle is yet to be confirmed, but it is
-expected that feature freeze will be around early/mid-January,
-followed by several 1.11 pre-releases and the new 1.12 stable release
-in March.
-
-1.12 will be backwards-compatible to the stable 1.10, 1.8, 1.6, 1.4, 1.2 and
-1.0 release series.
-
-- - -
-
-*These release notes have been prepared by Olivier Crête, Sebastian Dröge,
-Nicolas Dufresne, Edward Hervey, Víctor Manuel Jáquez Leal, Tim-Philipp
-Müller, Reynaldo H. Verdejo Pinochet, Arun Raghavan, Thibault Saunier,
-Jan Schmidt, Wim Taymans, Matthew Waters*
-
-*License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)*
-
+This is GStreamer 1.11.1.
diff --git a/README b/README
index 48e2c9f..beb6867 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.9.x development series
+GStreamer 1.11.x development series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index 96dd44b..0d47613 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,15 +1,21 @@
 
-Release notes for GStreamer Ugly Plugins 1.10.2
+Release notes for GStreamer Ugly Plugins 1.11.1
 
-The GStreamer team is proud to announce the second bugfix release in the stable
-1.10 release series of your favourite cross-platform multimedia framework!
+The GStreamer team is pleased to announce the first release of the unstable
+1.11 release series. The 1.11 release series is adding new features on top of
+the 1.0, 1.2, 1.4, 1.6, 1.8 and 1.10 series and is part of the API and ABI-stable 1.x release
+series of the GStreamer multimedia framework. The unstable 1.11 release series
+will lead to the stable 1.12 release series in the next weeks. Any newly added
+API can still change until that point.
 
 
-This release only contains bugfixes and it is safe to update from 1.10.x. For a
-full list of bugfixes see Bugzilla.
+Full release notes will be provided at some point during the 1.11 release
+cycle, highlighting all the new features, bugfixes, performance optimizations
+and other important changes.
 
 
-See /releases/1.10/ for the full release notes.
+Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
+
 
 
 "When you have to shoot, shoot.  Don't talk."
@@ -57,8 +63,11 @@
 
 Bugs fixed in this release
      
-      * 774846 : asfdemux: Timeouts with corrupted files
-      * 775070 : asfdemux: ASF object size checks
+      * 751560 : x264enc: Add a youtube preset.
+      * 763297 : x264enc: Add parameter to explicitly load a specific x264 library
+      * 775228 : x264enc: Auto-detect interlace mode from caps
+      * 775411 : x264enc: Correctly pass interlacing/TFF information
+      * 776140 : Remove mad plugin
 
 ==== Download ====
 
@@ -96,6 +105,11 @@
 Contributors to this release
     
       * Edward Hervey
+      * Mark Nauwelaerts
+      * Mathieu Duponchelle
+      * Scott D Phillips
       * Sebastian Dröge
+      * Thibault Saunier
       * Tim-Philipp Müller
+      * Vivia Nikolaidou
  
\ No newline at end of file
diff --git a/common/Makefile.in b/common/Makefile.in
index 9fccbcf..85a6969 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -346,8 +346,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/common/check-exports b/common/check-exports
index ee01ff7..8d617ff 100755
--- a/common/check-exports
+++ b/common/check-exports
@@ -29,7 +29,7 @@
 # BSS symbol, unlike on linux where it's a local absolute symbol.
 nm $NMARGS $lib_path | awk \
 	'{
-		if ($3 ~ /^[_]?(gst_|Gst|GST_).*/)
+		if ($3 ~ /^[_]?(gst_|Gst|GST_|ges_|Ges|GES_).*/)
 		{
 			if ($2 ~ /^[BSDG]$/)
 				print "\t" $3 " DATA"
diff --git a/common/gst.supp b/common/gst.supp
index f85cd69..bdcaf84 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -4025,3 +4025,12 @@
    ...
    fun:g_quark_init
 }
+
+{
+   Leak of debug function list
+   Memcheck:Leak
+   fun:*alloc
+   ...
+   fun:g_slist_prepend
+   fun:gst_debug_add_log_function
+}
\ No newline at end of file
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index d6ade27..e611ecb 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -286,8 +286,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/common/win32.mak b/common/win32.mak
index 6060532..5d818bd 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -64,7 +64,7 @@
 	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 add $(top_srcdir)/win32/common/lib*.def
 	git diff --cached -- $(top_srcdir)/win32/common/
 	echo '^^^--- updated and staged changes above'
 
diff --git a/config.h.in b/config.h.in
index 3a3a995..16317c6 100644
--- a/config.h.in
+++ b/config.h.in
@@ -172,9 +172,6 @@
 /* Define to enable lame mp3 encoder library (used by lame). */
 #undef HAVE_LAME
 
-/* Define to enable mad mp3 decoder (used by mad). */
-#undef HAVE_MAD
-
 /* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H
 
@@ -232,6 +229,9 @@
 /* Define to enable x264 plug-in (used by x264). */
 #undef HAVE_X264
 
+/* Additional x264 libraries */
+#undef HAVE_X264_ADDITIONAL_LIBRARIES
+
 /* the host CPU */
 #undef HOST_CPU
 
diff --git a/configure b/configure
index acefb96..1b87c9a 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.10.2.
+# Generated by GNU Autoconf 2.69 for GStreamer Ugly Plug-ins 1.11.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,12 +591,12 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Ugly Plug-ins'
 PACKAGE_TARNAME='gst-plugins-ugly'
-PACKAGE_VERSION='1.10.2'
-PACKAGE_STRING='GStreamer Ugly Plug-ins 1.10.2'
+PACKAGE_VERSION='1.11.1'
+PACKAGE_STRING='GStreamer Ugly Plug-ins 1.11.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
-ac_unique_file="ext/mad/gstmad.c"
+ac_unique_file="gst/asfdemux/gstasfdemux.c"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
@@ -665,10 +665,6 @@
 USE_MPEG2DEC_TRUE
 MPEG2DEC_LIBS
 MPEG2DEC_CFLAGS
-USE_MAD_FALSE
-USE_MAD_TRUE
-MAD_LIBS
-MAD_CFLAGS
 USE_LAME_FALSE
 USE_LAME_TRUE
 HAVE_LAME
@@ -1063,12 +1059,12 @@
 enable_cdio
 enable_dvdread
 enable_lame
-enable_mad
 enable_mpeg2dec
 enable_mpg123
 enable_sidplay
 enable_twolame
 enable_x264
+with_x264_libraries
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1112,8 +1108,6 @@
 AMRWB_LIBS
 CDIO_CFLAGS
 CDIO_LIBS
-MAD_CFLAGS
-MAD_LIBS
 MPEG2DEC_CFLAGS
 MPEG2DEC_LIBS
 MPG123_CFLAGS
@@ -1672,7 +1666,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.10.2 to adapt to many kinds of systems.
+\`configure' configures GStreamer Ugly Plug-ins 1.11.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1745,7 +1739,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Ugly Plug-ins 1.10.2:";;
+     short | recursive ) echo "Configuration of GStreamer Ugly Plug-ins 1.11.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1801,7 +1795,6 @@
   --disable-cdio               disable cdio library: cdio
   --disable-dvdread            disable dvdread library: dvdreadsrc
   --disable-lame               disable lame mp3 encoder library: lame
-  --disable-mad                disable mad mp3 decoder: mad
   --disable-mpeg2dec           disable mpeg2dec: mpeg2dec
   --disable-mpg123             disable mpg123 audio decoder: mpg123
   --disable-sidplay            disable libsidplay: sid
@@ -1848,6 +1841,9 @@
                           specify default visualizer
   --with-a52dec-prefix=PFX
                           prefix where a52dec is installed (optional)
+  --with-x264-libraries=PATHS
+                          Colon separated list of additional x264 library
+                          paths, e.g. for 10-bit version
 
 Some influential environment variables:
   CC          C compiler command
@@ -1905,8 +1901,6 @@
   AMRWB_LIBS  linker flags for AMRWB, overriding pkg-config
   CDIO_CFLAGS C compiler flags for CDIO, overriding pkg-config
   CDIO_LIBS   linker flags for CDIO, overriding pkg-config
-  MAD_CFLAGS  C compiler flags for MAD, overriding pkg-config
-  MAD_LIBS    linker flags for MAD, overriding pkg-config
   MPEG2DEC_CFLAGS
               C compiler flags for MPEG2DEC, overriding pkg-config
   MPEG2DEC_LIBS
@@ -1987,7 +1981,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Ugly Plug-ins configure 1.10.2
+GStreamer Ugly Plug-ins configure 1.11.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2893,7 +2887,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.10.2, which was
+It was created by GStreamer Ugly Plug-ins $as_me 1.11.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3872,7 +3866,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-ugly'
- VERSION='1.10.2'
+ VERSION='1.11.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4083,9 +4077,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.10.2 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.10.2 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.10.2 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.11.1 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.11.1 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.11.1 | cut -d'.' -f3)
 
 
 
@@ -4096,7 +4090,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.10.2 | cut -d'.' -f4)
+  NANO=$(echo 1.11.1 | 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 +8924,10 @@
 done
 
 
-  GST_CURRENT=1002
+  GST_CURRENT=1101
   GST_REVISION=0
-  GST_AGE=1002
-  GST_LIBVERSION=1002:0:1002
+  GST_AGE=1101
+  GST_LIBVERSION=1101:0:1101
 
 
 
@@ -13561,8 +13555,8 @@
 
 
 
-GST_REQ=1.10.0
-GSTPB_REQ=1.10.0
+GST_REQ=1.11.1
+GSTPB_REQ=1.11.1
 
 
 
@@ -26750,241 +26744,6 @@
 
 
 echo
-{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: mad mp3 decoder ***" >&5
-$as_echo "$as_me: *** checking feature: mad mp3 decoder ***" >&6;}
-if test "xmad" != "x"
-then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: mad ***" >&5
-$as_echo "$as_me: *** for plug-ins: mad ***" >&6;}
-fi
-NOUSE=
-if test "x$USE_MAD" = "xno"; then
-  NOUSE="yes"
-fi
-# Check whether --enable-mad was given.
-if test "${enable_mad+set}" = set; then :
-  enableval=$enable_mad;  case "${enableval}" in
-      yes) USE_MAD=yes;;
-      no) USE_MAD=no;;
-      *) as_fn_error $? "bad value ${enableval} for --enable-mad" "$LINENO" 5 ;;
-    esac
-else
-   USE_MAD=yes
-fi
-
-if test "x$NOUSE" = "xyes"; then
-  USE_MAD="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mad pre-configured not to be built" >&5
-$as_echo "$as_me: WARNING: *** mad pre-configured not to be built" >&2;}
-fi
-NOUSE=
-
-if echo " $GST_PLUGINS_NONPORTED " | tr , ' ' | grep -i " MAD " > /dev/null; then
-  USE_MAD="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mad not ported" >&5
-$as_echo "$as_me: WARNING: *** mad not ported" >&2;}
-fi
-
-
-if test x$USE_MAD = xyes; then
-
-  gst_check_save_LIBS=$LIBS
-  gst_check_save_LDFLAGS=$LDFLAGS
-  gst_check_save_CFLAGS=$CFLAGS
-  gst_check_save_CPPFLAGS=$CPPFLAGS
-  gst_check_save_CXXFLAGS=$CXXFLAGS
-
-  HAVE_MAD=no
-
-
-
-  which="mad >= 0.15"
-    required="no"
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAD" >&5
-$as_echo_n "checking for MAD... " >&6; }
-
-if test -n "$PKG_CONFIG"; then
-    if test -n "$MAD_CFLAGS"; then
-        pkg_cv_MAD_CFLAGS="$MAD_CFLAGS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_MAD_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-if test -n "$PKG_CONFIG"; then
-    if test -n "$MAD_LIBS"; then
-        pkg_cv_MAD_LIBS="$MAD_LIBS"
-    else
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "$which") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_MAD_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
-    fi
-else
-	pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        MAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"`
-        else
-	        MAD_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$MAD_PKG_ERRORS" >&5
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-      HAVE_MAD="no"
-      if test "x$required" = "xyes"; then
-        as_fn_error $? "$MAD_PKG_ERRORS" "$LINENO" 5
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: $MAD_PKG_ERRORS" >&5
-$as_echo "$as_me: $MAD_PKG_ERRORS" >&6;}
-      fi
-
-elif test $pkg_failed = untried; then
-
-      HAVE_MAD="no"
-      if test "x$required" = "xyes"; then
-        as_fn_error $? "$MAD_PKG_ERRORS" "$LINENO" 5
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: $MAD_PKG_ERRORS" >&5
-$as_echo "$as_me: $MAD_PKG_ERRORS" >&6;}
-      fi
-
-else
-	MAD_CFLAGS=$pkg_cv_MAD_CFLAGS
-	MAD_LIBS=$pkg_cv_MAD_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-      HAVE_MAD="yes"
-
-fi
-
-
-  MAD_LIBS="$MAD_LIBS"
-  if test "x$HAVE_MAD" = "xno"; then
-        ac_fn_c_check_header_mongrel "$LINENO" "mad.h" "ac_cv_header_mad_h" "$ac_includes_default"
-if test "x$ac_cv_header_mad_h" = xyes; then :
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mad_decoder_finish in -lmad" >&5
-$as_echo_n "checking for mad_decoder_finish in -lmad... " >&6; }
-if ${ac_cv_lib_mad_mad_decoder_finish+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmad  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char mad_decoder_finish ();
-int
-main ()
-{
-return mad_decoder_finish ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_mad_mad_decoder_finish=yes
-else
-  ac_cv_lib_mad_mad_decoder_finish=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mad_mad_decoder_finish" >&5
-$as_echo "$ac_cv_lib_mad_mad_decoder_finish" >&6; }
-if test "x$ac_cv_lib_mad_mad_decoder_finish" = xyes; then :
-  HAVE_MAD="yes" MAD_LIBS="-lmad"
-fi
-
-
-fi
-
-
-  fi
-
-
-  LIBS=$gst_check_save_LIBS
-  LDFLAGS=$gst_check_save_LDFLAGS
-  CFLAGS=$gst_check_save_CFLAGS
-  CPPFLAGS=$gst_check_save_CPPFLAGS
-  CXXFLAGS=$gst_check_save_CXXFLAGS
-
-    if test x$HAVE_MAD = xno; then
-    USE_MAD=no
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: mad" >&5
-$as_echo "$as_me: *** These plugins will be built: mad" >&6;}
-  fi
-fi
-if test x$USE_MAD = xyes; then
-  :
-  if test "xmad" != "x"; then
-    GST_PLUGINS_YES="\tmad\n$GST_PLUGINS_YES"
-  fi
-
-$as_echo "#define HAVE_MAD /**/" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: mad" >&5
-$as_echo "$as_me: *** These plugins will not be built: mad" >&6;}
-  if test "xmad" != "x"; then
-    GST_PLUGINS_NO="\tmad\n$GST_PLUGINS_NO"
-  fi
-  :
-fi
- if test x$USE_MAD = xyes; then
-  USE_MAD_TRUE=
-  USE_MAD_FALSE='#'
-else
-  USE_MAD_TRUE='#'
-  USE_MAD_FALSE=
-fi
-
-
-
-
-echo
 { $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: mpeg2dec ***" >&5
 $as_echo "$as_me: *** checking feature: mpeg2dec ***" >&6;}
 if test "xmpeg2dec" != "x"
@@ -27795,6 +27554,22 @@
 
 
 
+# Check whether --with-x264-libraries was given.
+if test "${with_x264_libraries+set}" = set; then :
+  withval=$with_x264_libraries;
+      if test "x$withval" != "x"
+      then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_X264_ADDITIONAL_LIBRARIES "$withval"
+_ACEOF
+
+      fi
+
+fi
+
+
+
   LIBS=$gst_check_save_LIBS
   LDFLAGS=$gst_check_save_LDFLAGS
   CFLAGS=$gst_check_save_CFLAGS
@@ -27886,14 +27661,6 @@
 fi
 
  if false; then
-  USE_MAD_TRUE=
-  USE_MAD_FALSE='#'
-else
-  USE_MAD_TRUE='#'
-  USE_MAD_FALSE=
-fi
-
- if false; then
   USE_MPEG2DEC_TRUE=
   USE_MPEG2DEC_FALSE='#'
 else
@@ -27971,48 +27738,9 @@
 
 
 
-ac_config_files="$ac_config_files Makefile common/Makefile common/m4/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst/Makefile gst/asfdemux/Makefile gst/dvdlpcmdec/Makefile gst/dvdsub/Makefile gst/realmedia/Makefile gst/xingmux/Makefile ext/Makefile ext/a52dec/Makefile ext/amrnb/Makefile ext/amrwbdec/Makefile ext/cdio/Makefile ext/dvdread/Makefile ext/lame/Makefile ext/mad/Makefile ext/mpeg2dec/Makefile ext/mpg123/Makefile ext/sidplay/Makefile ext/twolame/Makefile ext/x264/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities tests/Makefile tests/check/Makefile tests/files/Makefile m4/Makefile po/Makefile.in pkgconfig/Makefile pkgconfig/gstreamer-plugins-ugly-uninstalled.pc gst-plugins-ugly.spec"
+ac_config_files="$ac_config_files Makefile common/Makefile common/m4/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst/Makefile gst/asfdemux/Makefile gst/dvdlpcmdec/Makefile gst/dvdsub/Makefile gst/realmedia/Makefile gst/xingmux/Makefile ext/Makefile ext/a52dec/Makefile ext/amrnb/Makefile ext/amrwbdec/Makefile ext/cdio/Makefile ext/dvdread/Makefile ext/lame/Makefile ext/mpeg2dec/Makefile ext/mpg123/Makefile ext/sidplay/Makefile ext/twolame/Makefile ext/x264/Makefile docs/Makefile docs/plugins/Makefile docs/version.entities tests/Makefile tests/check/Makefile tests/files/Makefile m4/Makefile po/Makefile.in pkgconfig/Makefile pkgconfig/gstreamer-plugins-ugly-uninstalled.pc"
 
 
-sed \
-    -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"\n\n/' \
-    -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
-    -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
-    -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
-    -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
-    -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
-    -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
-    -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
-    -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
-    -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
-    -e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \
-    -e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \
-    -e 's/.* HAVE_LIBXML2$/#define HAVE_LIBXML2 1/' \
-    -e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \
-    -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
-    -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
-    -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
-    -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
-    -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
-    -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
-    -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
-    -e 's/.* LIBDIR$/#ifdef _DEBUG\n#  define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n#  define LIBDIR PREFIX "\\\\lib"\n#endif/' \
-    -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
-    -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
-    -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
-    -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
-    -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
-    -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
-    -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
-    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
-    -e 's/.* USE_BINARY_REGISTRY$/#define USE_BINARY_REGISTRY/' \
-    -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
-    -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
-    -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
-    -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
-    -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
-    config.h.in >win32/common/config.h-new
-
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -28328,10 +28056,6 @@
   as_fn_error $? "conditional \"USE_LAME\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${USE_MAD_TRUE}" && test -z "${USE_MAD_FALSE}"; then
-  as_fn_error $? "conditional \"USE_MAD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_MPEG2DEC_TRUE}" && test -z "${USE_MPEG2DEC_FALSE}"; then
   as_fn_error $? "conditional \"USE_MPEG2DEC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -28376,10 +28100,6 @@
   as_fn_error $? "conditional \"USE_LAME\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${USE_MAD_TRUE}" && test -z "${USE_MAD_FALSE}"; then
-  as_fn_error $? "conditional \"USE_MAD\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_MPEG2DEC_TRUE}" && test -z "${USE_MPEG2DEC_FALSE}"; then
   as_fn_error $? "conditional \"USE_MPEG2DEC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -28797,7 +28517,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.10.2, which was
+This file was extended by GStreamer Ugly Plug-ins $as_me 1.11.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -28863,7 +28583,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.10.2
+GStreamer Ugly Plug-ins config.status 1.11.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -29423,7 +29143,6 @@
     "ext/cdio/Makefile") CONFIG_FILES="$CONFIG_FILES ext/cdio/Makefile" ;;
     "ext/dvdread/Makefile") CONFIG_FILES="$CONFIG_FILES ext/dvdread/Makefile" ;;
     "ext/lame/Makefile") CONFIG_FILES="$CONFIG_FILES ext/lame/Makefile" ;;
-    "ext/mad/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mad/Makefile" ;;
     "ext/mpeg2dec/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mpeg2dec/Makefile" ;;
     "ext/mpg123/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mpg123/Makefile" ;;
     "ext/sidplay/Makefile") CONFIG_FILES="$CONFIG_FILES ext/sidplay/Makefile" ;;
@@ -29439,7 +29158,6 @@
     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
     "pkgconfig/Makefile") CONFIG_FILES="$CONFIG_FILES pkgconfig/Makefile" ;;
     "pkgconfig/gstreamer-plugins-ugly-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-plugins-ugly-uninstalled.pc" ;;
-    "gst-plugins-ugly.spec") CONFIG_FILES="$CONFIG_FILES gst-plugins-ugly.spec" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
diff --git a/configure.ac b/configure.ac
index e198167..17a3c72 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.10.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-ugly])
+AC_INIT([GStreamer Ugly Plug-ins],[1.11.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-ugly])
 
 AG_GST_INIT
 
@@ -19,7 +19,7 @@
 AS_NANO(GST_GIT="no", GST_GIT="yes")
 
 dnl can autoconf find the source ?
-AC_CONFIG_SRCDIR([ext/mad/gstmad.c])
+AC_CONFIG_SRCDIR([gst/asfdemux/gstasfdemux.c])
 
 dnl define the output header for config
 AC_CONFIG_HEADERS(config.h)
@@ -42,11 +42,11 @@
 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
   [GStreamer API Version])
 
-AS_LIBTOOL(GST, 1002, 0, 1002)
+AS_LIBTOOL(GST, 1101, 0, 1101)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.10.0
-GSTPB_REQ=1.10.0
+GST_REQ=1.11.1
+GSTPB_REQ=1.11.1
 
 dnl *** autotools stuff ****
 
@@ -319,23 +319,6 @@
   ])
 ])
 
-dnl *** mad ***
-translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
-AG_GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
-
-  dnl check with pkg-config first
-  AG_GST_PKG_CHECK_MODULES(MAD, mad >= 0.15)
-  MAD_LIBS="$MAD_LIBS"
-  if test "x$HAVE_MAD" = "xno"; then
-    dnl fall back to oldskool detection
-    AC_CHECK_HEADER(mad.h, [
-      AC_CHECK_LIB(mad, mad_decoder_finish,
-        HAVE_MAD="yes" MAD_LIBS="-lmad")
-    ])
-  fi
-])
-AC_SUBST(MAD_LIBS)
-
 dnl *** mpeg2dec ***
 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
 AG_GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
@@ -371,6 +354,17 @@
 translit(dnm, m, l) AM_CONDITIONAL(USE_X264, true)
 AG_GST_CHECK_FEATURE(X264, [x264 plug-in], x264, [
   AG_GST_PKG_CHECK_MODULES(X264, x264 >= 0.120)
+
+  dnl Paths to additional x264 library variants, e.g. 10/12 bit
+  AC_ARG_WITH([x264-libraries],
+    AS_HELP_STRING([--with-x264-libraries=PATHS], [Colon separated list of additional x264 library paths, e.g. for 10-bit version]),
+    [
+      if test "x$withval" != "x"
+      then
+        AC_DEFINE_UNQUOTED(HAVE_X264_ADDITIONAL_LIBRARIES, "$withval", [Additional x264 libraries])
+      fi
+    ], []
+  )
 ])
 
 else
@@ -384,7 +378,6 @@
 AM_CONDITIONAL(USE_CDIO, false)
 AM_CONDITIONAL(USE_DVDREAD, false)
 AM_CONDITIONAL(USE_LAME, false)
-AM_CONDITIONAL(USE_MAD, false)
 AM_CONDITIONAL(USE_MPEG2DEC, false)
 AM_CONDITIONAL(USE_MPG123, false)
 AM_CONDITIONAL(USE_SIDPLAY, false)
@@ -469,7 +462,6 @@
 ext/cdio/Makefile
 ext/dvdread/Makefile
 ext/lame/Makefile
-ext/mad/Makefile
 ext/mpeg2dec/Makefile
 ext/mpg123/Makefile
 ext/sidplay/Makefile
@@ -485,50 +477,8 @@
 po/Makefile.in
 pkgconfig/Makefile
 pkgconfig/gstreamer-plugins-ugly-uninstalled.pc
-gst-plugins-ugly.spec
 )
 
-dnl Create the config.h file for Visual Studio builds
-dnl Beware of spaces and /'s in some of the shell variable contents.
-sed \
-    -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"\n\n/' \
-    -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
-    -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
-    -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
-    -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
-    -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
-    -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
-    -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
-    -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
-    -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
-    -e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \
-    -e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \
-    -e 's/.* HAVE_LIBXML2$/#define HAVE_LIBXML2 1/' \
-    -e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \
-    -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
-    -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
-    -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
-    -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
-    -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
-    -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
-    -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
-    -e 's/.* LIBDIR$/#ifdef _DEBUG\n#  define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n#  define LIBDIR PREFIX "\\\\lib"\n#endif/' \
-    -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
-    -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
-    -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
-    -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
-    -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
-    -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
-    -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
-    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
-    -e 's/.* USE_BINARY_REGISTRY$/#define USE_BINARY_REGISTRY/' \
-    -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
-    -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
-    -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
-    -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
-    -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
-    config.h.in >win32/common/config.h-new
-
 AC_OUTPUT
 
 AG_GST_OUTPUT_PLUGINS
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 071e613..923d328 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -345,8 +345,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index cfe47e1..7679fd2 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -60,7 +60,6 @@
 	$(top_srcdir)/ext/amrwbdec/amrwbdec.h \
 	$(top_srcdir)/ext/cdio/gstcdiocddasrc.h \
 	$(top_srcdir)/ext/lame/gstlamemp3enc.h \
-	$(top_srcdir)/ext/mad/gstmad.h \
 	$(top_srcdir)/ext/sidplay/gstsiddec.h \
 	$(top_srcdir)/ext/twolame/gsttwolamemp2enc.h \
 	$(top_srcdir)/ext/x264/gstx264enc.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 388bef0..1136ab3 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -305,8 +305,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -500,7 +498,6 @@
 	$(top_srcdir)/ext/amrwbdec/amrwbdec.h \
 	$(top_srcdir)/ext/cdio/gstcdiocddasrc.h \
 	$(top_srcdir)/ext/lame/gstlamemp3enc.h \
-	$(top_srcdir)/ext/mad/gstmad.h \
 	$(top_srcdir)/ext/sidplay/gstsiddec.h \
 	$(top_srcdir)/ext/twolame/gsttwolamemp2enc.h \
 	$(top_srcdir)/ext/x264/gstx264enc.h \
diff --git a/docs/plugins/gst-plugins-ugly-plugins-docs.sgml b/docs/plugins/gst-plugins-ugly-plugins-docs.sgml
index 6217c5a..a0b4525 100644
--- a/docs/plugins/gst-plugins-ugly-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-ugly-plugins-docs.sgml
@@ -23,7 +23,6 @@
     <xi:include href="xml/element-amrwbdec.xml" />
     <xi:include href="xml/element-cdiocddasrc.xml" />
     <xi:include href="xml/element-lamemp3enc.xml" />
-    <xi:include href="xml/element-mad.xml" />
     <xi:include href="xml/element-mpg123audiodec.xml" />
     <xi:include href="xml/element-rademux.xml" />
     <xi:include href="xml/element-rmdemux.xml" />
@@ -47,7 +46,6 @@
     <xi:include href="xml/plugin-dvdread.xml" />
     <xi:include href="xml/plugin-dvdsub.xml" />
     <xi:include href="xml/plugin-lame.xml" />
-    <xi:include href="xml/plugin-mad.xml" />
     <xi:include href="xml/plugin-mpeg2dec.xml" />
     <xi:include href="xml/plugin-mpg123.xml" />
     <xi:include href="xml/plugin-realmedia.xml" />
diff --git a/docs/plugins/gst-plugins-ugly-plugins-sections.txt b/docs/plugins/gst-plugins-ugly-plugins-sections.txt
index fcd8d20..ec5ffe8 100644
--- a/docs/plugins/gst-plugins-ugly-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-ugly-plugins-sections.txt
@@ -93,20 +93,6 @@
 </SECTION>
 
 <SECTION>
-<FILE>element-mad</FILE>
-<TITLE>mad</TITLE>
-GstMad
-<SUBSECTION Standard>
-GstMadClass
-GST_MAD
-GST_MAD_CLASS
-GST_IS_MAD
-GST_IS_MAD_CLASS
-GST_TYPE_MAD
-gst_mad_get_type
-</SECTION>
-
-<SECTION>
 <FILE>element-mpg123audiodec</FILE>
 <TITLE>mpg123audiodec</TITLE>
 GstMpg123AudioDec
diff --git a/docs/plugins/gst-plugins-ugly-plugins.hierarchy b/docs/plugins/gst-plugins-ugly-plugins.hierarchy
index 99bab3c..d92464c 100644
--- a/docs/plugins/gst-plugins-ugly-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-ugly-plugins.hierarchy
@@ -49,6 +49,7 @@
       GstPlugin
       GstPluginFeature
         GstDeviceProviderFactory
+        GstDynamicTypeFactory
         GstElementFactory
         GstTracerFactory
         GstTypeFindFactory
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 641269f..e467898 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -42,9 +42,6 @@
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-lamemp3enc.html">lamemp3enc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-ugly-plugins-mad.html">mad</a></span><span class="refpurpose"></span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-mpg123audiodec.html">mpg123audiodec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 8cd9404..d2bc3bc 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -51,9 +51,6 @@
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-plugin-lame.html">lame</a></span><span class="refpurpose"> — Encode MP3s with LAME</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-ugly-plugins-plugin-mad.html">mad</a></span><span class="refpurpose"> — mp3 decoding based on the mad library</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-plugin-mpeg2dec.html">mpeg2dec</a></span><span class="refpurpose"> — LibMpeg2 decoder</span>
 </dt>
 <dt>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-ugly-plugins-1.0.devhelp2
index c1bad1c..91a18cb 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-1.0.devhelp2
@@ -8,7 +8,6 @@
       <sub name="amrwbdec" link="gst-plugins-ugly-plugins-amrwbdec.html"/>
       <sub name="cdiocddasrc" link="gst-plugins-ugly-plugins-cdiocddasrc.html"/>
       <sub name="lamemp3enc" link="gst-plugins-ugly-plugins-lamemp3enc.html"/>
-      <sub name="mad" link="gst-plugins-ugly-plugins-mad.html"/>
       <sub name="mpg123audiodec" link="gst-plugins-ugly-plugins-mpg123audiodec.html"/>
       <sub name="rademux" link="gst-plugins-ugly-plugins-rademux.html"/>
       <sub name="rmdemux" link="gst-plugins-ugly-plugins-rmdemux.html"/>
@@ -30,7 +29,6 @@
       <sub name="dvdread" link="gst-plugins-ugly-plugins-plugin-dvdread.html"/>
       <sub name="dvdsub" link="gst-plugins-ugly-plugins-plugin-dvdsub.html"/>
       <sub name="lame" link="gst-plugins-ugly-plugins-plugin-lame.html"/>
-      <sub name="mad" link="gst-plugins-ugly-plugins-plugin-mad.html"/>
       <sub name="mpeg2dec" link="gst-plugins-ugly-plugins-plugin-mpeg2dec.html"/>
       <sub name="mpg123" link="gst-plugins-ugly-plugins-plugin-mpg123.html"/>
       <sub name="realmedia" link="gst-plugins-ugly-plugins-plugin-realmedia.html"/>
@@ -58,9 +56,6 @@
     <keyword type="property" name="The “mono” property" link="gst-plugins-ugly-plugins-lamemp3enc.html#GstLameMP3Enc--mono"/>
     <keyword type="property" name="The “quality” property" link="gst-plugins-ugly-plugins-lamemp3enc.html#GstLameMP3Enc--quality"/>
     <keyword type="property" name="The “target” property" link="gst-plugins-ugly-plugins-lamemp3enc.html#GstLameMP3Enc--target"/>
-    <keyword type="struct" name="struct GstMad" link="gst-plugins-ugly-plugins-mad.html#GstMad-struct"/>
-    <keyword type="property" name="The “half” property" link="gst-plugins-ugly-plugins-mad.html#GstMad--half"/>
-    <keyword type="property" name="The “ignore-crc” property" link="gst-plugins-ugly-plugins-mad.html#GstMad--ignore-crc"/>
     <keyword type="struct" name="struct GstMpg123AudioDec" link="gst-plugins-ugly-plugins-mpg123audiodec.html#GstMpg123AudioDec-struct"/>
     <keyword type="struct" name="struct GstRealAudioDemux" link="gst-plugins-ugly-plugins-rademux.html#GstRealAudioDemux-struct"/>
     <keyword type="struct" name="struct GstRMDemux" link="gst-plugins-ugly-plugins-rmdemux.html#GstRMDemux-struct"/>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html b/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html
index 338c12c..c2dcd71 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-lamemp3enc.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Ugly Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-ugly Elements">
 <link rel="prev" href="gst-plugins-ugly-plugins-cdiocddasrc.html" title="cdiocddasrc">
-<link rel="next" href="gst-plugins-ugly-plugins-mad.html" title="mad">
+<link rel="next" href="gst-plugins-ugly-plugins-mpg123audiodec.html" title="mpg123audiodec">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-ugly-plugins-cdiocddasrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-ugly-plugins-mad.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-ugly-plugins-mpg123audiodec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-ugly-plugins-lamemp3enc"></a><div class="titlepage"></div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-mad.html b/docs/plugins/html/gst-plugins-ugly-plugins-mad.html
deleted file mode 100644
index b8cb0a0..0000000
--- a/docs/plugins/html/gst-plugins-ugly-plugins-mad.html
+++ /dev/null
@@ -1,223 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>mad: GStreamer Ugly Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GStreamer Ugly Plugins 1.0 Plugins Reference Manual">
-<link rel="up" href="ch01.html" title="gst-plugins-ugly Elements">
-<link rel="prev" href="gst-plugins-ugly-plugins-lamemp3enc.html" title="lamemp3enc">
-<link rel="next" href="gst-plugins-ugly-plugins-mpg123audiodec.html" title="mpg123audiodec">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-ugly-plugins-mad.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-ugly-plugins-mad.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-ugly-plugins-mad.properties" class="shortcut">Properties</a></span>
-</td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-ugly-plugins-lamemp3enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-ugly-plugins-mpg123audiodec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gst-plugins-ugly-plugins-mad"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="gst-plugins-ugly-plugins-mad.top_of_page"></a>mad</span></h2>
-<p>mad</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="gst-plugins-ugly-plugins-mad.properties"></a><h2>Properties</h2>
-<div class="informaltable"><table class="informaltable" border="0">
-<colgroup>
-<col width="150px" class="properties_type">
-<col width="300px" class="properties_name">
-<col width="200px" class="properties_flags">
-</colgroup>
-<tbody>
-<tr>
-<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
-<td class="property_name"><a class="link" href="gst-plugins-ugly-plugins-mad.html#GstMad--half" title="The “half” property">half</a></td>
-<td class="property_flags">Read / Write</td>
-</tr>
-<tr>
-<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
-<td class="property_name"><a class="link" href="gst-plugins-ugly-plugins-mad.html#GstMad--ignore-crc" title="The “ignore-crc” property">ignore-crc</a></td>
-<td class="property_flags">Read / Write</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<a name="GstMad"></a><div class="refsect1">
-<a name="gst-plugins-ugly-plugins-mad.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="name">
-<col class="description">
-</colgroup>
-<tbody><tr>
-<td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-ugly-plugins-mad.html#GstMad-struct" title="struct GstMad">GstMad</a></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-ugly-plugins-mad.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
-    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
-            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
-                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct">GstAudioDecoder</a>
-                    <span class="lineart">╰──</span> GstMad
-</pre>
-</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.6.1"></a><h3>Element Information</h3>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term">plugin</span></p></td>
-<td>
-            <a class="link" href="gst-plugins-ugly-plugins-plugin-mad.html#plugin-mad">mad</a>
-          </td>
-</tr>
-<tr>
-<td><p><span class="term">author</span></p></td>
-<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
-</tr>
-<tr>
-<td><p><span class="term">class</span></p></td>
-<td>Codec/Decoder/Audio</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.8.7.6.2"></a><h3>Element Pads</h3>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term">name</span></p></td>
-<td>sink</td>
-</tr>
-<tr>
-<td><p><span class="term">direction</span></p></td>
-<td>sink</td>
-</tr>
-<tr>
-<td><p><span class="term">presence</span></p></td>
-<td>always</td>
-</tr>
-<tr>
-<td><p><span class="term">details</span></p></td>
-<td>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</td>
-</tr>
-</tbody>
-</table></div>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term">name</span></p></td>
-<td>src</td>
-</tr>
-<tr>
-<td><p><span class="term">direction</span></p></td>
-<td>source</td>
-</tr>
-<tr>
-<td><p><span class="term">presence</span></p></td>
-<td>always</td>
-</tr>
-<tr>
-<td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string)S32LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-ugly-plugins-mad.functions_details"></a><h2>Functions</h2>
-<p></p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-ugly-plugins-mad.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
-<a name="GstMad-struct"></a><h3>struct GstMad</h3>
-<pre class="programlisting">struct GstMad;</pre>
-</div>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-ugly-plugins-mad.property-details"></a><h2>Property Details</h2>
-<div class="refsect2">
-<a name="GstMad--half"></a><h3>The <code class="literal">“half”</code> property</h3>
-<pre class="programlisting">  “half”                     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Generate PCM at 1/2 sample rate.</p>
-<p>Flags: Read / Write</p>
-<p>Default value: FALSE</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstMad--ignore-crc"></a><h3>The <code class="literal">“ignore-crc”</code> property</h3>
-<pre class="programlisting">  “ignore-crc”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Ignore CRC errors.</p>
-<p>Flags: Read / Write</p>
-<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>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html b/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html
index de77d3a..06170ae 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-mpg123audiodec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Ugly Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-ugly Elements">
-<link rel="prev" href="gst-plugins-ugly-plugins-mad.html" title="mad">
+<link rel="prev" href="gst-plugins-ugly-plugins-lamemp3enc.html" title="lamemp3enc">
 <link rel="next" href="gst-plugins-ugly-plugins-rademux.html" title="rademux">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-ugly-plugins-mad.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-ugly-plugins-lamemp3enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-ugly-plugins-rademux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -59,7 +59,7 @@
 <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>
+<a name="id-1.2.8.6.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -75,7 +75,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.9.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.8.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.9.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.8.6.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-plugin-a52dec.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-a52dec.html
index e0ec3db..a624488 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.10.2</td>
+<td>1.11.1</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 966ff91..3ccd00f 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.10.2</td>
+<td>1.11.1</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 ecd2d39..3b8cb8f 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.10.2</td>
+<td>1.11.1</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 f080d46..8f5d514 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.10.2</td>
+<td>1.11.1</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 5b82dd1..7f1a9c1 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.10.2</td>
+<td>1.11.1</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 cabc13b..d17b783 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.10.2</td>
+<td>1.11.1</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 77fcba4..6d48da3 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.10.2</td>
+<td>1.11.1</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 8e9296f..601c7c9 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.10.2</td>
+<td>1.11.1</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 bb05958..3833d87 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-lame.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-lame.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Ugly Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-ugly Plugins">
 <link rel="prev" href="gst-plugins-ugly-plugins-plugin-dvdsub.html" title="dvdsub">
-<link rel="next" href="gst-plugins-ugly-plugins-plugin-mad.html" title="mad">
+<link rel="next" href="gst-plugins-ugly-plugins-plugin-mpeg2dec.html" title="mpeg2dec">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-ugly-plugins-plugin-dvdsub.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-ugly-plugins-plugin-mad.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-ugly-plugins-plugin-mpeg2dec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-ugly-plugins-plugin-lame"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</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
deleted file mode 100644
index 7319046..0000000
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mad.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>mad: GStreamer Ugly Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GStreamer Ugly Plugins 1.0 Plugins Reference Manual">
-<link rel="up" href="ch02.html" title="gst-plugins-ugly Plugins">
-<link rel="prev" href="gst-plugins-ugly-plugins-plugin-lame.html" title="lame">
-<link rel="next" href="gst-plugins-ugly-plugins-plugin-mpeg2dec.html" title="mpeg2dec">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts"></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-ugly-plugins-plugin-lame.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-ugly-plugins-plugin-mpeg2dec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="gst-plugins-ugly-plugins-plugin-mad"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle">mad</span></h2>
-<p>mad — <a name="plugin-mad"></a>mp3 decoding based on the mad library</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="id-1.3.11.3"></a><h2>Plugin Information</h2>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term">filename</span></p></td>
-<td>libgstmad.so</td>
-</tr>
-<tr>
-<td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
-</tr>
-<tr>
-<td><p><span class="term">run-time license</span></p></td>
-<td>GPL</td>
-</tr>
-<tr>
-<td><p><span class="term">package</span></p></td>
-<td>GStreamer Ugly Plug-ins source release</td>
-</tr>
-<tr>
-<td><p><span class="term">origin</span></p></td>
-<td>Unknown package origin</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="id-1.3.11.4"></a><h2>Elements</h2>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody><tr>
-<td><p><span class="term"><a class="link" href="gst-plugins-ugly-plugins-mad.html" title="mad">mad</a></span></p></td>
-<td>Uses mad code to decode mp3 streams</td>
-</tr></tbody>
-</table></div>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
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 1b21492..e9d9d89 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpeg2dec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpeg2dec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Ugly Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-ugly Plugins">
-<link rel="prev" href="gst-plugins-ugly-plugins-plugin-mad.html" title="mad">
+<link rel="prev" href="gst-plugins-ugly-plugins-plugin-lame.html" title="lame">
 <link rel="next" href="gst-plugins-ugly-plugins-plugin-mpg123.html" title="mpg123">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-ugly-plugins-plugin-mad.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-ugly-plugins-plugin-lame.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-ugly-plugins-plugin-mpg123.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.12.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.11.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.12.4"></a><h2>Elements</h2>
+<a name="id-1.3.11.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 ebd0374..f99f093 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpg123.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-mpg123.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.13.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.12.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.13.4"></a><h2>Elements</h2>
+<a name="id-1.3.12.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 e827114..f9794e1 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-realmedia.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-realmedia.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.14.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.13.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.14.4"></a><h2>Elements</h2>
+<a name="id-1.3.13.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 5c6ad0d..41dc10b 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-siddec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-siddec.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.15.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.14.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.15.4"></a><h2>Elements</h2>
+<a name="id-1.3.14.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html
index aa13b08..079c289 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-twolame.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.16.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.15.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.16.4"></a><h2>Elements</h2>
+<a name="id-1.3.15.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html
index b2b6748..7a3f710 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-plugin-x264.html
@@ -28,7 +28,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.17.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.16.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.11.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -59,7 +59,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.17.4"></a><h2>Elements</h2>
+<a name="id-1.3.16.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-rademux.html b/docs/plugins/html/gst-plugins-ugly-plugins-rademux.html
index f345911..81d0e38 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-rademux.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-rademux.html
@@ -58,7 +58,7 @@
 <a name="gst-plugins-ugly-plugins-rademux.description"></a><h2>Description</h2>
 <p>Demuxes/parses a RealAudio (.ra) file or stream into compressed audio.</p>
 <div class="refsect2">
-<a name="id-1.2.10.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.9.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -87,7 +87,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.10.6.4.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">
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.10.6.4.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">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-rdtmanager.html b/docs/plugins/html/gst-plugins-ugly-plugins-rdtmanager.html
index ce5567e..cfc8ee8 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-rdtmanager.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-rdtmanager.html
@@ -120,7 +120,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.12.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.11.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,7 +146,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.12.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.11.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-rmdemux.html b/docs/plugins/html/gst-plugins-ugly-plugins-rmdemux.html
index 4e00940..a83dca1 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-rmdemux.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-rmdemux.html
@@ -59,7 +59,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.11.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.10.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.11.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.10.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-rtspreal.html b/docs/plugins/html/gst-plugins-ugly-plugins-rtspreal.html
index 9a89059..be181d6 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-rtspreal.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-rtspreal.html
@@ -67,7 +67,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.13.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.12.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.13.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.12.7.3.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-rtspwms.html b/docs/plugins/html/gst-plugins-ugly-plugins-rtspwms.html
index 672400d..6f8dd06 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-rtspwms.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-rtspwms.html
@@ -67,7 +67,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.14.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.13.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.14.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.13.7.3.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html b/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html
index a8b9b0f..cf2ec46 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-siddec.html
@@ -122,7 +122,7 @@
 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>
+<a name="id-1.2.14.7.5"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -138,7 +138,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.15.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.14.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -164,7 +164,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.14.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 e5c9303..e03757b 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-twolame.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-twolame.html
@@ -155,7 +155,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.16.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.15.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,7 +181,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.16.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.15.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html b/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html
index ba053dc..5f3249f 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-x264enc.html
@@ -314,7 +314,7 @@
 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>
+<a name="id-1.2.16.8.7"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -383,7 +383,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.17.8.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.16.8.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -409,7 +409,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.17.8.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.16.8.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -430,7 +430,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ I420, YV12, Y42B, Y444, NV12, I420_10LE, I422_10LE, Y444_10LE }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</td>
+<td>video/x-raw, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ], format=(string){ Y444, Y42B, I420, YV12, NV12 }</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-ugly-plugins-xingmux.html b/docs/plugins/html/gst-plugins-ugly-plugins-xingmux.html
index a85ad3f..8daf522 100644
--- a/docs/plugins/html/gst-plugins-ugly-plugins-xingmux.html
+++ b/docs/plugins/html/gst-plugins-ugly-plugins-xingmux.html
@@ -61,7 +61,7 @@
 seeking on VBR MP3 files.</p>
 <p>This element will remove any existing Xing, LAME or VBRI headers from the beginning of the file.</p>
 <div class="refsect2">
-<a name="id-1.2.18.6.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.17.6.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -81,7 +81,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.18.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.17.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -107,7 +107,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.18.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.17.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 2263a9a..41315ea 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.10.2)
+      for GStreamer Ugly Plugins 1.0 (1.11.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly/html/</a>.
     </p></div>
@@ -44,9 +44,6 @@
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-lamemp3enc.html">lamemp3enc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-ugly-plugins-mad.html">mad</a></span><span class="refpurpose"></span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-mpg123audiodec.html">mpg123audiodec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -107,9 +104,6 @@
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-plugin-lame.html">lame</a></span><span class="refpurpose"> — Encode MP3s with LAME</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-ugly-plugins-plugin-mad.html">mad</a></span><span class="refpurpose"> — mp3 decoding based on the mad library</span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-ugly-plugins-plugin-mpeg2dec.html">mpeg2dec</a></span><span class="refpurpose"> — LibMpeg2 decoder</span>
 </dt>
 <dt>
diff --git a/docs/plugins/inspect/plugin-a52dec.xml b/docs/plugins/inspect/plugin-a52dec.xml
index da894ec..cd9aa8b 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.10.2</version>
+  <version>1.11.1</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 3666a1b..f8894e0 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.10.2</version>
+  <version>1.11.1</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 d054306..8cc1114 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.10.2</version>
+  <version>1.11.1</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 87fe8c8..b7f6720 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.10.2</version>
+  <version>1.11.1</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 00e25e8..ed69e7a 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.10.2</version>
+  <version>1.11.1</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 75822d1..19c8c0c 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.10.2</version>
+  <version>1.11.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dvdread.xml b/docs/plugins/inspect/plugin-dvdread.xml
index 62f25c4..e627b2d 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.10.2</version>
+  <version>1.11.1</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 652705b..b96dc60 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.10.2</version>
+  <version>1.11.1</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 7919f3b..5127881 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.10.2</version>
+  <version>1.11.1</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 4972d83..410eb7d 100644
--- a/docs/plugins/inspect/plugin-mad.xml
+++ b/docs/plugins/inspect/plugin-mad.xml
@@ -3,10 +3,10 @@
   <description>mp3 decoding based on the mad library</description>
   <filename>../../ext/mad/.libs/libgstmad.so</filename>
   <basename>libgstmad.so</basename>
-  <version>1.10.2</version>
+  <version>1.11.0.1</version>
   <license>GPL</license>
   <source>gst-plugins-ugly</source>
-  <package>GStreamer Ugly Plug-ins source release</package>
+  <package>GStreamer Ugly Plug-ins git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-mpeg2dec.xml b/docs/plugins/inspect/plugin-mpeg2dec.xml
index f04231b..0ac352e 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.10.2</version>
+  <version>1.11.1</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 d77b275..80edc1b 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.10.2</version>
+  <version>1.11.1</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 5ad3a09..545c894 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.10.2</version>
+  <version>1.11.1</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 8f8edc2..f5194a4 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.10.2</version>
+  <version>1.11.1</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 4029cf2..3e29aa8 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.10.2</version>
+  <version>1.11.1</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 f5a1262..0b708f1 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.10.2</version>
+  <version>1.11.1</version>
   <license>GPL</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>video/x-raw, format=(string){ I420, YV12, Y42B, Y444, NV12, I420_10LE, I422_10LE, Y444_10LE }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
+          <details>video/x-raw, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ], format=(string){ Y444, Y42B, I420, YV12, NV12 }</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-xingmux.xml b/docs/plugins/inspect/plugin-xingmux.xml
index b07e109..004b690 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.10.2</version>
+  <version>1.11.1</version>
   <license>LGPL</license>
   <source>gst-plugins-ugly</source>
   <package>GStreamer Ugly Plug-ins source release</package>
diff --git a/ext/Makefile.am b/ext/Makefile.am
index c600554..3f94406 100644
--- a/ext/Makefile.am
+++ b/ext/Makefile.am
@@ -34,12 +34,6 @@
 LAME_DIR =
 endif
 
-if USE_MAD
-MAD_DIR = mad
-else
-MAD_DIR =
-endif
-
 if USE_MPEG2DEC
 MPEG2DEC_DIR = mpeg2dec
 else
@@ -77,7 +71,6 @@
 	$(CDIO_DIR) \
 	$(DVDREAD_DIR) \
 	$(LAME_DIR) \
-	$(MAD_DIR) \
 	$(MPEG2DEC_DIR) \
 	$(MPG123_DIR) \
 	$(SIDPLAY_DIR) \
@@ -91,7 +84,6 @@
 	cdio \
 	dvdread \
 	lame \
-	mad \
 	mpeg2dec \
 	mpg123 \
 	sidplay \
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 02ea527..8fea57a 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -351,8 +351,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -493,8 +491,6 @@
 @USE_DVDREAD_TRUE@DVDREAD_DIR = dvdread
 @USE_LAME_FALSE@LAME_DIR = 
 @USE_LAME_TRUE@LAME_DIR = lame
-@USE_MAD_FALSE@MAD_DIR = 
-@USE_MAD_TRUE@MAD_DIR = mad
 @USE_MPEG2DEC_FALSE@MPEG2DEC_DIR = 
 @USE_MPEG2DEC_TRUE@MPEG2DEC_DIR = mpeg2dec
 @USE_MPG123_FALSE@MPG123_DIR = 
@@ -512,7 +508,6 @@
 	$(CDIO_DIR) \
 	$(DVDREAD_DIR) \
 	$(LAME_DIR) \
-	$(MAD_DIR) \
 	$(MPEG2DEC_DIR) \
 	$(MPG123_DIR) \
 	$(SIDPLAY_DIR) \
@@ -526,7 +521,6 @@
 	cdio \
 	dvdread \
 	lame \
-	mad \
 	mpeg2dec \
 	mpg123 \
 	sidplay \
diff --git a/ext/a52dec/Makefile.in b/ext/a52dec/Makefile.in
index 1c7413f..317fc7a 100644
--- a/ext/a52dec/Makefile.in
+++ b/ext/a52dec/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/amrnb/Makefile.in b/ext/amrnb/Makefile.in
index 9498632..869c22d 100644
--- a/ext/amrnb/Makefile.in
+++ b/ext/amrnb/Makefile.in
@@ -376,8 +376,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/amrwbdec/Makefile.in b/ext/amrwbdec/Makefile.in
index 213a868..470abb8 100644
--- a/ext/amrwbdec/Makefile.in
+++ b/ext/amrwbdec/Makefile.in
@@ -374,8 +374,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/cdio/Makefile.in b/ext/cdio/Makefile.in
index 2fdcac6..ad6df29 100644
--- a/ext/cdio/Makefile.in
+++ b/ext/cdio/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/dvdread/Makefile.in b/ext/dvdread/Makefile.in
index 55240b1..9fdd8af 100644
--- a/ext/dvdread/Makefile.in
+++ b/ext/dvdread/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/dvdread/dvdreadsrc.c b/ext/dvdread/dvdreadsrc.c
index 5df2637..234f251 100644
--- a/ext/dvdread/dvdreadsrc.c
+++ b/ext/dvdread/dvdreadsrc.c
@@ -1363,7 +1363,7 @@
   }
 
   /* Create the DVD event and put the structure into it. */
-  return gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, structure);
+  return gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM_STICKY, structure);
 }
 
 static gint64
diff --git a/ext/lame/Makefile.in b/ext/lame/Makefile.in
index 4b61892..f78e155 100644
--- a/ext/lame/Makefile.in
+++ b/ext/lame/Makefile.in
@@ -374,8 +374,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/mad/Makefile.am b/ext/mad/Makefile.am
deleted file mode 100644
index d6b4407..0000000
--- a/ext/mad/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-plugin_LTLIBRARIES = libgstmad.la 
-
-libgstmad_la_SOURCES = gstmad.c
-
-libgstmad_la_CFLAGS = \
-        $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
-	$(MAD_CFLAGS)
-libgstmad_la_LIBADD = \
-        $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
-	$(GST_BASE_LIBS) $(GST_LIBS) $(MAD_LIBS)
-libgstmad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmad_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-
-noinst_HEADERS = gstmad.h
diff --git a/ext/mad/Makefile.in b/ext/mad/Makefile.in
deleted file mode 100644
index a4f1091..0000000
--- a/ext/mad/Makefile.in
+++ /dev/null
@@ -1,848 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
-  if test -z '$(MAKELEVEL)'; then \
-    false; \
-  elif test -n '$(MAKE_HOST)'; then \
-    true; \
-  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-    true; \
-  else \
-    false; \
-  fi; \
-}
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = ext/mad
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-libtool.m4 \
-	$(top_srcdir)/common/m4/as-version.m4 \
-	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
-	$(top_srcdir)/common/m4/gst-arch.m4 \
-	$(top_srcdir)/common/m4/gst-args.m4 \
-	$(top_srcdir)/common/m4/gst-check.m4 \
-	$(top_srcdir)/common/m4/gst-default.m4 \
-	$(top_srcdir)/common/m4/gst-dowhile.m4 \
-	$(top_srcdir)/common/m4/gst-error.m4 \
-	$(top_srcdir)/common/m4/gst-feature.m4 \
-	$(top_srcdir)/common/m4/gst-function.m4 \
-	$(top_srcdir)/common/m4/gst-gettext.m4 \
-	$(top_srcdir)/common/m4/gst-glib2.m4 \
-	$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/a52.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/gst-sid.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
-	$(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(plugindir)"
-LTLIBRARIES = $(plugin_LTLIBRARIES)
-am__DEPENDENCIES_1 =
-libgstmad_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_libgstmad_la_OBJECTS = libgstmad_la-gstmad.lo
-libgstmad_la_OBJECTS = $(am_libgstmad_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-libgstmad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(libgstmad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
-	$(CCLD) $(libgstmad_la_CFLAGS) $(CFLAGS) \
-	$(libgstmad_la_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libgstmad_la_SOURCES)
-DIST_SOURCES = $(libgstmad_la_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-HEADERS = $(noinst_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-A52DEC_CFLAGS = @A52DEC_CFLAGS@
-A52DEC_LIBS = @A52DEC_LIBS@
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMRNB_CFLAGS = @AMRNB_CFLAGS@
-AMRNB_LIBS = @AMRNB_LIBS@
-AMRWB_CFLAGS = @AMRWB_CFLAGS@
-AMRWB_LIBS = @AMRWB_LIBS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CDIO_CFLAGS = @CDIO_CFLAGS@
-CDIO_LIBS = @CDIO_LIBS@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
-DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
-DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
-DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
-DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-DVDREAD_LIBS = @DVDREAD_LIBS@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-GCOV = @GCOV@
-GCOV_CFLAGS = @GCOV_CFLAGS@
-GCOV_LIBS = @GCOV_LIBS@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LDFLAGS = @GIO_LDFLAGS@
-GIO_LIBS = @GIO_LIBS@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_MKENUMS = @GLIB_MKENUMS@
-GLIB_PREFIX = @GLIB_PREFIX@
-GLIB_REQ = @GLIB_REQ@
-GMODULE_NO_EXPORT_CFLAGS = @GMODULE_NO_EXPORT_CFLAGS@
-GMODULE_NO_EXPORT_LIBS = @GMODULE_NO_EXPORT_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@
-GSTPB_PREFIX = @GSTPB_PREFIX@
-GST_AGE = @GST_AGE@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_API_VERSION = @GST_API_VERSION@
-GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
-GST_BASE_LIBS = @GST_BASE_LIBS@
-GST_CFLAGS = @GST_CFLAGS@
-GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
-GST_CHECK_LIBS = @GST_CHECK_LIBS@
-GST_CURRENT = @GST_CURRENT@
-GST_CXXFLAGS = @GST_CXXFLAGS@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBS = @GST_LIBS@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
-GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
-GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
-GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@
-GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
-GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@
-GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
-GST_PREFIX = @GST_PREFIX@
-GST_REVISION = @GST_REVISION@
-GST_TOOLS_DIR = @GST_TOOLS_DIR@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
-GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
-GTKDOC_MKPDF = @GTKDOC_MKPDF@
-GTKDOC_REBASE = @GTKDOC_REBASE@
-HAVE_CXX = @HAVE_CXX@
-HAVE_DVDREAD = @HAVE_DVDREAD@
-HAVE_LAME = @HAVE_LAME@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-LAME_CFLAGS = @LAME_CFLAGS@
-LAME_LIBS = @LAME_LIBS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBM = @LIBM@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOCALEDIR = @LOCALEDIR@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MPEG2DEC_CFLAGS = @MPEG2DEC_CFLAGS@
-MPEG2DEC_LIBS = @MPEG2DEC_LIBS@
-MPG123_CFLAGS = @MPG123_CFLAGS@
-MPG123_LIBS = @MPG123_LIBS@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-ORCC = @ORCC@
-ORCC_FLAGS = @ORCC_FLAGS@
-ORC_CFLAGS = @ORC_CFLAGS@
-ORC_LIBS = @ORC_LIBS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
-PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
-PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
-PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
-PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SIDPLAY_CFLAGS = @SIDPLAY_CFLAGS@
-SIDPLAY_LIBS = @SIDPLAY_LIBS@
-STRIP = @STRIP@
-TWOLAME_CFLAGS = @TWOLAME_CFLAGS@
-TWOLAME_LIBS = @TWOLAME_LIBS@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-X264_CFLAGS = @X264_CFLAGS@
-X264_LIBS = @X264_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-plugin_LTLIBRARIES = libgstmad.la 
-libgstmad_la_SOURCES = gstmad.c
-libgstmad_la_CFLAGS = \
-        $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
-	$(MAD_CFLAGS)
-
-libgstmad_la_LIBADD = \
-        $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) \
-	$(GST_BASE_LIBS) $(GST_LIBS) $(MAD_LIBS)
-
-libgstmad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstmad_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
-noinst_HEADERS = gstmad.h
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mad/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu ext/mad/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \
-	}
-
-uninstall-pluginLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \
-	done
-
-clean-pluginLTLIBRARIES:
-	-test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES)
-	@list='$(plugin_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-
-libgstmad.la: $(libgstmad_la_OBJECTS) $(libgstmad_la_DEPENDENCIES) $(EXTRA_libgstmad_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(libgstmad_la_LINK) -rpath $(plugindir) $(libgstmad_la_OBJECTS) $(libgstmad_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmad_la-gstmad.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
-@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-libgstmad_la-gstmad.lo: gstmad.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmad_la_CFLAGS) $(CFLAGS) -MT libgstmad_la-gstmad.lo -MD -MP -MF $(DEPDIR)/libgstmad_la-gstmad.Tpo -c -o libgstmad_la-gstmad.lo `test -f 'gstmad.c' || echo '$(srcdir)/'`gstmad.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstmad_la-gstmad.Tpo $(DEPDIR)/libgstmad_la-gstmad.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstmad.c' object='libgstmad_la-gstmad.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmad_la_CFLAGS) $(CFLAGS) -c -o libgstmad_la-gstmad.lo `test -f 'gstmad.c' || echo '$(srcdir)/'`gstmad.c
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
-	for dir in "$(DESTDIR)$(plugindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-pluginLTLIBRARIES
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pluginLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pluginLTLIBRARIES cscopelist-am ctags \
-	ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-pluginLTLIBRARIES
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/ext/mad/gstmad.c b/ext/mad/gstmad.c
deleted file mode 100644
index 55899a5..0000000
--- a/ext/mad/gstmad.c
+++ /dev/null
@@ -1,565 +0,0 @@
-/* GStreamer
- * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-/**
- * SECTION:element-mad
- * @see_also: lame
- *
- * 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.
- *
- * The mpg123audiodec and avdec_mp3 decoder elements are LGPL licensed and
- * also tend to use less CPU for decoding.
- *
- * 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.
- *
- * <refsect2>
- * <title>Example pipelines</title>
- * |[
- * gst-launch-1.0 filesrc location=music.mp3 ! mpegaudioparse ! mad ! audioconvert ! audioresample ! autoaudiosink
- * ]| Decode and play an mp3 file
- * </refsect2>
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include "gstmad.h"
-#include <gst/audio/audio.h>
-
-enum
-{
-  ARG_0,
-  ARG_HALF,
-  ARG_IGNORE_CRC
-};
-
-GST_DEBUG_CATEGORY_STATIC (mad_debug);
-#define GST_CAT_DEFAULT mad_debug
-
-static GstStaticPadTemplate mad_src_template_factory =
-GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "format = (string) " GST_AUDIO_NE (S32) ", "
-        "layout = (string) interleaved, "
-        "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
-        "channels = (int) [ 1, 2 ]")
-    );
-
-/* FIXME: make three caps, for mpegversion 1, 2 and 2.5 */
-static GstStaticPadTemplate mad_sink_template_factory =
-GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/mpeg, "
-        "mpegversion = (int) 1, "
-        "layer = (int) [ 1, 3 ], "
-        "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
-        "channels = (int) [ 1, 2 ]")
-    );
-
-
-static gboolean gst_mad_start (GstAudioDecoder * dec);
-static gboolean gst_mad_stop (GstAudioDecoder * dec);
-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);
-
-static void gst_mad_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec);
-static void gst_mad_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec);
-
-#define parent_class gst_mad_parent_class
-G_DEFINE_TYPE (GstMad, gst_mad, GST_TYPE_AUDIO_DECODER);
-
-static void
-gst_mad_class_init (GstMadClass * klass)
-{
-  GObjectClass *gobject_class = (GObjectClass *) klass;
-  GstElementClass *element_class = (GstElementClass *) klass;
-  GstAudioDecoderClass *base_class = (GstAudioDecoderClass *) klass;
-
-  gobject_class->set_property = gst_mad_set_property;
-  gobject_class->get_property = gst_mad_get_property;
-
-  /* init properties */
-  /* currently, string representations are used, we might want to change that */
-  /* FIXME: descriptions need to be more technical,
-   * default values and ranges need to be selected right */
-  g_object_class_install_property (gobject_class, ARG_HALF,
-      g_param_spec_boolean ("half", "Half", "Generate PCM at 1/2 sample rate",
-          FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, ARG_IGNORE_CRC,
-      g_param_spec_boolean ("ignore-crc", "Ignore CRC", "Ignore CRC errors",
-          TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  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",
-      "Uses mad code to decode mp3 streams",
-      "Wim Taymans <wim.taymans@gmail.com>");
-
-  base_class->start = GST_DEBUG_FUNCPTR (gst_mad_start);
-  base_class->stop = GST_DEBUG_FUNCPTR (gst_mad_stop);
-  base_class->parse = GST_DEBUG_FUNCPTR (gst_mad_parse);
-  base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_mad_handle_frame);
-  base_class->flush = GST_DEBUG_FUNCPTR (gst_mad_flush);
-}
-
-static void
-gst_mad_init (GstMad * mad)
-{
-  GstAudioDecoder *dec;
-
-  dec = GST_AUDIO_DECODER (mad);
-  gst_audio_decoder_set_tolerance (dec, 20 * GST_MSECOND);
-  gst_audio_decoder_set_use_default_pad_acceptcaps (dec, TRUE);
-  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
-
-  mad->half = FALSE;
-  mad->ignore_crc = TRUE;
-}
-
-static gboolean
-gst_mad_start (GstAudioDecoder * dec)
-{
-  GstMad *mad = GST_MAD (dec);
-  guint options = 0;
-
-  GST_DEBUG_OBJECT (dec, "start");
-  mad_stream_init (&mad->stream);
-  mad_frame_init (&mad->frame);
-  mad_synth_init (&mad->synth);
-  mad->rate = 0;
-  mad->channels = 0;
-  mad->caps_set = FALSE;
-  mad->frame.header.samplerate = 0;
-  if (mad->ignore_crc)
-    options |= MAD_OPTION_IGNORECRC;
-  if (mad->half)
-    options |= MAD_OPTION_HALFSAMPLERATE;
-  mad_stream_options (&mad->stream, options);
-  mad->header.mode = -1;
-  mad->header.emphasis = -1;
-  mad->eos = FALSE;
-
-  /* call upon legacy upstream byte support (e.g. seeking) */
-  gst_audio_decoder_set_estimate_rate (dec, TRUE);
-
-  return TRUE;
-}
-
-static gboolean
-gst_mad_stop (GstAudioDecoder * dec)
-{
-  GstMad *mad = GST_MAD (dec);
-
-  GST_DEBUG_OBJECT (dec, "stop");
-  mad_synth_finish (&mad->synth);
-  mad_frame_finish (&mad->frame);
-  mad_stream_finish (&mad->stream);
-
-  return TRUE;
-}
-
-static inline gint32
-scale (mad_fixed_t sample)
-{
-#if MAD_F_FRACBITS < 28
-  /* round */
-  sample += (1L << (28 - MAD_F_FRACBITS - 1));
-#endif
-
-  /* clip */
-  if (sample >= MAD_F_ONE)
-    sample = MAD_F_ONE - 1;
-  else if (sample < -MAD_F_ONE)
-    sample = -MAD_F_ONE;
-
-#if MAD_F_FRACBITS < 28
-  /* quantize */
-  sample >>= (28 - MAD_F_FRACBITS);
-#endif
-
-  /* convert from 29 bits to 32 bits */
-  return (gint32) (sample << 3);
-}
-
-/* internal function to check if the header has changed and thus the
- * caps need to be reset.  Only call during normal mode, not resyncing */
-static void
-gst_mad_check_caps_reset (GstMad * mad)
-{
-  guint nchannels;
-  guint rate;
-
-  nchannels = MAD_NCHANNELS (&mad->frame.header);
-
-#if MAD_VERSION_MINOR <= 12
-  rate = mad->header.sfreq;
-#else
-  rate = mad->frame.header.samplerate;
-#endif
-
-  /* rate and channels are not supposed to change in a continuous stream,
-   * so check this first before doing anything */
-
-  /* only set caps if they weren't already set for this continuous stream */
-  if (!gst_pad_has_current_caps (GST_AUDIO_DECODER_SRC_PAD (mad))
-      || mad->channels != nchannels || mad->rate != rate) {
-    GstAudioInfo info;
-    static const GstAudioChannelPosition chan_pos[2][2] = {
-      {GST_AUDIO_CHANNEL_POSITION_MONO},
-      {GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT,
-          GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}
-    };
-
-    if (mad->caps_set) {
-      GST_DEBUG_OBJECT (mad, "Header changed from %d Hz/%d ch to %d Hz/%d ch, "
-          "failed sync after seek ?", mad->rate, mad->channels, rate,
-          nchannels);
-      /* we're conservative on stream changes. However, our *initial* caps
-       * might have been wrong as well - mad ain't perfect in syncing. So,
-       * we count caps changes and change if we pass a limit treshold (3). */
-      if (nchannels != mad->pending_channels || rate != mad->pending_rate) {
-        mad->times_pending = 0;
-        mad->pending_channels = nchannels;
-        mad->pending_rate = rate;
-      }
-      if (++mad->times_pending < 3)
-        return;
-    }
-
-    if (mad->stream.options & MAD_OPTION_HALFSAMPLERATE)
-      rate >>= 1;
-
-    /* we set the caps even when the pad is not connected so they
-     * can be gotten for streaminfo */
-    gst_audio_info_init (&info);
-    gst_audio_info_set_format (&info,
-        GST_AUDIO_FORMAT_S32, rate, nchannels, chan_pos[nchannels - 1]);
-
-    gst_audio_decoder_set_output_format (GST_AUDIO_DECODER (mad), &info);
-
-    mad->caps_set = TRUE;
-    mad->channels = nchannels;
-    mad->rate = rate;
-  }
-}
-
-static GstFlowReturn
-gst_mad_parse (GstAudioDecoder * dec, GstAdapter * adapter,
-    gint * _offset, gint * len)
-{
-  GstMad *mad;
-  GstFlowReturn ret = GST_FLOW_EOS;
-  gint av, size, offset;
-  const guint8 *data;
-  gboolean eos, sync;
-  guint8 *guard = NULL;
-
-  mad = GST_MAD (dec);
-
-  av = gst_adapter_available (adapter);
-  data = gst_adapter_map (adapter, av);
-
-  gst_audio_decoder_get_parse_state (dec, &sync, &eos);
-  GST_LOG_OBJECT (mad, "parse state sync %d, eos %d", sync, eos);
-
-  if (eos) {
-    /* This is one streaming hack right there.
-     * mad will not decode the last frame if it is not followed by
-     * a number of 0 bytes, due to some buffer overflow, which can
-     * not be fixed for reasons I did not inquire into, see
-     * http://www.mars.org/mailman/public/mad-dev/2001-May/000262.html
-     */
-    guard = g_malloc (av + MAD_BUFFER_GUARD);
-    /* let's be nice and not mess with baseclass state and keep hacks local */
-    memcpy (guard, data, av);
-    memset (guard + av, 0, MAD_BUFFER_GUARD);
-    GST_DEBUG_OBJECT (mad, "Added %u zero guard bytes in the adapter; "
-        "using fallback buffer of size %u",
-        MAD_BUFFER_GUARD, av + MAD_BUFFER_GUARD);
-    data = guard;
-    av = av + MAD_BUFFER_GUARD;
-  }
-
-  /* we basically let mad library do parsing,
-   * and translate that back to baseclass.
-   * if a frame is found (and also decoded), subsequent handle_frame
-   * only needs to synthesize it */
-
-  offset = 0;
-  size = 0;
-
-resume:
-  if (G_UNLIKELY (offset + MAD_BUFFER_GUARD > av))
-    goto exit;
-
-  GST_LOG_OBJECT (mad, "setup mad stream at offset %d (of av %d)", offset, av);
-  mad_stream_buffer (&mad->stream, data + offset, av - offset);
-  /* convey sync idea to mad */
-  mad->stream.sync = sync;
-  /* if we get back here, lost sync anyway */
-  sync = FALSE;
-
-  while (TRUE) {
-    GST_LOG_OBJECT (mad, "decoding the header now");
-    if (mad_header_decode (&mad->frame.header, &mad->stream) == -1) {
-      /* HACK it seems mad reports wrong error when it is trying to determine
-       * free bitrate and scanning for next header */
-      if (mad->stream.error == MAD_ERROR_LOSTSYNC) {
-        const guint8 *ptr = mad->stream.this_frame;
-        guint32 header;
-
-        if (ptr >= data && ptr < data + av) {
-          header = GST_READ_UINT32_BE (ptr);
-          /* looks like possible freeform header with not much data */
-          if (((header & 0xFFE00000) == 0xFFE00000) &&
-              (((header >> 12) & 0xF) == 0x0) && (av < 4096)) {
-            GST_DEBUG_OBJECT (mad, "overriding freeform LOST_SYNC to BUFLEN");
-            mad->stream.error = MAD_ERROR_BUFLEN;
-          }
-        }
-      }
-      if (mad->stream.error == MAD_ERROR_BUFLEN) {
-        GST_LOG_OBJECT (mad, "not enough data, getting more");
-        offset = mad->stream.next_frame - data;
-        break;
-      } else if (mad->stream.error == MAD_ERROR_LOSTSYNC) {
-        GST_LOG_OBJECT (mad, "lost sync");
-        continue;
-      } else {
-        /* probably some bogus header, basically also lost sync */
-        GST_DEBUG_OBJECT (mad, "mad_header_decode had an error: %s",
-            mad_stream_errorstr (&mad->stream));
-        continue;
-      }
-    }
-
-    /* could have a frame now, subsequent will confirm */
-    offset = mad->stream.this_frame - data;
-    size = mad->stream.next_frame - mad->stream.this_frame;
-    g_assert (size);
-
-    GST_LOG_OBJECT (mad, "parsing and decoding one frame now "
-        "(offset %d, size %d)", offset, size);
-    if (mad_frame_decode (&mad->frame, &mad->stream) == -1) {
-      GST_LOG_OBJECT (mad, "got error %d", mad->stream.error);
-
-      /* not enough data, need to wait for next buffer? */
-      if (mad->stream.error == MAD_ERROR_BUFLEN) {
-        /* not really expect this error at this stage anymore
-         * assume bogus frame and bad sync and move along a bit */
-        GST_WARNING_OBJECT (mad, "not enough data (unexpected), moving along");
-        offset++;
-        goto resume;
-      } else if (mad->stream.error == MAD_ERROR_BADDATAPTR) {
-        GST_DEBUG_OBJECT (mad, "bad data ptr, skipping presumed frame");
-        /* flush past presumed frame */
-        offset += size;
-        goto resume;
-      } else {
-        GST_WARNING_OBJECT (mad, "mad_frame_decode had an error: %s",
-            mad_stream_errorstr (&mad->stream));
-        if (!MAD_RECOVERABLE (mad->stream.error)) {
-          /* well, all may be well enough bytes later on ... */
-          GST_AUDIO_DECODER_ERROR (mad, 1, STREAM, DECODE, (NULL),
-              ("mad error: %s", mad_stream_errorstr (&mad->stream)), ret);
-        }
-        /* move along and try again */
-        offset++;
-        goto resume;
-      }
-      g_assert_not_reached ();
-    }
-
-    /* so decoded ok, got a frame now */
-    ret = GST_FLOW_OK;
-    break;
-  }
-
-exit:
-
-  gst_adapter_unmap (adapter);
-
-  *_offset = offset;
-  *len = size;
-
-  /* ensure that if we added some dummy guard bytes above, we don't claim
-     to have used them as they're unknown to the caller. */
-  if (eos) {
-    g_assert (av >= MAD_BUFFER_GUARD);
-    av -= MAD_BUFFER_GUARD;
-    if (*_offset > av)
-      *_offset = av;
-    if (*len > av)
-      *len = av;
-    g_assert (guard);
-    g_free (guard);
-  }
-
-  return ret;
-}
-
-static GstFlowReturn
-gst_mad_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer)
-{
-  GstMad *mad;
-  GstFlowReturn ret = GST_FLOW_EOS;
-  GstBuffer *outbuffer;
-  guint nsamples;
-  GstMapInfo outmap;
-  gint32 *outdata;
-  mad_fixed_t const *left_ch, *right_ch;
-
-  mad = GST_MAD (dec);
-
-  /* no fancy draining */
-  if (G_UNLIKELY (!buffer))
-    return GST_FLOW_OK;
-
-  /* _parse prepared a frame */
-  nsamples = MAD_NSBSAMPLES (&mad->frame.header) *
-      (mad->stream.options & MAD_OPTION_HALFSAMPLERATE ? 16 : 32);
-  GST_LOG_OBJECT (mad, "mad frame with %d samples", nsamples);
-
-  /* arrange for initial caps before pushing data,
-   * and update later on if needed */
-  gst_mad_check_caps_reset (mad);
-
-  mad_synth_frame (&mad->synth, &mad->frame);
-  left_ch = mad->synth.pcm.samples[0];
-  right_ch = mad->synth.pcm.samples[1];
-
-  outbuffer = gst_buffer_new_and_alloc (nsamples * mad->channels * 4);
-
-  gst_buffer_map (outbuffer, &outmap, GST_MAP_WRITE);
-  outdata = (gint32 *) outmap.data;
-
-  /* output sample(s) in 16-bit signed native-endian PCM */
-  if (mad->channels == 1) {
-    gint count = nsamples;
-
-    while (count--) {
-      *outdata++ = scale (*left_ch++) & 0xffffffff;
-    }
-  } else {
-    gint count = nsamples;
-
-    while (count--) {
-      *outdata++ = scale (*left_ch++) & 0xffffffff;
-      *outdata++ = scale (*right_ch++) & 0xffffffff;
-    }
-  }
-
-  gst_buffer_unmap (outbuffer, &outmap);
-
-  ret = gst_audio_decoder_finish_frame (dec, outbuffer, 1);
-
-  return ret;
-}
-
-static void
-gst_mad_flush (GstAudioDecoder * dec, gboolean hard)
-{
-  GstMad *mad;
-
-  mad = GST_MAD (dec);
-  if (hard) {
-    mad_frame_mute (&mad->frame);
-    mad_synth_mute (&mad->synth);
-  }
-}
-
-static void
-gst_mad_set_property (GObject * object, guint prop_id,
-    const GValue * value, GParamSpec * pspec)
-{
-  GstMad *mad;
-
-  mad = GST_MAD (object);
-
-  switch (prop_id) {
-    case ARG_HALF:
-      mad->half = g_value_get_boolean (value);
-      break;
-    case ARG_IGNORE_CRC:
-      mad->ignore_crc = g_value_get_boolean (value);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-static void
-gst_mad_get_property (GObject * object, guint prop_id,
-    GValue * value, GParamSpec * pspec)
-{
-  GstMad *mad;
-
-  mad = GST_MAD (object);
-
-  switch (prop_id) {
-    case ARG_HALF:
-      g_value_set_boolean (value, mad->half);
-      break;
-    case ARG_IGNORE_CRC:
-      g_value_set_boolean (value, mad->ignore_crc);
-      break;
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-  }
-}
-
-/* plugin initialisation */
-
-static gboolean
-plugin_init (GstPlugin * plugin)
-{
-  GST_DEBUG_CATEGORY_INIT (mad_debug, "mad", 0, "mad mp3 decoding");
-
-  /* FIXME 0.11: rename to something better like madmp3dec or madmpegaudiodec
-   * or so? */
-  return gst_element_register (plugin, "mad", GST_RANK_SECONDARY,
-      gst_mad_get_type ());
-}
-
-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
-    GST_VERSION_MINOR,
-    mad,
-    "mp3 decoding based on the mad library",
-    plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
diff --git a/ext/mad/gstmad.h b/ext/mad/gstmad.h
deleted file mode 100644
index f3011c1..0000000
--- a/ext/mad/gstmad.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef __GST_MAD_H__
-#define __GST_MAD_H__
-
-#include <gst/gst.h>
-#include <gst/tag/tag.h>
-#include <gst/audio/gstaudiodecoder.h>
-
-#include <mad.h>
-
-G_BEGIN_DECLS
-
-#define GST_TYPE_MAD \
-  (gst_mad_get_type())
-#define GST_MAD(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MAD,GstMad))
-#define GST_MAD_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MAD,GstMadClass))
-#define GST_IS_MAD(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MAD))
-#define GST_IS_MAD_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MAD))
-
-
-typedef struct _GstMad GstMad;
-typedef struct _GstMadClass GstMadClass;
-
-struct _GstMad
-{
-  GstAudioDecoder element;
-
-  /* state */
-  struct mad_stream stream;
-  struct mad_frame frame;
-  struct mad_synth synth;
-
-  /* info */
-  struct mad_header header;
-
-  /* negotiated format */
-  gint rate, pending_rate;
-  gint channels, pending_channels;
-  gint times_pending;
-  gboolean caps_set;            /* used to keep track of whether to change/update caps */
-
-  gboolean eos;
-
-  /* properties */
-  gboolean half;
-  gboolean ignore_crc;
-};
-
-struct _GstMadClass
-{
-  GstAudioDecoderClass parent_class;
-};
-
-GType                   gst_mad_get_type (void);
-gboolean                gst_mad_register (GstPlugin * plugin);
-
-G_END_DECLS
-
-#endif /* __GST_MAD_H__ */
diff --git a/ext/mpeg2dec/Makefile.in b/ext/mpeg2dec/Makefile.in
index 9c4b63c..0ec5f2c 100644
--- a/ext/mpeg2dec/Makefile.in
+++ b/ext/mpeg2dec/Makefile.in
@@ -372,8 +372,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/mpg123/Makefile.in b/ext/mpg123/Makefile.in
index b9e346d..85cec8e 100644
--- a/ext/mpg123/Makefile.in
+++ b/ext/mpg123/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/sidplay/Makefile.in b/ext/sidplay/Makefile.in
index 064a5dd..f92c5b6 100644
--- a/ext/sidplay/Makefile.in
+++ b/ext/sidplay/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/twolame/Makefile.in b/ext/twolame/Makefile.in
index d88d5dd..f9f25b6 100644
--- a/ext/twolame/Makefile.in
+++ b/ext/twolame/Makefile.in
@@ -372,8 +372,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/ext/x264/GstX264Enc.prs b/ext/x264/GstX264Enc.prs
index 84c76a9..027248f 100644
--- a/ext/x264/GstX264Enc.prs
+++ b/ext/x264/GstX264Enc.prs
@@ -42,3 +42,10 @@
 subme=6
 ref=3
 threads=0
+
+[Profile YouTube]
+_meta/comment=YouTube recommended settings (https://support.google.com/youtube/answer/1722171)
+pass=qual
+cabac=true
+dct8x8=true
+bframes=2
diff --git a/ext/x264/Makefile.am b/ext/x264/Makefile.am
index 4b290ab..0866d64 100644
--- a/ext/x264/Makefile.am
+++ b/ext/x264/Makefile.am
@@ -10,7 +10,8 @@
 	-lgstvideo-$(GST_API_VERSION) \
 	-lgstpbutils-$(GST_API_VERSION) \
 	$(GST_LIBS) \
-	$(X264_LIBS)
+	$(X264_LIBS) \
+	$(GMODULE_NO_EXPORT_LIBS)
 libgstx264_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstx264_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
diff --git a/ext/x264/Makefile.in b/ext/x264/Makefile.in
index f294f90..465dec0 100644
--- a/ext/x264/Makefile.in
+++ b/ext/x264/Makefile.in
@@ -163,7 +163,8 @@
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstx264_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_libgstx264_la_OBJECTS = libgstx264_la-gstx264enc.lo
 libgstx264_la_OBJECTS = $(am_libgstx264_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -374,8 +375,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -516,7 +515,8 @@
 	-lgstvideo-$(GST_API_VERSION) \
 	-lgstpbutils-$(GST_API_VERSION) \
 	$(GST_LIBS) \
-	$(X264_LIBS)
+	$(X264_LIBS) \
+	$(GMODULE_NO_EXPORT_LIBS)
 
 libgstx264_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstx264_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c
index f053744..f5d8f9f 100644
--- a/ext/x264/gstx264enc.c
+++ b/ext/x264/gstx264enc.c
@@ -2,6 +2,7 @@
  * Copyright (C) 2005 Michal Benes <michal.benes@itonis.tv>
  * Copyright (C) 2005 Josef Zlomek <josef.zlomek@itonis.tv>
  * Copyright (C) 2008 Mark Nauwelaerts <mnauw@users.sf.net>
+ * Copyright (C) 2016 Sebastian Dröge <sebastian@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -107,10 +108,242 @@
 
 #include <string.h>
 #include <stdlib.h>
+#include <gmodule.h>
 
 GST_DEBUG_CATEGORY_STATIC (x264_enc_debug);
 #define GST_CAT_DEFAULT x264_enc_debug
 
+struct _GstX264EncVTable
+{
+  GModule *module;
+
+  const int *x264_bit_depth;
+  const int *x264_chroma_format;
+  void (*x264_encoder_close) (x264_t *);
+  int (*x264_encoder_delayed_frames) (x264_t *);
+  int (*x264_encoder_encode) (x264_t *, x264_nal_t ** pp_nal, int *pi_nal,
+      x264_picture_t * pic_in, x264_picture_t * pic_out);
+  int (*x264_encoder_headers) (x264_t *, x264_nal_t ** pp_nal, int *pi_nal);
+  void (*x264_encoder_intra_refresh) (x264_t *);
+  int (*x264_encoder_maximum_delayed_frames) (x264_t *);
+  x264_t *(*x264_encoder_open) (x264_param_t *);
+  int (*x264_encoder_reconfig) (x264_t *, x264_param_t *);
+  const x264_level_t (*x264_levels)[];
+  void (*x264_param_apply_fastfirstpass) (x264_param_t *);
+  int (*x264_param_apply_profile) (x264_param_t *, const char *);
+  void (*x264_param_default) (x264_param_t *);
+  int (*x264_param_default_preset) (x264_param_t *, const char *preset,
+      const char *tune);
+  int (*x264_param_parse) (x264_param_t *, const char *name, const char *value);
+};
+
+static GstX264EncVTable default_vtable = {
+  NULL,
+  &x264_bit_depth,
+  &x264_chroma_format, x264_encoder_close, x264_encoder_delayed_frames,
+  x264_encoder_encode, x264_encoder_headers, x264_encoder_intra_refresh,
+  x264_encoder_maximum_delayed_frames, x264_encoder_open,
+  x264_encoder_reconfig, &x264_levels, x264_param_apply_fastfirstpass,
+  x264_param_apply_profile, x264_param_default, x264_param_default_preset,
+  x264_param_parse
+};
+
+static GstX264EncVTable *vtable_8bit = NULL, *vtable_10bit = NULL;
+static GstCaps *supported_sinkcaps = NULL;
+
+#define LOAD_SYMBOL(name) G_STMT_START { \
+  if (!g_module_symbol (module, #name, (gpointer *) &vtable->name)) { \
+    GST_ERROR ("Failed to load '" #name "' from '%s'", filename); \
+    goto error; \
+  } \
+} G_STMT_END;
+
+#ifdef HAVE_X264_ADDITIONAL_LIBRARIES
+static GstX264EncVTable *
+load_x264 (const gchar * filename)
+{
+  GModule *module;
+  GstX264EncVTable *vtable;
+
+  module = g_module_open (filename, G_MODULE_BIND_LOCAL);
+  if (!module) {
+    GST_ERROR ("Failed to load '%s'", filename);
+    return NULL;
+  }
+
+  vtable = g_new0 (GstX264EncVTable, 1);
+  vtable->module = module;
+
+  if (!g_module_symbol (module, G_STRINGIFY (x264_encoder_open),
+          (gpointer *) & vtable->x264_encoder_open)) {
+    GST_ERROR ("Failed to load '" G_STRINGIFY (x264_encoder_open)
+        "' from '%s'. Incompatible version?", filename);
+    goto error;
+  }
+
+  LOAD_SYMBOL (x264_bit_depth);
+  LOAD_SYMBOL (x264_chroma_format);
+  LOAD_SYMBOL (x264_encoder_close);
+  LOAD_SYMBOL (x264_encoder_delayed_frames);
+  LOAD_SYMBOL (x264_encoder_encode);
+  LOAD_SYMBOL (x264_encoder_headers);
+  LOAD_SYMBOL (x264_encoder_intra_refresh);
+  LOAD_SYMBOL (x264_encoder_maximum_delayed_frames);
+  LOAD_SYMBOL (x264_encoder_reconfig);
+  LOAD_SYMBOL (x264_levels);
+  LOAD_SYMBOL (x264_param_apply_fastfirstpass);
+  LOAD_SYMBOL (x264_param_apply_profile);
+  LOAD_SYMBOL (x264_param_default);
+  LOAD_SYMBOL (x264_param_default_preset);
+  LOAD_SYMBOL (x264_param_parse);
+
+  return vtable;
+
+error:
+  g_module_close (vtable->module);
+  g_free (vtable);
+  return NULL;
+}
+
+static void
+unload_x264 (GstX264EncVTable * vtable)
+{
+  if (vtable->module) {
+    g_module_close (vtable->module);
+    g_free (vtable);
+  }
+}
+#endif
+
+#undef LOAD_SYMBOL
+
+static gboolean
+gst_x264_enc_add_x264_chroma_format (GstStructure * s,
+    gboolean allow_420, gboolean allow_422, gboolean allow_444)
+{
+  GValue fmts = G_VALUE_INIT;
+  GValue fmt = G_VALUE_INIT;
+  gboolean ret = FALSE;
+
+  g_value_init (&fmts, GST_TYPE_LIST);
+  g_value_init (&fmt, G_TYPE_STRING);
+
+  if (vtable_8bit) {
+    gint chroma_format = *vtable_8bit->x264_chroma_format;
+
+    GST_INFO ("8-bit depth supported");
+
+    if ((chroma_format == 0 || chroma_format == X264_CSP_I444) && allow_444) {
+      g_value_set_string (&fmt, "Y444");
+      gst_value_list_append_value (&fmts, &fmt);
+    }
+
+    if ((chroma_format == 0 || chroma_format == X264_CSP_I422) && allow_422) {
+      g_value_set_string (&fmt, "Y42B");
+      gst_value_list_append_value (&fmts, &fmt);
+    }
+
+    if ((chroma_format == 0 || chroma_format == X264_CSP_I420) && allow_420) {
+      g_value_set_string (&fmt, "I420");
+      gst_value_list_append_value (&fmts, &fmt);
+      g_value_set_string (&fmt, "YV12");
+      gst_value_list_append_value (&fmts, &fmt);
+      g_value_set_string (&fmt, "NV12");
+      gst_value_list_append_value (&fmts, &fmt);
+    }
+  }
+
+  if (vtable_10bit) {
+    gint chroma_format = *vtable_10bit->x264_chroma_format;
+
+    GST_INFO ("10-bit depth supported");
+
+    if ((chroma_format == 0 || chroma_format == X264_CSP_I444) && allow_444) {
+      if (G_BYTE_ORDER == G_LITTLE_ENDIAN)
+        g_value_set_string (&fmt, "Y444_10LE");
+      else
+        g_value_set_string (&fmt, "Y444_10BE");
+
+      gst_value_list_append_value (&fmts, &fmt);
+    }
+
+    if ((chroma_format == 0 || chroma_format == X264_CSP_I422) && allow_422) {
+      if (G_BYTE_ORDER == G_LITTLE_ENDIAN)
+        g_value_set_string (&fmt, "I422_10LE");
+      else
+        g_value_set_string (&fmt, "I422_10BE");
+
+      gst_value_list_append_value (&fmts, &fmt);
+    }
+
+    if ((chroma_format == 0 || chroma_format == X264_CSP_I420) && allow_420) {
+      if (G_BYTE_ORDER == G_LITTLE_ENDIAN)
+        g_value_set_string (&fmt, "I420_10LE");
+      else
+        g_value_set_string (&fmt, "I420_10BE");
+
+      gst_value_list_append_value (&fmts, &fmt);
+    }
+  }
+
+  if (gst_value_list_get_size (&fmts) != 0) {
+    gst_structure_take_value (s, "format", &fmts);
+    ret = TRUE;
+  } else {
+    g_value_unset (&fmts);
+  }
+
+  g_value_unset (&fmt);
+
+  return ret;
+}
+
+static gboolean
+load_x264_libraries (void)
+{
+  if (*default_vtable.x264_bit_depth == 8) {
+    vtable_8bit = &default_vtable;
+  } else if (*default_vtable.x264_bit_depth == 10) {
+    vtable_10bit = &default_vtable;
+  }
+#ifdef HAVE_X264_ADDITIONAL_LIBRARIES
+  {
+    gchar **libraries = g_strsplit (HAVE_X264_ADDITIONAL_LIBRARIES, ":", -1);
+    gchar **p = libraries;
+
+    while (*p && (!vtable_8bit || !vtable_10bit)) {
+      GstX264EncVTable *vtable = load_x264 (*p);
+
+      if (vtable) {
+        if (!vtable_8bit && *vtable->x264_bit_depth == 8) {
+          vtable_8bit = vtable;
+        } else if (!vtable_10bit && *vtable->x264_bit_depth == 10) {
+          vtable_10bit = vtable;
+        } else {
+          unload_x264 (vtable);
+        }
+      }
+
+      p++;
+    }
+    g_strfreev (libraries);
+  }
+#endif
+
+  if (!vtable_8bit && !vtable_10bit)
+    return FALSE;
+
+  supported_sinkcaps = gst_caps_new_simple ("video/x-raw",
+      "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1,
+      "width", GST_TYPE_INT_RANGE, 16, G_MAXINT,
+      "height", GST_TYPE_INT_RANGE, 16, G_MAXINT, NULL);
+
+  gst_x264_enc_add_x264_chroma_format (gst_caps_get_structure
+      (supported_sinkcaps, 0), TRUE, TRUE, TRUE);
+
+  return TRUE;
+}
+
 enum
 {
   ARG_0,
@@ -441,21 +674,6 @@
   return -1;
 }
 
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define FORMATS "I420, YV12, Y42B, Y444, NV12, I420_10LE, I422_10LE, Y444_10LE"
-#else
-#define FORMATS "I420, YV12, Y42B, Y444, NV12, I420_10BE, I422_10BE, Y444_10BE"
-#endif
-
-static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("video/x-raw, "
-        "format = (string) { " FORMATS " }, "
-        "framerate = (fraction) [0, MAX], "
-        "width = (int) [ 16, MAX ], " "height = (int) [ 16, MAX ]")
-    );
-
 static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
@@ -523,108 +741,6 @@
 }
 
 static void
-set_value (GValue * val, gint count, ...)
-{
-  const gchar *fmt = NULL;
-  GValue sval = G_VALUE_INIT;
-  va_list ap;
-  gint i;
-
-  g_value_init (&sval, G_TYPE_STRING);
-
-  if (count > 1)
-    g_value_init (val, GST_TYPE_LIST);
-
-  va_start (ap, count);
-  for (i = 0; i < count; i++) {
-    fmt = va_arg (ap, const gchar *);
-    g_value_set_string (&sval, fmt);
-    if (count > 1) {
-      gst_value_list_append_value (val, &sval);
-    }
-  }
-  va_end (ap);
-
-  if (count == 1)
-    *val = sval;
-  else
-    g_value_unset (&sval);
-}
-
-static void
-gst_x264_enc_add_x264_chroma_format (GstStructure * s,
-    int x264_chroma_format_local)
-{
-  GValue fmt = G_VALUE_INIT;
-
-  if (x264_bit_depth == 8) {
-    GST_INFO ("This x264 build supports 8-bit depth");
-    if (x264_chroma_format_local == 0) {
-      set_value (&fmt, 5, "I420", "YV12", "Y42B", "Y444", "NV12");
-    } else if (x264_chroma_format_local == X264_CSP_I420) {
-      set_value (&fmt, 3, "I420", "YV12", "NV12");
-    } else if (x264_chroma_format_local == X264_CSP_I422) {
-      set_value (&fmt, 1, "Y42B");
-    } else if (x264_chroma_format_local == X264_CSP_I444) {
-      set_value (&fmt, 1, "Y444");
-    } else {
-      GST_ERROR ("Unsupported chroma format %d", x264_chroma_format_local);
-    }
-  } else if (x264_bit_depth == 10) {
-    GST_INFO ("This x264 build supports 10-bit depth");
-
-    if (G_BYTE_ORDER == G_LITTLE_ENDIAN) {
-      if (x264_chroma_format_local == 0) {
-        set_value (&fmt, 3, "I420_10LE", "I422_10LE", "Y444_10LE");
-      } else if (x264_chroma_format_local == X264_CSP_I420) {
-        set_value (&fmt, 1, "I420_10LE");
-      } else if (x264_chroma_format_local == X264_CSP_I422) {
-        set_value (&fmt, 1, "I422_10LE");
-      } else if (x264_chroma_format_local == X264_CSP_I444) {
-        set_value (&fmt, 1, "Y444_10LE");
-      } else {
-        GST_ERROR ("Unsupported chroma format %d", x264_chroma_format_local);
-      }
-    } else {
-      if (x264_chroma_format_local == 0) {
-        set_value (&fmt, 3, "I420_10BE", "I422_10BE", "Y444_10BE");
-      } else if (x264_chroma_format_local == X264_CSP_I420) {
-        set_value (&fmt, 1, "I420_10BE");
-      } else if (x264_chroma_format_local == X264_CSP_I422) {
-        set_value (&fmt, 1, "I422_10BE");
-      } else if (x264_chroma_format_local == X264_CSP_I444) {
-        set_value (&fmt, 1, "Y444_10BE");
-      } else {
-        GST_ERROR ("Unsupported chroma format %d", x264_chroma_format_local);
-      }
-    }
-  } else {
-    GST_ERROR ("Unsupported bit depth %d, we only support 8-bit and 10-bit",
-        x264_bit_depth);
-  }
-
-  if (G_VALUE_TYPE (&fmt) != G_TYPE_INVALID)
-    gst_structure_take_value (s, "format", &fmt);
-}
-
-static GstCaps *
-gst_x264_enc_get_supported_input_caps (void)
-{
-  GstCaps *caps;
-
-  caps = gst_caps_new_simple ("video/x-raw",
-      "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1,
-      "width", GST_TYPE_INT_RANGE, 16, G_MAXINT,
-      "height", GST_TYPE_INT_RANGE, 16, G_MAXINT, NULL);
-
-  gst_x264_enc_add_x264_chroma_format (gst_caps_get_structure (caps, 0),
-      x264_chroma_format);
-
-  GST_DEBUG ("returning %" GST_PTR_FORMAT, caps);
-  return caps;
-}
-
-static void
 check_formats (const gchar * str, gboolean * has_420, gboolean * has_422,
     gboolean * has_444)
 {
@@ -646,13 +762,12 @@
   GstCaps *filter_caps, *fcaps;
   gint i, j, k;
 
-  supported_incaps = gst_x264_enc_get_supported_input_caps ();
+  supported_incaps =
+      gst_pad_get_pad_template_caps (GST_VIDEO_ENCODER_SINK_PAD (enc));
 
   /* Allow downstream to specify width/height/framerate/PAR constraints
    * and forward them upstream for video converters to handle
    */
-  if (!supported_incaps)
-    supported_incaps = gst_pad_get_pad_template_caps (enc->sinkpad);
   allowed = gst_pad_get_allowed_caps (enc->srcpad);
 
   if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
@@ -684,6 +799,7 @@
         gst_structure_set_value (s, "framerate", val);
       if ((val = gst_structure_get_value (allowed_s, "pixel-aspect-ratio")))
         gst_structure_set_value (s, "pixel-aspect-ratio", val);
+
       if ((val = gst_structure_get_value (allowed_s, "profile"))) {
         gboolean has_420 = FALSE;
         gboolean has_422 = FALSE;
@@ -702,14 +818,7 @@
           }
         }
 
-        if (has_444 && has_422 && has_420)
-          gst_x264_enc_add_x264_chroma_format (s, 0);
-        else if (has_444)
-          gst_x264_enc_add_x264_chroma_format (s, X264_CSP_I444);
-        else if (has_422)
-          gst_x264_enc_add_x264_chroma_format (s, X264_CSP_I422);
-        else if (has_420)
-          gst_x264_enc_add_x264_chroma_format (s, X264_CSP_I420);
+        gst_x264_enc_add_x264_chroma_format (s, has_420, has_422, has_444);
       }
 
       filter_caps = gst_caps_merge_structure (filter_caps, s);
@@ -748,10 +857,7 @@
     case GST_QUERY_ACCEPT_CAPS:{
       GstCaps *acceptable, *caps;
 
-      acceptable = gst_x264_enc_get_supported_input_caps ();
-      if (!acceptable) {
-        acceptable = gst_pad_get_pad_template_caps (pad);
-      }
+      acceptable = gst_pad_get_pad_template_caps (pad);
 
       gst_query_parse_accept_caps (query, &caps);
 
@@ -776,6 +882,7 @@
   GstElementClass *element_class;
   GstVideoEncoderClass *gstencoder_class;
   const gchar *partitions = NULL;
+  GstPadTemplate *sink_templ;
 
   x264enc_defaults = g_string_new ("");
 
@@ -1036,7 +1143,10 @@
       "Josef Zlomek <josef.zlomek@itonis.tv>, "
       "Mark Nauwelaerts <mnauw@users.sf.net>");
 
-  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  sink_templ = gst_pad_template_new ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS, supported_sinkcaps);
+
+  gst_element_class_add_pad_template (element_class, sink_templ);
   gst_element_class_add_static_pad_template (element_class, &src_factory);
 }
 
@@ -1120,13 +1230,6 @@
   encoder->psy_tune = ARG_PSY_TUNE_DEFAULT;
   encoder->tune = ARG_TUNE_DEFAULT;
   encoder->frame_packing = ARG_FRAME_PACKING_DEFAULT;
-
-  x264_param_default (&encoder->x264param);
-
-  /* log callback setup; part of parameters */
-  encoder->x264param.pf_log = gst_x264_enc_log_callback;
-  encoder->x264param.p_log_private = encoder;
-  encoder->x264param.i_log_level = X264_LOG_DEBUG;
 }
 
 typedef struct
@@ -1288,7 +1391,8 @@
     GStrv key_val = g_strsplit (kvpairs[i], "=", 2);
 
     parse_result =
-        x264_param_parse (&encoder->x264param, key_val[0], key_val[1]);
+        encoder->vtable->x264_param_parse (&encoder->x264param, key_val[0],
+        key_val[1]);
 
     if (parse_result == X264_PARAM_BAD_NAME) {
       GST_ERROR_OBJECT (encoder, "Bad name for option %s=%s",
@@ -1376,13 +1480,26 @@
 
   GST_OBJECT_LOCK (encoder);
 
+  if (GST_VIDEO_INFO_COMP_DEPTH (info, 0) == 8)
+    encoder->vtable = vtable_8bit;
+  else if (GST_VIDEO_INFO_COMP_DEPTH (info, 0) == 10)
+    encoder->vtable = vtable_10bit;
+
+  g_assert (encoder->vtable != NULL);
+
+  encoder->vtable->x264_param_default (&encoder->x264param);
+  /* log callback setup; part of parameters */
+  encoder->x264param.pf_log = gst_x264_enc_log_callback;
+  encoder->x264param.p_log_private = encoder;
+  encoder->x264param.i_log_level = X264_LOG_DEBUG;
+
   gst_x264_enc_build_tunings_string (encoder);
 
   /* set x264 parameters and use preset/tuning if present */
   GST_DEBUG_OBJECT (encoder, "Applying defaults with preset %s, tunings %s",
       encoder->speed_preset ? x264_preset_names[encoder->speed_preset - 1] : "",
       encoder->tunings && encoder->tunings->len ? encoder->tunings->str : "");
-  x264_param_default_preset (&encoder->x264param,
+  encoder->vtable->x264_param_default_preset (&encoder->x264param,
       encoder->speed_preset ? x264_preset_names[encoder->speed_preset -
           1] : NULL, encoder->tunings
       && encoder->tunings->len ? encoder->tunings->str : NULL);
@@ -1618,7 +1735,7 @@
     case 1:
       encoder->x264param.rc.b_stat_read = 0;
       encoder->x264param.rc.b_stat_write = 1;
-      x264_param_apply_fastfirstpass (&encoder->x264param);
+      encoder->vtable->x264_param_apply_fastfirstpass (&encoder->x264param);
       encoder->x264param.i_frame_reference = 1;
       encoder->x264param.analyse.b_transform_8x8 = 0;
       encoder->x264param.analyse.inter = 0;
@@ -1639,7 +1756,8 @@
   }
 
   if (encoder->peer_profile) {
-    if (x264_param_apply_profile (&encoder->x264param, encoder->peer_profile))
+    if (encoder->vtable->x264_param_apply_profile (&encoder->x264param,
+            encoder->peer_profile))
       GST_WARNING_OBJECT (encoder, "Bad downstream profile name: %s",
           encoder->peer_profile);
   }
@@ -1649,26 +1767,76 @@
     encoder->x264param.i_keyint_max = encoder->x264param.i_keyint_min = 1;
 
   /* Enforce level limits if they were in the caps */
-  if (encoder->peer_level) {
-    encoder->x264param.i_level_idc = encoder->peer_level->level_idc;
+  if (encoder->peer_level_idc != -1) {
+    gint i;
+    const x264_level_t *peer_level = NULL;
+
+    for (i = 0; (*encoder->vtable->x264_levels)[i].level_idc; i++) {
+      if (encoder->peer_level_idc ==
+          (*encoder->vtable->x264_levels)[i].level_idc) {
+        int mb_width = (info->width + 15) / 16;
+        int mb_height = (info->height + 15) / 16;
+        int mbs = mb_width * mb_height;
+
+        if ((*encoder->vtable->x264_levels)[i].frame_size < mbs ||
+            (*encoder->vtable->x264_levels)[i].frame_size * 8 <
+            mb_width * mb_width
+            || (*encoder->vtable->x264_levels)[i].frame_size * 8 <
+            mb_height * mb_height) {
+          GST_WARNING_OBJECT (encoder,
+              "Frame size larger than level %d allows",
+              encoder->peer_level_idc);
+          break;
+        }
+
+        if (info->fps_d && (*encoder->vtable->x264_levels)[i].mbps
+            < (gint64) mbs * info->fps_n / info->fps_d) {
+          GST_WARNING_OBJECT (encoder,
+              "Macroblock rate higher than level %d allows",
+              encoder->peer_level_idc);
+          break;
+        }
+
+        peer_level = &(*encoder->vtable->x264_levels)[i];
+        break;
+      }
+    }
+
+    if (!peer_level)
+      goto unlock_and_return;
+
+    encoder->x264param.i_level_idc = peer_level->level_idc;
 
     encoder->x264param.rc.i_bitrate = MIN (encoder->x264param.rc.i_bitrate,
-        encoder->peer_level->bitrate);
+        peer_level->bitrate);
     encoder->x264param.rc.i_vbv_max_bitrate =
-        MIN (encoder->x264param.rc.i_vbv_max_bitrate,
-        encoder->peer_level->bitrate);
+        MIN (encoder->x264param.rc.i_vbv_max_bitrate, peer_level->bitrate);
     encoder->x264param.rc.i_vbv_buffer_size =
-        MIN (encoder->x264param.rc.i_vbv_buffer_size, encoder->peer_level->cpb);
+        MIN (encoder->x264param.rc.i_vbv_buffer_size, peer_level->cpb);
     encoder->x264param.analyse.i_mv_range =
-        MIN (encoder->x264param.analyse.i_mv_range,
-        encoder->peer_level->mv_range);
+        MIN (encoder->x264param.analyse.i_mv_range, peer_level->mv_range);
 
-    if (encoder->peer_level->frame_only) {
+    if (peer_level->frame_only) {
       encoder->x264param.b_interlaced = FALSE;
       encoder->x264param.b_fake_interlaced = FALSE;
     }
   }
 
+  if (GST_VIDEO_INFO_IS_INTERLACED (info)) {
+    encoder->x264param.b_interlaced = TRUE;
+    if (GST_VIDEO_INFO_INTERLACE_MODE (info) == GST_VIDEO_INTERLACE_MODE_MIXED) {
+      encoder->x264param.b_pic_struct = TRUE;
+    }
+    if (GST_VIDEO_INFO_FIELD_ORDER (info) ==
+        GST_VIDEO_FIELD_ORDER_TOP_FIELD_FIRST) {
+      encoder->x264param.b_tff = TRUE;
+    } else {
+      encoder->x264param.b_tff = FALSE;
+    }
+  } else {
+    encoder->x264param.b_interlaced = FALSE;
+  }
+
   /* Set 3D frame packing */
   if (encoder->frame_packing != GST_VIDEO_MULTIVIEW_MODE_NONE)
     encoder->x264param.i_frame_packing = encoder->frame_packing;
@@ -1684,7 +1852,7 @@
 
   GST_OBJECT_UNLOCK (encoder);
 
-  encoder->x264enc = x264_encoder_open (&encoder->x264param);
+  encoder->x264enc = encoder->vtable->x264_encoder_open (&encoder->x264param);
   if (!encoder->x264enc) {
     GST_ELEMENT_ERROR (encoder, STREAM, ENCODE,
         ("Can not initialize x264 encoder."), (NULL));
@@ -1707,9 +1875,10 @@
 gst_x264_enc_close_encoder (GstX264Enc * encoder)
 {
   if (encoder->x264enc != NULL) {
-    x264_encoder_close (encoder->x264enc);
+    encoder->vtable->x264_encoder_close (encoder->x264enc);
     encoder->x264enc = NULL;
   }
+  encoder->vtable = NULL;
 }
 
 static gboolean
@@ -1726,7 +1895,8 @@
   GstStructure *s2;
   const gchar *allowed_profile;
 
-  header_return = x264_encoder_headers (encoder->x264enc, &nal, &i_nal);
+  header_return =
+      encoder->vtable->x264_encoder_headers (encoder->x264enc, &nal, &i_nal);
   if (header_return < 0) {
     GST_ELEMENT_ERROR (encoder, STREAM, ENCODE, ("Encode x264 header failed."),
         ("x264_encoder_headers return code=%d", header_return));
@@ -1812,7 +1982,8 @@
 
   /* Create avcC header. */
 
-  header_return = x264_encoder_headers (encoder->x264enc, &nal, &i_nal);
+  header_return =
+      encoder->vtable->x264_encoder_headers (encoder->x264enc, &nal, &i_nal);
   if (header_return < 0) {
     GST_ELEMENT_ERROR (encoder, STREAM, ENCODE, ("Encode x264 header failed."),
         ("x264_encoder_headers return code=%d", header_return));
@@ -1974,7 +2145,8 @@
   gint max_delayed_frames;
   GstClockTime latency;
 
-  max_delayed_frames = x264_encoder_maximum_delayed_frames (encoder->x264enc);
+  max_delayed_frames =
+      encoder->vtable->x264_encoder_maximum_delayed_frames (encoder->x264enc);
 
   if (info->fps_n) {
     latency = gst_util_uint64_scale_ceil (GST_SECOND * info->fps_d,
@@ -2002,7 +2174,6 @@
   GstVideoInfo *info = &state->info;
   GstCaps *template_caps;
   GstCaps *allowed_caps = NULL;
-  gboolean level_ok = TRUE;
 
   /* If the encoder is initialized, do not reinitialize it again if not
    * necessary */
@@ -2030,7 +2201,7 @@
 
   encoder->peer_profile = NULL;
   encoder->peer_intra_profile = FALSE;
-  encoder->peer_level = NULL;
+  encoder->peer_level_idc = -1;
 
   template_caps = gst_static_pad_template_get_caps (&src_factory);
   allowed_caps = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
@@ -2086,39 +2257,7 @@
 
     level = gst_structure_get_string (s, "level");
     if (level) {
-      int level_idc = gst_codec_utils_h264_get_level_idc (level);
-
-      if (level_idc) {
-        gint i;
-
-        for (i = 0; x264_levels[i].level_idc; i++) {
-          if (level_idc == x264_levels[i].level_idc) {
-            int mb_width = (info->width + 15) / 16;
-            int mb_height = (info->height + 15) / 16;
-            int mbs = mb_width * mb_height;
-
-            if (x264_levels[i].frame_size < mbs ||
-                x264_levels[i].frame_size * 8 < mb_width * mb_width ||
-                x264_levels[i].frame_size * 8 < mb_height * mb_height) {
-              GST_WARNING_OBJECT (encoder,
-                  "Frame size larger than level %s allows", level);
-              level_ok = FALSE;
-              break;
-            }
-
-            if (info->fps_d && x264_levels[i].mbps
-                < (gint64) mbs * info->fps_n / info->fps_d) {
-              GST_WARNING_OBJECT (encoder,
-                  "Macroblock rate higher than level %s allows", level);
-              level_ok = FALSE;
-              break;
-            }
-
-            encoder->peer_level = &x264_levels[i];
-            break;
-          }
-        }
-      }
+      encoder->peer_level_idc = gst_codec_utils_h264_get_level_idc (level);
     }
 
     stream_format = gst_structure_get_string (s, "stream-format");
@@ -2140,9 +2279,6 @@
 
   gst_caps_unref (template_caps);
 
-  if (!level_ok)
-    return FALSE;
-
   if (!gst_x264_enc_init_encoder (encoder))
     return FALSE;
 
@@ -2175,8 +2311,12 @@
   if (!self->input_state)
     return FALSE;
 
+  if (self->vtable == NULL)
+    return FALSE;
+
   info = &self->input_state->info;
-  num_buffers = x264_encoder_maximum_delayed_frames (self->x264enc) + 1;
+  num_buffers =
+      self->vtable->x264_encoder_maximum_delayed_frames (self->x264enc) + 1;
 
   gst_query_add_allocation_pool (query, NULL, info->size, num_buffers, 0);
 
@@ -2224,6 +2364,24 @@
   pic_in.i_pts = frame->pts;
   pic_in.opaque = GINT_TO_POINTER (frame->system_frame_number);
 
+  if (GST_VIDEO_INFO_INTERLACE_MODE (info) == GST_VIDEO_INTERLACE_MODE_MIXED) {
+    if ((fdata->vframe.flags & GST_VIDEO_FRAME_FLAG_INTERLACED) == 0) {
+      pic_in.i_pic_struct = PIC_STRUCT_PROGRESSIVE;
+    } else if ((fdata->vframe.flags & GST_VIDEO_FRAME_FLAG_RFF) != 0) {
+      if ((fdata->vframe.flags & GST_VIDEO_FRAME_FLAG_TFF) != 0) {
+        pic_in.i_pic_struct = PIC_STRUCT_TOP_BOTTOM_TOP;
+      } else {
+        pic_in.i_pic_struct = PIC_STRUCT_BOTTOM_TOP_BOTTOM;
+      }
+    } else {
+      if ((fdata->vframe.flags & GST_VIDEO_FRAME_FLAG_TFF) != 0) {
+        pic_in.i_pic_struct = PIC_STRUCT_TOP_BOTTOM;
+      } else {
+        pic_in.i_pic_struct = PIC_STRUCT_BOTTOM_TOP;
+      }
+    }
+  }
+
   ret = gst_x264_enc_encode_frame (encoder, &pic_in, frame, &i_nal, TRUE);
 
   /* input buffer is released later on */
@@ -2265,7 +2423,8 @@
   GST_OBJECT_LOCK (encoder);
   if (encoder->reconfig) {
     encoder->reconfig = FALSE;
-    if (x264_encoder_reconfig (encoder->x264enc, &encoder->x264param) < 0)
+    if (encoder->vtable->x264_encoder_reconfig (encoder->x264enc,
+            &encoder->x264param) < 0)
       GST_WARNING_OBJECT (encoder, "Could not reconfigure");
     update_latency = TRUE;
   }
@@ -2274,7 +2433,7 @@
     if (GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME (input_frame)) {
       GST_INFO_OBJECT (encoder, "Forcing key frame");
       if (encoder->intra_refresh)
-        x264_encoder_intra_refresh (encoder->x264enc);
+        encoder->vtable->x264_encoder_intra_refresh (encoder->x264enc);
       else
         pic_in->i_type = X264_TYPE_IDR;
     }
@@ -2284,7 +2443,7 @@
   if (G_UNLIKELY (update_latency))
     gst_x264_enc_set_latency (encoder);
 
-  encoder_return = x264_encoder_encode (encoder->x264enc,
+  encoder_return = encoder->vtable->x264_encoder_encode (encoder->x264enc,
       &nal, i_nal, pic_in, &pic_out);
 
   if (encoder_return < 0) {
@@ -2356,12 +2515,15 @@
     do {
       flow_ret = gst_x264_enc_encode_frame (encoder, NULL, NULL, &i_nal, send);
     } while (flow_ret == GST_FLOW_OK
-        && x264_encoder_delayed_frames (encoder->x264enc) > 0);
+        && encoder->vtable->x264_encoder_delayed_frames (encoder->x264enc) > 0);
 }
 
 static void
 gst_x264_enc_reconfig (GstX264Enc * encoder)
 {
+  if (!encoder->vtable)
+    return;
+
   switch (encoder->pass) {
     case GST_X264_ENC_PASS_QUAL:
       encoder->x264param.rc.f_rf_constant = encoder->quantizer;
@@ -2580,8 +2742,6 @@
       break;
     case ARG_INTERLACED:
       encoder->interlaced = g_value_get_boolean (value);
-      g_string_append_printf (encoder->option_string, ":interlaced=%d",
-          encoder->interlaced);
       break;
     case ARG_FRAME_PACKING:
       encoder->frame_packing = g_value_get_enum (value);
@@ -2738,7 +2898,10 @@
   GST_DEBUG_CATEGORY_INIT (x264_enc_debug, "x264enc", 0,
       "h264 encoding element");
 
-  GST_INFO ("x264 build: %u", X264_BUILD);
+  GST_INFO ("linked against x264 build: %u", X264_BUILD);
+
+  if (!load_x264_libraries ())
+    return FALSE;
 
   return gst_element_register (plugin, "x264enc",
       GST_RANK_PRIMARY, GST_TYPE_X264_ENC);
diff --git a/ext/x264/gstx264enc.h b/ext/x264/gstx264enc.h
index 25ac897..732e124 100644
--- a/ext/x264/gstx264enc.h
+++ b/ext/x264/gstx264enc.h
@@ -1,6 +1,7 @@
 /* GStreamer H264 encoder plugin
  * Copyright (C) 2005 Michal Benes <michal.benes@itonis.tv>
  * Copyright (C) 2005 Josef Zlomek <josef.zlomek@itonis.tv>
+ * Copyright (C) 2016 Sebastian Dröge <sebastian@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -46,12 +47,14 @@
 
 typedef struct _GstX264Enc GstX264Enc;
 typedef struct _GstX264EncClass GstX264EncClass;
+typedef struct _GstX264EncVTable GstX264EncVTable;
 
 struct _GstX264Enc
 {
   GstVideoEncoder element;
 
   /*< private >*/
+  GstX264EncVTable *vtable;
   x264_t *x264enc;
   x264_param_t x264param;
   gint current_byte_stream;
@@ -111,7 +114,7 @@
   /* from the downstream caps */
   const gchar *peer_profile;
   gboolean peer_intra_profile;
-  const x264_level_t *peer_level;
+  gint peer_level_idc;
 };
 
 struct _GstX264EncClass
diff --git a/gst-libs/Makefile.in b/gst-libs/Makefile.in
index df91c43..d952bc6 100644
--- a/gst-libs/Makefile.in
+++ b/gst-libs/Makefile.in
@@ -346,8 +346,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst-libs/gst/Makefile.in b/gst-libs/gst/Makefile.in
index 12fe9ff..fc795f3 100644
--- a/gst-libs/gst/Makefile.in
+++ b/gst-libs/gst/Makefile.in
@@ -307,8 +307,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst-plugins-ugly.doap b/gst-plugins-ugly.doap
index d5bbedb..e02140c 100644
--- a/gst-plugins-ugly.doap
+++ b/gst-plugins-ugly.doap
@@ -33,23 +33,13 @@
    </GitRepository>
  </repository> 
 
-  <release>
+ <release>
   <Version>
-   <revision>1.10.2</revision>
-   <branch>1.10</branch>
+   <revision>1.11.1</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-11-29</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.10.2.tar.xz" />
-  </Version>
- </release>
-
-  <release>
-  <Version>
-   <revision>1.10.1</revision>
-   <branch>1.10</branch>
-   <name></name>
-   <created>2016-11-17</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.10.1.tar.xz" />
+   <created>2017-01-12</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.11.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-ugly.spec b/gst-plugins-ugly.spec
deleted file mode 100644
index 52a3671..0000000
--- a/gst-plugins-ugly.spec
+++ /dev/null
@@ -1,129 +0,0 @@
-%define majorminor  1.0
-%define gstreamer   gstreamer1
-
-%define gst_minver  0.11.0
-
-Name: 		%{gstreamer}-plugins-ugly
-Version: 	1.10.2
-Release: 	1.gst
-Summary: 	GStreamer streaming media framework "ugly" plug-ins
-
-Group: 		Applications/Multimedia
-License: 	LGPL
-URL:		http://gstreamer.freedesktop.org/
-Vendor:         GStreamer Backpackers Team <package@gstreamer.freedesktop.org>
-Source:         http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-%{version}.tar.xz
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-Requires: 	%{gstreamer} >= %{gst_minver}
-BuildRequires: 	%{gstreamer}-devel >= %{gst_minver}
-BuildRequires:  gcc-c++
-
-BuildRequires:  libsidplay-devel >= 1.36.0
-BuildRequires:  a52dec-devel >= 0.7.3
-BuildRequires:  libdvdread-devel >= 0.9.0
-BuildRequires:  lame-devel >= 3.89
-BuildRequires:  libmad-devel >= 0.15.0
-BuildRequires:  mpeg2dec-devel >= 0.4.0
-BuildRequires:  mpg123-devel >= 1.13
-
-Provides:       gstreamer-sid = %{version}-%{release}
-Provides:      gstreamer-lame = %{version}-%{release}
-Provides:       gstreamer-mad = %{version}-%{release}
-Provides:       gstreamer-a52dec = %{version}-%{release}
-Provides:       gstreamer-dvdread = %{version}-%{release}
-Provides:       gstreamer-mpeg2dec = %{version}-%{release}
-
-Requires: x264-libs
-
-%description
-GStreamer is a streaming media framework, based on graphs of elements which
-operate on media data.
-
-This package contains well-written plug-ins that can't be shipped in
-gstreamer-plugins-good because:
-- the license is not LGPL
-- the license of the library is not LGPL
-- there are possible licensing issues with the code.
-
-# %package devel
-# Summary:        Development files for GStreamer Ugly Plugins
-# Group:          Development/Libraries
-#
-# Requires:       %{name} = %{version}-%{release}
-#
-# %description devel
-# GStreamer is a streaming media framework, based on graphs of elements which
-# operate on media data.
-#
-# This package contains well-written plug-ins that can't be shipped in
-# gstreamer-plugins-good because:
-# - the license is not LGPL
-# - the license of the library is not LGPL
-# - there are possible licensing issues with the code.
-# 
-# This package contains development files and documentation.
-
-%prep
-%setup -q -n gst-plugins-ugly-%{version}
-%build
-%configure \
-  --enable-debug \
-  --enable-gtk-doc 
-
-make %{?_smp_mflags}
-                                                                                
-%install
-rm -rf $RPM_BUILD_ROOT
-
-# Install doc temporarily in order to be included later by rpm
-%makeinstall
-
-# Clean out files that should not be part of the rpm.
-rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
-
-%find_lang gst-plugins-ugly-%{majorminor}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files -f gst-plugins-ugly-%{majorminor}.lang
-%defattr(-, root, root, -)
-%doc AUTHORS COPYING README REQUIREMENTS gst-plugins-ugly.doap
-%{_libdir}/gstreamer-%{majorminor}/libgstasf.so
-%{_libdir}/gstreamer-%{majorminor}/libgstdvdlpcmdec.so
-%{_libdir}/gstreamer-%{majorminor}/libgstxingmux.so
-%{_libdir}/gstreamer-%{majorminor}/libgstrmdemux.so
-%{_libdir}/gstreamer-%{majorminor}/libgstdvdsub.so
-
-# plugins with dependencies
-%{_libdir}/gstreamer-%{majorminor}/libgstsid.so
-%{_libdir}/gstreamer-%{majorminor}/libgstlame.so
-%{_libdir}/gstreamer-%{majorminor}/libgstmad.so
-%{_libdir}/gstreamer-%{majorminor}/libgsta52dec.so
-%{_libdir}/gstreamer-%{majorminor}/libgstdvdread.so
-%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2dec.so
-%{_libdir}/gstreamer-%{majorminor}/libgstmpg123.so
-%{_libdir}/gstreamer-%{majorminor}/libgsttwolame.so
-%doc %{_datadir}/gtk-doc/html/gst-plugins-ugly-plugins-%{majorminor}/*
-%{_datadir}/gstreamer-%{majorminor}/presets/GstX264Enc.prs
-%{_libdir}/gstreamer-%{majorminor}/libgstx264.so
-%{_libdir}/gstreamer-%{majorminor}/libgstamrnb.so
-%{_libdir}/gstreamer-%{majorminor}/libgstamrwbdec.so
-%{_datadir}/gstreamer-%{majorminor}/presets/GstAmrnbEnc.prs
-%{_libdir}/gstreamer-%{majorminor}/libgstcdio.so
-
-
-%changelog
-* Fri Jun 5 2009 Jan Schmidt <thaytan at mad dot scientist dot com>
-- Move x264enc plugin from -bad
-
-* Fri Dec 15 2006 Thomas Vander Stichele <thomas at apestaart dot org>
-- further cleanup
-- add .doap file
-
-* Fri Sep 02 2005 Thomas Vander Stichele <thomas at apestaart dot org>
-- clean out for split into ugly
diff --git a/gst-plugins-ugly.spec.in b/gst-plugins-ugly.spec.in
deleted file mode 100644
index 1d1a54a..0000000
--- a/gst-plugins-ugly.spec.in
+++ /dev/null
@@ -1,129 +0,0 @@
-%define majorminor  @GST_API_VERSION@
-%define gstreamer   gstreamer1
-
-%define gst_minver  0.11.0
-
-Name: 		%{gstreamer}-plugins-ugly
-Version: 	@VERSION@
-Release: 	@PACKAGE_VERSION_RELEASE@.gst
-Summary: 	GStreamer streaming media framework "ugly" plug-ins
-
-Group: 		Applications/Multimedia
-License: 	LGPL
-URL:		http://gstreamer.freedesktop.org/
-Vendor:         GStreamer Backpackers Team <package@gstreamer.freedesktop.org>
-Source:         http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-%{version}.tar.xz
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-Requires: 	%{gstreamer} >= %{gst_minver}
-BuildRequires: 	%{gstreamer}-devel >= %{gst_minver}
-BuildRequires:  gcc-c++
-
-@USE_SIDPLAY_TRUE@BuildRequires:  libsidplay-devel >= 1.36.0
-@USE_A52DEC_TRUE@BuildRequires:  a52dec-devel >= 0.7.3
-@USE_DVDREAD_TRUE@BuildRequires:  libdvdread-devel >= 0.9.0
-@USE_LAME_TRUE@BuildRequires:  lame-devel >= 3.89
-@USE_MAD_TRUE@BuildRequires:  libmad-devel >= 0.15.0
-@USE_MPEG2DEC_TRUE@BuildRequires:  mpeg2dec-devel >= 0.4.0
-@USE_MPG123_TRUE@BuildRequires:  mpg123-devel >= 1.13
-
-@USE_SIDPLAY_TRUE@Provides:       gstreamer-sid = %{version}-%{release}
-@USE_LAME_TRUE@Provides:      gstreamer-lame = %{version}-%{release}
-@USE_MAD_TRUE@Provides:       gstreamer-mad = %{version}-%{release}
-@USE_A52DEC_TRUE@Provides:       gstreamer-a52dec = %{version}-%{release}
-@USE_DVDREAD_TRUE@Provides:       gstreamer-dvdread = %{version}-%{release}
-@USE_MPEG2DEC_TRUE@Provides:       gstreamer-mpeg2dec = %{version}-%{release}
-
-@USE_X264_TRUE@Requires: x264-libs
-
-%description
-GStreamer is a streaming media framework, based on graphs of elements which
-operate on media data.
-
-This package contains well-written plug-ins that can't be shipped in
-gstreamer-plugins-good because:
-- the license is not LGPL
-- the license of the library is not LGPL
-- there are possible licensing issues with the code.
-
-# %package devel
-# Summary:        Development files for GStreamer Ugly Plugins
-# Group:          Development/Libraries
-#
-# Requires:       %{name} = %{version}-%{release}
-#
-# %description devel
-# GStreamer is a streaming media framework, based on graphs of elements which
-# operate on media data.
-#
-# This package contains well-written plug-ins that can't be shipped in
-# gstreamer-plugins-good because:
-# - the license is not LGPL
-# - the license of the library is not LGPL
-# - there are possible licensing issues with the code.
-# 
-# This package contains development files and documentation.
-
-%prep
-%setup -q -n gst-plugins-ugly-%{version}
-%build
-%configure \
-  --enable-debug \
-  --enable-gtk-doc 
-
-make %{?_smp_mflags}
-                                                                                
-%install
-rm -rf $RPM_BUILD_ROOT
-
-# Install doc temporarily in order to be included later by rpm
-%makeinstall
-
-# Clean out files that should not be part of the rpm.
-rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
-
-%find_lang gst-plugins-ugly-%{majorminor}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files -f gst-plugins-ugly-%{majorminor}.lang
-%defattr(-, root, root, -)
-%doc AUTHORS COPYING README REQUIREMENTS gst-plugins-ugly.doap
-%{_libdir}/gstreamer-%{majorminor}/libgstasf.so
-%{_libdir}/gstreamer-%{majorminor}/libgstdvdlpcmdec.so
-%{_libdir}/gstreamer-%{majorminor}/libgstxingmux.so
-%{_libdir}/gstreamer-%{majorminor}/libgstrmdemux.so
-%{_libdir}/gstreamer-%{majorminor}/libgstdvdsub.so
-
-# plugins with dependencies
-@USE_SIDPLAY_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstsid.so
-@USE_LAME_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstlame.so
-@USE_MAD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmad.so
-@USE_A52DEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsta52dec.so
-@USE_DVDREAD_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstdvdread.so
-@USE_MPEG2DEC_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmpeg2dec.so
-@USE_MPG123_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstmpg123.so
-@USE_TWOLAME_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgsttwolame.so
-%doc %{_datadir}/gtk-doc/html/gst-plugins-ugly-plugins-%{majorminor}/*
-@USE_X264_TRUE@%{_datadir}/gstreamer-%{majorminor}/presets/GstX264Enc.prs
-@USE_X264_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstx264.so
-@USE_AMRNB_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstamrnb.so
-@USE_AMRWB_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstamrwbdec.so
-@USE_AMRNB_TRUE@%{_datadir}/gstreamer-%{majorminor}/presets/GstAmrnbEnc.prs
-@USE_CDIO_TRUE@%{_libdir}/gstreamer-%{majorminor}/libgstcdio.so
-
-
-%changelog
-* Fri Jun 5 2009 Jan Schmidt <thaytan at mad dot scientist dot com>
-- Move x264enc plugin from -bad
-
-* Fri Dec 15 2006 Thomas Vander Stichele <thomas at apestaart dot org>
-- further cleanup
-- add .doap file
-
-* Fri Sep 02 2005 Thomas Vander Stichele <thomas at apestaart dot org>
-- clean out for split into ugly
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 202477b..f1b7c58 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -351,8 +351,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst/asfdemux/Makefile.in b/gst/asfdemux/Makefile.in
index cf09967..66e3726 100644
--- a/gst/asfdemux/Makefile.in
+++ b/gst/asfdemux/Makefile.in
@@ -376,8 +376,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c
index e113e02..ea5158f 100644
--- a/gst/asfdemux/gstasfdemux.c
+++ b/gst/asfdemux/gstasfdemux.c
@@ -4081,6 +4081,8 @@
   data_start = data;
   obj_size = (guint) size;
 
+  esp.payload_extensions = NULL;
+
   if (size < 64)
     goto not_enough_data;
 
@@ -4133,8 +4135,6 @@
 
   if (num_payload_ext > 0)
     esp.payload_extensions = g_new0 (AsfPayloadExtension, num_payload_ext + 1);
-  else
-    esp.payload_extensions = NULL;
 
   for (i = 0; i < num_payload_ext; ++i) {
     AsfPayloadExtension ext;
@@ -4236,12 +4236,16 @@
     GST_WARNING_OBJECT (demux, "Ext. stream properties for unknown stream");
   }
 
+  if (!stream)
+    g_free (esp.payload_extensions);
+
   return GST_FLOW_OK;
 
   /* Errors */
 not_enough_data:
   {
     GST_WARNING_OBJECT (demux, "short read parsing ext stream props object!");
+    g_free (esp.payload_extensions);
     return GST_FLOW_OK;         /* not absolutely fatal */
   }
 expected_stream_object:
@@ -4249,11 +4253,13 @@
     GST_WARNING_OBJECT (demux, "error parsing extended stream properties "
         "object: expected embedded stream object, but got %s object instead!",
         gst_asf_get_guid_nick (asf_object_guids, stream_obj.id));
+    g_free (esp.payload_extensions);
     return GST_FLOW_OK;         /* not absolutely fatal */
   }
 corrupted_stream:
   {
     GST_WARNING_OBJECT (demux, "Corrupted stream");
+    g_free (esp.payload_extensions);
     return GST_FLOW_ERROR;
   }
 }
diff --git a/gst/dvdlpcmdec/Makefile.in b/gst/dvdlpcmdec/Makefile.in
index 089a6cc..cd0d72d 100644
--- a/gst/dvdlpcmdec/Makefile.in
+++ b/gst/dvdlpcmdec/Makefile.in
@@ -372,8 +372,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst/dvdsub/Makefile.in b/gst/dvdsub/Makefile.in
index 88e892c..f491f0f 100644
--- a/gst/dvdsub/Makefile.in
+++ b/gst/dvdsub/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst/realmedia/Makefile.in b/gst/realmedia/Makefile.in
index 5e049fe..c52c9ac 100644
--- a/gst/realmedia/Makefile.in
+++ b/gst/realmedia/Makefile.in
@@ -388,8 +388,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/gst/realmedia/realhash.c b/gst/realmedia/realhash.c
index 97b1390..4a18189 100644
--- a/gst/realmedia/realhash.c
+++ b/gst/realmedia/realhash.c
@@ -292,7 +292,7 @@
   /* calculate response */
   call_hash (field, buf, 64);
   memset (buf1, 0, 64);
-  *buf1 = 128;
+  *buf1 = (char) 128;
   memcpy (buf2, field + 16, 8);
   i = (LE_32 ((buf2)) >> 3) & 0x3f;
   if (i < 56)
diff --git a/gst/xingmux/Makefile.in b/gst/xingmux/Makefile.in
index e3c1fa6..6632645 100644
--- a/gst/xingmux/Makefile.in
+++ b/gst/xingmux/Makefile.in
@@ -373,8 +373,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 9d1a231..96d0b40 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -286,8 +286,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index b1bb0f1..0fb2dbd 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -287,8 +287,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/po/af.gmo b/po/af.gmo
index b21b34d..1e7d3b5 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 146dd4e..1203a1d 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index dcc9e25..e2c5f67 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index b147d25..a69ffa3 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index a41915f..c45f8b7 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 4f08a23..a2395b2 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/ca.gmo b/po/ca.gmo
index 1bc8a25..b5beaa9 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 3b7817b..67840ee 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 46ad708..fcbf562 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 95e57e8..1075a0d 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/da.gmo b/po/da.gmo
index 96a384d..5c8af59 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index cb7c98d..1156b94 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/de.gmo b/po/de.gmo
index 9c105ed..96093d4 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 5e95e2f..fcdb750 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/el.gmo b/po/el.gmo
index 3edc2fc..21d2553 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 3c11ed9..5a8fdbb 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index f13ff4f..8ea9f5d 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 ae3e261..04cad1f 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index 5d21560..0ec1372 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 5e7de42..d6ed12e 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/es.gmo b/po/es.gmo
index e26e903..030c9a3 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index c4d7561..e8cfa22 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2011-10-02 15:45+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index 7b48659..9f39067 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 44fe70a..c5ba58b 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/fi.gmo b/po/fi.gmo
index ca20d4c..6b55eaf 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index a2a6ca5..d48a739 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/fr.gmo b/po/fr.gmo
index 9d316fb..7edc0b9 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 39128d5..e11d299 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/gl.gmo b/po/gl.gmo
index bb55540..b3b297c 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index e6e3cdc..4529648 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/gst-plugins-ugly-1.0.pot b/po/gst-plugins-ugly-1.0.pot
index ff53235..d76cd7e 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.10.2\n"
+"Project-Id-Version: gst-plugins-ugly 1.11.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/po/hr.gmo b/po/hr.gmo
index 57a7ceb..bcfac26 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 919c16f..a8383bf 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-ugly-1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2016-11-19 10:23-0800\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index 780bbc3..7cf6fc7 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 3fe84bd..cf0b2f0 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/id.gmo b/po/id.gmo
index 475d960..f189f3b 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 233cea1..79a2e2f 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/it.gmo b/po/it.gmo
index 9983262..e36ac17 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 77f650f..05511cd 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/ja.gmo b/po/ja.gmo
index ee426f0..6379cea 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index c5359c9..a5e594f 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/lt.gmo b/po/lt.gmo
index 1031617..37aa9b8 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index d8c8efa..ad6f638 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/lv.gmo b/po/lv.gmo
index 95be64b..0e2c45c 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index a9c0ad3..98c83de 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/ms.gmo b/po/ms.gmo
index a86e8d8..51b4d60 100644
--- a/po/ms.gmo
+++ b/po/ms.gmo
Binary files differ
diff --git a/po/ms.po b/po/ms.po
index 38f901a..a7f2512 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/mt.gmo b/po/mt.gmo
index a7b80e8..426a4f2 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index 81f3acd..09b7c62 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/nb.gmo b/po/nb.gmo
index a548e95..5addae3 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 29448b3..cdaf7b9 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/nl.gmo b/po/nl.gmo
index 4fdeba6..d50bc32 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 6764538..b33229d 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/or.gmo b/po/or.gmo
index 90c33a8..74637aa 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 7f614d6..10b068f 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 05eea93..bc40524 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 80fedf6..f156ea1 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 76f1bc7..f7bf241 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 cd6f58c..28671c8 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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."
diff --git a/po/ro.gmo b/po/ro.gmo
index ca816bd..4075a20 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index e591487..18bcd92 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/ru.gmo b/po/ru.gmo
index b7a0809..ceb3e1e 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 5b3fcbc..e6f04b9 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/sk.gmo b/po/sk.gmo
index b6e2c92..5044ca5 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 68f8861..644d242 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/sl.gmo b/po/sl.gmo
index 5766adc..fdc7861 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 49a0a5d..223e1b2 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/sq.gmo b/po/sq.gmo
index 29c1643..7f8e78f 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 2254a27..d01fc79 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index 50b8dd2..9ce91a7 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index cd92dee..2735613 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\n"
 "PO-Revision-Date: 2013-10-03 22:30+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 427f721..07ee58d 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index b0b061e..087db8d 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/tr.gmo b/po/tr.gmo
index e5fac28..68d6b96 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index adac61d..ad2e4c4 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/uk.gmo b/po/uk.gmo
index 518ab8a..4ee5908 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index d854bd6..cb0d607 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/vi.gmo b/po/vi.gmo
index bef25c6..5e30ba5 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 67e5566..8570568 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 71884a4..d032513 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 c239d77..1139553 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-11-29 15:54+0200\n"
+"POT-Creation-Date: 2017-01-12 14:45+0200\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"
diff --git a/tests/Makefile.in b/tests/Makefile.in
index d308351..650cfb0 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -345,8 +345,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index fe91673..7230c1f 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -596,8 +596,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 1756875..3b067fa 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -286,8 +286,6 @@
 LTLIBINTL = @LTLIBINTL@
 LTLIBOBJS = @LTLIBOBJS@
 LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAD_CFLAGS = @MAD_CFLAGS@
-MAD_LIBS = @MAD_LIBS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
diff --git a/win32/MANIFEST b/win32/MANIFEST
deleted file mode 100644
index 35c6443..0000000
--- a/win32/MANIFEST
+++ /dev/null
@@ -1,2 +0,0 @@
-win32/MANIFEST
-win32/common/config.h
diff --git a/win32/common/config.h b/win32/common/config.h
deleted file mode 100644
index 6ca3876..0000000
--- a/win32/common/config.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/* Autogenerated config.h created for win32 Visual Studio builds */
-
-/* PREFIX -- specifically added for Windows for easier moving */
-#define PREFIX "C:\\gstreamer"
-
-
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Default audio sink */
-#define DEFAULT_AUDIOSINK "directsoundsink"
-
-/* Default audio source */
-#define DEFAULT_AUDIOSRC "audiotestsrc"
-
-/* Default video sink */
-#undef DEFAULT_VIDEOSINK
-
-/* Default video source */
-#define DEFAULT_VIDEOSRC "videotestsrc"
-
-/* Default visualizer */
-#define DEFAULT_VISUALIZER "goom"
-
-/* Disable Orc */
-#undef DISABLE_ORC
-
-/* Define to 1 if translation of program messages to the user's native
-   language is requested. */
-#undef ENABLE_NLS
-
-/* gettext package name */
-#define GETTEXT_PACKAGE "gst-plugins-ugly-1.0"
-
-/* The GIO library directory. */
-#undef GIO_LIBDIR
-
-/* The GIO modules directory. */
-#undef GIO_MODULE_DIR
-
-/* The GIO install prefix. */
-#undef GIO_PREFIX
-
-/* GStreamer API Version */
-#define GST_API_VERSION "1.0"
-
-/* Define if extra runtime checks should be enabled */
-#undef GST_ENABLE_EXTRA_CHECKS
-
-/* macro to use to show function name */
-#undef GST_FUNCTION
-
-/* Defined if gcov is enabled to force a rebuild due to config.h changing */
-#undef GST_GCOV_ENABLED
-
-/* Default errorlevel to use */
-#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR
-
-/* GStreamer license */
-#define GST_LICENSE "LGPL"
-
-/* package name in plugins */
-#define GST_PACKAGE_NAME "GStreamer Ugly Plug-ins source release"
-
-/* package origin */
-#define GST_PACKAGE_ORIGIN "Unknown package origin"
-
-/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2016-11-29"
-
-/* Define if static plugins should be built */
-#undef GST_PLUGIN_BUILD_STATIC
-
-/* Define to enable a52dec (used by a52dec). */
-#undef HAVE_A52DEC
-
-/* Define to enable amrnb library (used by amrnb). */
-#undef HAVE_AMRNB
-
-/* Define to enable amrwb library (used by amrwbdec). */
-#undef HAVE_AMRWB
-
-/* Define to enable cdio library (used by cdio). */
-#undef HAVE_CDIO
-
-/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
-   CoreFoundation framework. */
-#undef HAVE_CFLOCALECOPYCURRENT
-
-/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
-   the CoreFoundation framework. */
-#undef HAVE_CFPREFERENCESCOPYAPPVALUE
-
-/* Define if the target CPU is AARCH64 */
-#undef HAVE_CPU_AARCH64
-
-/* Define if the target CPU is an Alpha */
-#undef HAVE_CPU_ALPHA
-
-/* Define if the target CPU is an ARC */
-#undef HAVE_CPU_ARC
-
-/* Define if the target CPU is an ARM */
-#undef HAVE_CPU_ARM
-
-/* Define if the target CPU is a CRIS */
-#undef HAVE_CPU_CRIS
-
-/* Define if the target CPU is a CRISv32 */
-#undef HAVE_CPU_CRISV32
-
-/* Define if the target CPU is a HPPA */
-#undef HAVE_CPU_HPPA
-
-/* Define if the target CPU is an x86 */
-#define HAVE_CPU_I386 1
-
-/* Define if the target CPU is a IA64 */
-#undef HAVE_CPU_IA64
-
-/* Define if the target CPU is a M68K */
-#undef HAVE_CPU_M68K
-
-/* Define if the target CPU is a MIPS */
-#undef HAVE_CPU_MIPS
-
-/* Define if the target CPU is a PowerPC */
-#undef HAVE_CPU_PPC
-
-/* Define if the target CPU is a 64 bit PowerPC */
-#undef HAVE_CPU_PPC64
-
-/* Define if the target CPU is a S390 */
-#undef HAVE_CPU_S390
-
-/* Define if the target CPU is a SPARC */
-#undef HAVE_CPU_SPARC
-
-/* Define if the target CPU is a x86_64 */
-#undef HAVE_CPU_X86_64
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
-   */
-#undef HAVE_DCGETTEXT
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* define for working do while(0) macros */
-#undef HAVE_DOWHILE_MACROS
-
-/* Define to enable dvdread library (used by dvdreadsrc). */
-#undef HAVE_DVDREAD
-
-/* Define to enable building of experimental plug-ins. */
-#undef HAVE_EXPERIMENTAL
-
-/* Define to enable building of plug-ins with external deps. */
-#undef HAVE_EXTERNAL
-
-/* defined if the compiler implements __func__ */
-#undef HAVE_FUNC
-
-/* defined if the compiler implements __FUNCTION__ */
-#undef HAVE_FUNCTION
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#undef HAVE_GETTEXT
-
-/* Define if you have the iconv() function and it works. */
-#undef HAVE_ICONV
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to enable lame mp3 encoder library (used by lame). */
-#undef HAVE_LAME
-
-/* Define to enable mad mp3 decoder (used by mad). */
-#undef HAVE_MAD
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to enable mpeg2dec (used by mpeg2dec). */
-#undef HAVE_MPEG2DEC
-
-/* Define to enable mpg123 audio decoder (used by mpg123). */
-#undef HAVE_MPG123
-
-/* Use Orc */
-#undef HAVE_ORC
-
-/* defined if the compiler implements __PRETTY_FUNCTION__ */
-#undef HAVE_PRETTY_FUNCTION
-
-/* Define if RDTSC is available */
-#undef HAVE_RDTSC
-
-/* Define to enable libsidplay (used by sid). */
-#undef HAVE_SIDPLAY
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to enable twolame (used by twolame). */
-#undef HAVE_TWOLAME
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if valgrind should be used */
-#undef HAVE_VALGRIND
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#define HAVE_WINSOCK2_H 1
-
-/* Define to enable x264 plug-in (used by x264). */
-#undef HAVE_X264
-
-/* the host CPU */
-#define HOST_CPU "i686"
-
-/* gettext locale dir */
-#define LOCALEDIR PREFIX "\\share\\locale"
-
-/* Define to the sub-directory where libtool stores uninstalled libraries. */
-#undef LT_OBJDIR
-
-/* Name of package */
-#define PACKAGE "gst-plugins-ugly"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"
-
-/* Define to the full name of this package. */
-#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.10.2"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "gst-plugins-ugly"
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.10.2"
-
-/* directory where plugins are located */
-#ifdef _DEBUG
-#  define PLUGINDIR PREFIX "\\debug\\lib\\gstreamer-0.11"
-#else
-#  define PLUGINDIR PREFIX "\\lib\\gstreamer-0.11"
-#endif
-
-/* The size of `char', as computed by sizeof. */
-#undef SIZEOF_CHAR
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `short', as computed by sizeof. */
-#undef SIZEOF_SHORT
-
-/* The size of `void*', as computed by sizeof. */
-#undef SIZEOF_VOIDP
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* the target CPU */
-#undef TARGET_CPU
-
-/* Version number of package */
-#define VERSION "1.10.2"
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif