diff --git a/INSTALL b/INSTALL
index b42a17a..2099840 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,48 +1,80 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
 Basic Installation
 ==================
 
-   These are generic installation instructions.
+   Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
 those values to create a `Makefile' in each directory of the package.
 It may also create one or more `.h' files containing system-dependent
 definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
 diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
 
-   The file `configure.in' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
-The simplest way to compile this package is:
+   The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
   3. Optionally, type `make check' to run any self-tests that come with
-     the package.
+     the package, generally using the just-built uninstalled binaries.
 
   4. Type `make install' to install the programs and any data files and
-     documentation.
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
 
-  5. You can remove the program binaries and object files from the
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
      source code directory by typing `make clean'.  To also remove the
      files that `configure' created (so you can compile the package for
      a different kind of computer), type `make distclean'.  There is
@@ -51,62 +83,119 @@
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
 Compilers and Options
 =====================
 
    Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  You can give `configure'
-initial values for variables by setting them in the environment.  Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
 
-Or on systems that have the `env' program, you can do it like this:
-     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
 
 Compiling For Multiple Architectures
 ====================================
 
    You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
 
-   If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory.  After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
 
 Installation Names
 ==================
 
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
 
    In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
 kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
 
    If the package supports it, you can cause programs to be installed
 with an extra prefix or suffix on their names by giving `configure' the
 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 
-Optional Features
-=================
-
    Some packages pay attention to `--enable-FEATURE' options to
 `configure', where FEATURE indicates an optional part of the package.
 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
@@ -119,25 +208,80 @@
 you can use the `configure' options `--x-includes=DIR' and
 `--x-libraries=DIR' to specify their locations.
 
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved.  Use GNU `make'
+instead.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
 Specifying the System Type
 ==========================
 
-   There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
      CPU-COMPANY-SYSTEM
 
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
+where SYSTEM can have one of these forms:
 
-   If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
 
 Sharing Defaults
 ================
@@ -150,19 +294,56 @@
 `CONFIG_SITE' environment variable to the location of the site script.
 A warning: not all `configure' scripts look for a site script.
 
-Operation Controls
+Defining Variables
 ==================
 
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
+
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
    `configure' recognizes the following options to control how it
 operates.
 
-`--cache-file=FILE'
-     Use and save the results of the tests in FILE instead of
-     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
-     debugging `configure'.
-
 `--help'
-     Print a summary of the options to `configure', and exit.
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
 
 `--quiet'
 `--silent'
@@ -175,8 +356,15 @@
      Look for the package's source code in directory DIR.  Usually
      `configure' can determine that directory automatically.
 
-`--version'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
 
-`configure' also accepts some other, not widely useful, options.
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
diff --git a/Makefile.am b/Makefile.am
index 59251e9..03cfe0b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-docbook --with-bash-completion-dir=no
+DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-docbook
 
 # note: keep in sync with configure.ac
 ACLOCAL_AMFLAGS = -I m4 -I common/m4
@@ -205,6 +205,10 @@
 
 CRUFT_DIRS = \
 	$(top_builddir)/tests/examples/xml \
+	$(top_builddir)/tests/examples/launch \
+	$(top_builddir)/tests/examples/metadata \
+	$(top_builddir)/tests/examples/queue \
+	$(top_builddir)/tests/examples/typefind \
 	$(top_builddir)/gst/tmp-introspect* \
 	$(top_builddir)/libs/gst/*/tmp-introspect*
 
diff --git a/Makefile.in b/Makefile.in
index 00ff9ca..edea6e6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -557,7 +557,7 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-docbook --with-bash-completion-dir=no
+DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-docbook
 aclocaldir = $(datadir)/aclocal
 aclocal_DATA = gst-element-check-@GST_API_VERSION@.m4
 SUBDIRS = pkgconfig gst libs plugins tests docs po m4 common data \
@@ -642,6 +642,10 @@
 
 CRUFT_DIRS = \
 	$(top_builddir)/tests/examples/xml \
+	$(top_builddir)/tests/examples/launch \
+	$(top_builddir)/tests/examples/metadata \
+	$(top_builddir)/tests/examples/queue \
+	$(top_builddir)/tests/examples/typefind \
 	$(top_builddir)/gst/tmp-introspect* \
 	$(top_builddir)/libs/gst/*/tmp-introspect*
 
diff --git a/autogen.sh b/autogen.sh
index 65e9379..e5dfa6e 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -57,24 +57,13 @@
 
 printf "+ check for build tools"
 if test ! -z "$NOCHECK"; then echo ": skipped version checks"; else  echo; fi
-version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 " \
+version_check "autoreconf" "autoreconf " \
               "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 68 || DIE=1
-version_check "automake" "$AUTOMAKE automake automake-1.11" \
-              "ftp://ftp.gnu.org/pub/gnu/automake/" 1 11 || DIE=1
-version_check "autopoint" "autopoint" \
-              "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 17 || DIE=1
-version_check "libtoolize" "$LIBTOOLIZE libtoolize glibtoolize" \
-              "ftp://ftp.gnu.org/pub/gnu/libtool/" 2 2 6 || DIE=1
 version_check "pkg-config" "" \
               "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1
 
 die_check $DIE
 
-aclocal_check || DIE=1
-autoheader_check || DIE=1
-
-die_check $DIE
-
 # if no arguments specified then this will be printed
 if test -z "$*" && test -z "$NOCONFIGURE"; then
   echo "+ checking for autogen.sh options"
@@ -88,22 +77,13 @@
 
 # autopoint
 if test -d po ; then
-  tool_run "$autopoint" "--force"
+  tool_run "autopoint" "--force"
 fi
 
 # aclocal
 if test -f acinclude.m4; then rm acinclude.m4; fi
 
-tool_run "$libtoolize" "--copy --force"
-tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS"
-tool_run "$autoheader"
-
-# touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode
-echo timestamp > stamp-h.in 2> /dev/null
-
-tool_run "$autoconf"
-debug "automake: $automake"
-tool_run "$automake" "--add-missing --copy"
+autoreconf --force --install || exit 1
 
 test -n "$NOCONFIGURE" && {
   echo "+ skipping configure stage for package $package, as requested."
diff --git a/common/check.mak b/common/check.mak
index efd5458..8a90b5d 100644
--- a/common/check.mak
+++ b/common/check.mak
@@ -16,38 +16,38 @@
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
 %.check: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$* ||							\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	GST_DEBUG=$$GST_DEBUG,*:2				\
 	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # just like 'check', but don't run it again if it fails (useful for debugging)
 %.check-norepeat: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # run any given test in a loop
 %.torture: %
 	@for i in `seq 1 $(LOOPS)`; do				\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$*; done
 
 # run any given test in an infinite loop
 %.forever: %
 	@while true; do						\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$* || break; done
 
 # valgrind any given test by running make test.valgrind
 %.valgrind: %
 	@valgrind_log=$(subst /,-,$*-valgrind.log);		\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=360					\
 	G_SLICE=always-malloc					\
 	$(LIBTOOL) --mode=execute				\
@@ -65,7 +65,7 @@
 
 # valgrind any given test and generate suppressions for it
 %.valgrind.gen-suppressions: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=360					\
 	G_SLICE=always-malloc					\
 	$(LIBTOOL) --mode=execute				\
@@ -95,7 +95,7 @@
 
 # gdb any given test by running make test.gdb
 %.gdb: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_FORK=no						\
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
@@ -205,7 +205,7 @@
 GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_API_VERSION)
 inspect:
 	@echo "Inspecting features ..."
-	@for e in `$(TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 	\
+	@for e in `$(AM_TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 	\
 	  | cut -d: -f2`;						\
 	  do echo Inspecting $$e;					\
 	     $(GST_INSPECT) $$e > /dev/null 2>&1; done
diff --git a/common/gst-autogen.sh b/common/gst-autogen.sh
index 78cab66..c5798d0 100644
--- a/common/gst-autogen.sh
+++ b/common/gst-autogen.sh
@@ -169,54 +169,6 @@
   return 1;
 }
 
-aclocal_check ()
-{
-  # normally aclocal is part of automake
-  # so we expect it to be in the same place as automake
-  # so if a different automake is supplied, we need to adapt as well
-  # so how's about replacing automake with aclocal in the set var,
-  # and saving that in $aclocal ?
-  # note, this will fail if the actual automake isn't called automake*
-  # or if part of the path before it contains it
-  if [ -z "$automake" ]; then
-    echo "Error: no automake variable set !"
-    return 1
-  else
-    aclocal=`echo $automake | sed s/automake/aclocal/`
-    debug "aclocal: $aclocal"
-    if [ "$aclocal" != "aclocal" ];
-    then
-      CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal"
-    fi
-    if [ ! -x `which $aclocal` ]; then
-      echo "Error: cannot execute $aclocal !"
-      return 1
-    fi
-  fi
-}
-
-autoheader_check ()
-{
-  # same here - autoheader is part of autoconf
-  # use the same voodoo
-  if [ -z "$autoconf" ]; then
-    echo "Error: no autoconf variable set !"
-    return 1
-  else
-    autoheader=`echo $autoconf | sed s/autoconf/autoheader/`
-    debug "autoheader: $autoheader"
-    if [ "$autoheader" != "autoheader" ];
-    then
-      CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader"
-    fi
-    if [ ! -x `which $autoheader` ]; then
-      echo "Error: cannot execute $autoheader !"
-      return 1
-    fi
-  fi
-
-}
-
 die_check ()
 {
   # call with $DIE
diff --git a/common/gst.supp b/common/gst.supp
index c08f660..5e2aaf9 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -3972,3 +3972,37 @@
   timer_create(evp)
   fun:timer_create@@GLIBC_2.3.3
 }
+
+{
+   closures aren't valgrind friendly (bgo#739850)
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:calloc
+   ...
+   fun:g_cclosure_new
+}
+
+{
+   closures aren't valgrind friendly (bgo#739850)
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:malloc
+   ...
+   fun:g_closure_add_invalidate_notifier
+}
+
+{
+   closures aren't valgrind friendly (bgo#739850)
+   Memcheck:Leak
+   match-leak-kinds: possible
+   fun:calloc
+   ...
+   fun:g_closure_new_simple
+}
+
+{
+   glib/giomodules2 (from libsoup.supp)
+   Memcheck:Leak
+   ...
+   fun:_g_io_module_get_default
+}
diff --git a/configure b/configure
index 74d7da7..6168eaf 100755
--- a/configure
+++ b/configure
@@ -15813,7 +15813,15 @@
 fi
 
 
-if test "x$with_bash_completion_dir" = "xyes"; then
+if test "x$with_bash_completion_dir" = "xyes"
+then
+    extra_args=
+
+    if test "x$prefix" != "xNONE"
+    then
+        extra_args="--define-variable=prefix=\"$prefix\""
+    fi
+
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BASH_COMPLETION" >&5
@@ -15883,7 +15891,7 @@
 	BASH_COMPLETION_LIBS=$pkg_cv_BASH_COMPLETION_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-	BASH_COMPLETION_DIR="`pkg-config --variable=completionsdir bash-completion`"
+	BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"
 fi
 
 pkg_failed=no
@@ -15954,7 +15962,7 @@
 	BASH_COMPLETION_LIBS=$pkg_cv_BASH_COMPLETION_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-	BASH_HELPERS_DIR="`pkg-config --variable=helpersdir bash-completion`"
+	BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"
 fi
 else
     BASH_COMPLETION_DIR="$with_bash_completion_dir/completions"
@@ -27454,7 +27462,7 @@
 
 
 
-ac_config_files="$ac_config_files Makefile data/Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile gst/printf/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/internal-check.h:libs/gst/check/libcheck/check.h.in libs/gst/controller/Makefile libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/elements/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile tests/check/Makefile tests/misc/Makefile tests/examples/Makefile tests/examples/adapter/Makefile tests/examples/controller/Makefile tests/examples/stepping/Makefile tests/examples/helloworld/Makefile tests/examples/launch/Makefile tests/examples/manual/Makefile tests/examples/memory/Makefile tests/examples/metadata/Makefile tests/examples/netclock/Makefile tests/examples/queue/Makefile tests/examples/streamiddemux/Makefile tests/examples/streams/Makefile tests/examples/typefind/Makefile tools/Makefile common/Makefile common/m4/Makefile docs/Makefile docs/design/Makefile docs/faq/Makefile docs/gst/Makefile docs/gst/gstreamer.types docs/libs/Makefile docs/plugins/Makefile docs/manual/Makefile docs/pwg/Makefile docs/slides/Makefile docs/xsl/Makefile docs/version.entities m4/Makefile pkgconfig/Makefile stamp.h pkgconfig/gstreamer.pc pkgconfig/gstreamer-uninstalled.pc pkgconfig/gstreamer-base.pc pkgconfig/gstreamer-base-uninstalled.pc pkgconfig/gstreamer-check.pc pkgconfig/gstreamer-check-uninstalled.pc pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc gstreamer.spec"
+ac_config_files="$ac_config_files Makefile data/Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile gst/printf/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/internal-check.h:libs/gst/check/libcheck/check.h.in libs/gst/controller/Makefile libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/elements/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile tests/check/Makefile tests/misc/Makefile tests/examples/Makefile tests/examples/adapter/Makefile tests/examples/controller/Makefile tests/examples/stepping/Makefile tests/examples/helloworld/Makefile tests/examples/manual/Makefile tests/examples/memory/Makefile tests/examples/netclock/Makefile tests/examples/streamiddemux/Makefile tests/examples/streams/Makefile tools/Makefile common/Makefile common/m4/Makefile docs/Makefile docs/design/Makefile docs/faq/Makefile docs/gst/Makefile docs/gst/gstreamer.types docs/libs/Makefile docs/plugins/Makefile docs/manual/Makefile docs/pwg/Makefile docs/slides/Makefile docs/xsl/Makefile docs/version.entities m4/Makefile pkgconfig/Makefile stamp.h pkgconfig/gstreamer.pc pkgconfig/gstreamer-uninstalled.pc pkgconfig/gstreamer-base.pc pkgconfig/gstreamer-base-uninstalled.pc pkgconfig/gstreamer-check.pc pkgconfig/gstreamer-check-uninstalled.pc pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc gstreamer.spec"
 
 
 sed \
@@ -28893,15 +28901,11 @@
     "tests/examples/controller/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/controller/Makefile" ;;
     "tests/examples/stepping/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/stepping/Makefile" ;;
     "tests/examples/helloworld/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/helloworld/Makefile" ;;
-    "tests/examples/launch/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/launch/Makefile" ;;
     "tests/examples/manual/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/manual/Makefile" ;;
     "tests/examples/memory/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/memory/Makefile" ;;
-    "tests/examples/metadata/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/metadata/Makefile" ;;
     "tests/examples/netclock/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/netclock/Makefile" ;;
-    "tests/examples/queue/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/queue/Makefile" ;;
     "tests/examples/streamiddemux/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/streamiddemux/Makefile" ;;
     "tests/examples/streams/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/streams/Makefile" ;;
-    "tests/examples/typefind/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/typefind/Makefile" ;;
     "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
     "common/Makefile") CONFIG_FILES="$CONFIG_FILES common/Makefile" ;;
     "common/m4/Makefile") CONFIG_FILES="$CONFIG_FILES common/m4/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 9e45826..42fe32a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_PREREQ([2.68])
+AC_PREREQ([2.69])
 
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
@@ -8,7 +8,7 @@
 AG_GST_INIT
 
 dnl initialize automake (we require GNU make)
-AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
+AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
 
 dnl define PACKAGE_VERSION_* variables
 AS_VERSION
@@ -28,10 +28,8 @@
 dnl sets host_* variables
 AC_CANONICAL_HOST
 
-dnl use pretty build output with automake >= 1.11
-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
-  [AM_DEFAULT_VERBOSITY=1
-   AC_SUBST(AM_DEFAULT_VERBOSITY)])
+dnl use pretty build output by default
+AM_SILENT_RULES([yes])
 
 dnl GStreamer versioning, this is mostly informational
 GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
@@ -141,12 +139,20 @@
     [],
     [with_bash_completion_dir=yes])
 
-if test "x$with_bash_completion_dir" = "xyes"; then
+if test "x$with_bash_completion_dir" = "xyes"
+then
+    extra_args=
+
+    if test "x$prefix" != "xNONE"
+    then
+        extra_args="--define-variable=prefix=\"$prefix\""
+    fi
+
     PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
-        [BASH_COMPLETION_DIR="`pkg-config --variable=completionsdir bash-completion`"],
+        [BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"],
         [BASH_COMPLETION_DIR="$datadir/bash-completion/completions"])
     PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
-        [BASH_HELPERS_DIR="`pkg-config --variable=helpersdir bash-completion`"],
+        [BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"],
         [BASH_HELPERS_DIR="$datadir/bash-completion/helpers"])
 else
     BASH_COMPLETION_DIR="$with_bash_completion_dir/completions"
@@ -833,15 +839,11 @@
 tests/examples/controller/Makefile
 tests/examples/stepping/Makefile
 tests/examples/helloworld/Makefile
-tests/examples/launch/Makefile
 tests/examples/manual/Makefile
 tests/examples/memory/Makefile
-tests/examples/metadata/Makefile
 tests/examples/netclock/Makefile
-tests/examples/queue/Makefile
 tests/examples/streamiddemux/Makefile
 tests/examples/streams/Makefile
-tests/examples/typefind/Makefile
 tools/Makefile
 common/Makefile
 common/m4/Makefile
diff --git a/data/completions/gst-inspect-1.0 b/data/completions/gst-inspect-1.0
index 130b963..980e140 100644
--- a/data/completions/gst-inspect-1.0
+++ b/data/completions/gst-inspect-1.0
@@ -18,34 +18,34 @@
 # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 # Boston, MA 02110-1301, USA.
 
-HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
+_GST_HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
 
-if [[ ! -d "$HELPERDIR"  ]]; then
-	HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
+if [[ ! -d "$_GST_HELPERDIR"  ]]; then
+	_GST_HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
 else
-	HELPERDIR=`cd "$HELPERDIR"; pwd`
+	_GST_HELPERDIR=`cd "$_GST_HELPERDIR"; pwd`
 fi
 
 # Common definitions
-. "$HELPERDIR"/gst
+. "$_GST_HELPERDIR"/gst
 
-HELPER="$HELPERDIR/gst-completion-helper-1.0"
+_GST_HELPER="$_GST_HELPERDIR/gst-completion-helper-1.0"
 
-_inspect_all_arguments ()
+_gst_inspect_all_arguments ()
 {
 	COMPREPLY=( $(compgen -W "$(gst-inspect-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
 }
 
-_inspect_all_elements ()
+_gst_inspect_all_elements ()
 {
-	COMPREPLY=( $(compgen -W "$($HELPER -l)" -- $cur) )
+	COMPREPLY=( $(compgen -W "$($_GST_HELPER -l)" -- $cur) )
 }
 
-_gstinspect___atleast_version () { _mandatory__argument; }
+_gstinspect___atleast_version () { _gst_mandatory_argument; }
 
 _gstinspect___exists ()
 {
-	_inspect_all_elements
+	_gst_inspect_all_elements
 }
 
 __inspect_main ()
@@ -60,7 +60,7 @@
 			then
 				command="$var"
 			fi
-		i=$[$i+1]
+		i=$(($i+1))
 		done
 
 	if [[ "$command" == "--gst"* ]]; then
@@ -74,16 +74,16 @@
 	function_exists=$?
 
 	if [[ "$cur" == "--"* ]]; then
-		_inspect_all_arguments
+		_gst_inspect_all_arguments
 	elif [ $function_exists -eq 0 ]
 	then
 		$completion_func
 	else
-		_inspect_all_elements
+		_gst_inspect_all_elements
 	fi
 }
 
-__inspect_func_wrap ()
+_gst_inspect_func_wrap ()
 {
 	local cur prev
 	cur="${COMP_WORDS[COMP_CWORD]}"
@@ -94,12 +94,12 @@
 # Setup completion for certain functions defined above by setting common
 # variables and workarounds.
 # This is NOT a public function; use at your own risk.
-__inspect_complete ()
+_gst_inspect_complete ()
 {
 	local wrapper="__inspect_wrap${2}"
-	eval "$wrapper () { __inspect_func_wrap $2 ; }"
+	eval "$wrapper () { _gst_inspect_func_wrap $2 ; }"
 	complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
 		|| complete -o default -o nospace -F $wrapper $1
 }
 
-__inspect_complete gst-inspect-1.0 __inspect_main
+_gst_inspect_complete gst-inspect-1.0 __inspect_main
diff --git a/data/completions/gst-launch-1.0 b/data/completions/gst-launch-1.0
index a12e06e..941cf84 100644
--- a/data/completions/gst-launch-1.0
+++ b/data/completions/gst-launch-1.0
@@ -18,42 +18,42 @@
 # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 # Boston, MA 02110-1301, USA.
 
-HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
+_GST_HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
 
-if [[ ! -d "$HELPERDIR" ]]; then
-	HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
+if [[ ! -d "$_GST_HELPERDIR" ]]; then
+	_GST_HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
 else
-	HELPERDIR=`cd "$HELPERDIR"; pwd`
+	_GST_HELPERDIR=`cd "$_GST_HELPERDIR"; pwd`
 fi
 
 # Common definitions
-. "$HELPERDIR"/gst
+. "$_GST_HELPERDIR"/gst
 
-HELPER="$HELPERDIR/gst-completion-helper-1.0"
+_GST_HELPER="$_GST_HELPERDIR/gst-completion-helper-1.0"
 
-_launch_all_arguments ()
+_gst_launch_all_arguments ()
 {
 	COMPREPLY=( $(compgen -W "$(gst-launch-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
 }
 
-_complete_compatible_elements ()
+_gst_complete_compatible_elements ()
 {
-	COMPREPLY=( $(compgen -W "$($HELPER --compatible-with $previous_element)" -- $cur) )
+	COMPREPLY=( $(compgen -W "$($_GST_HELPER --compatible-with $previous_element)" -- $cur) )
 }
 
-_complete_all_elements ()
+_gst_complete_all_elements ()
 {
-	COMPREPLY=( $(compgen -W "$($HELPER -l)" -- $cur) )
+	COMPREPLY=( $(compgen -W "$($_GST_HELPER -l)" -- $cur) )
 }
 
-_complete_element_properties ()
+_gst_complete_element_properties ()
 {
-	COMPREPLY=( $(compgen -W "$($HELPER --element-properties $previous_element)" -- $cur) )
+	COMPREPLY=( $(compgen -W "$($_GST_HELPER --element-properties $previous_element)" -- $cur) )
 }
 
-_gstlaunch___exclude_ () { _mandatory__argument; }
+_gstlaunch___exclude_ () { _gst_mandatory_argument; }
 
-__launch_main ()
+_gst_launch_main ()
 {
 	local i=1 command function_exists previous_element have_previous_element=0 completion_func
 
@@ -65,7 +65,7 @@
 			then
 				command="$var"
 			fi
-		i=$[$i+1]
+		i=$(($i+1))
 		done
 
 	i=1
@@ -76,7 +76,7 @@
 
 			if [[ "$var" == "--"* ]]
 			then
-				i=$[$i+1]
+				i=$(($i+1))
 				continue
 			fi
 
@@ -86,7 +86,7 @@
 				previous_element="$var"
 				have_previous_element=1
 			fi
-		i=$[$i+1]
+		i=$(($i+1))
 		done
 
 	if [[ "$command" == "--gst"* ]]; then
@@ -106,22 +106,22 @@
 	function_exists=$?
 
 	if [[ "$cur" == "--"* ]]; then
-		_launch_all_arguments
+		_gst_launch_all_arguments
 	elif [ $function_exists -eq 0 ]
 	then
 		$completion_func
 	elif [ $have_previous_element -ne 0 ] && [[ "$prev" == "!" ]]
 	then
-		_complete_compatible_elements
+		_gst_complete_compatible_elements
 	elif [ $have_previous_element -ne 0 ]
 	then
-		_complete_element_properties
+		_gst_complete_element_properties
 	else
-		_complete_all_elements
+		_gst_complete_all_elements
 	fi
 }
 
-__launch_func_wrap ()
+_gst_launch_func_wrap ()
 {
 	local cur prev
 	cur="${COMP_WORDS[COMP_CWORD]}"
@@ -132,12 +132,12 @@
 # Setup completion for certain functions defined above by setting common
 # variables and workarounds.
 # This is NOT a public function; use at your own risk.
-__launch_complete ()
+_gst_launch_complete ()
 {
 	local wrapper="__launch_wrap${2}"
-	eval "$wrapper () { __launch_func_wrap $2 ; }"
+	eval "$wrapper () { _gst_launch_func_wrap $2 ; }"
 	complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
 		|| complete -o default -o nospace -F $wrapper $1
 }
 
-__launch_complete gst-launch-1.0 __launch_main
+_gst_launch_complete gst-launch-1.0 _gst_launch_main
diff --git a/docs/design/part-clocks.txt b/docs/design/part-clocks.txt
index 5a7816f..e149a49 100644
--- a/docs/design/part-clocks.txt
+++ b/docs/design/part-clocks.txt
@@ -78,7 +78,7 @@
 The GStreamer core provides a GstSystemClock based on the system time. 
 Asynchronous callbacks are scheduled from an internal thread.
 
-Clock implementors are encouraged to subclass this systemclock as it
+Clock implementers are encouraged to subclass this systemclock as it
 implements the async notification.
 
 Subclasses can however override all of the important methods for sync and
diff --git a/docs/design/part-context.txt b/docs/design/part-context.txt
index e7a07de..00c706c 100644
--- a/docs/design/part-context.txt
+++ b/docs/design/part-context.txt
@@ -14,7 +14,7 @@
 
 Context types
 ~~~~~~~~~~~~~
-Context type names should be unique and be put in appropiate namespaces,
+Context type names should be unique and be put in appropriate namespaces,
 to prevent name conflicts, e.g. "gst.egl.EGLDisplay". Only one specific
 type is allowed per context type name.
 
@@ -25,7 +25,7 @@
 do the following steps until one succeeds:
 
  1) Check if the element already has a context of the specific type,
-    i.e. it was previoulsy set via gst_element_set_context().
+    i.e. it was previously set via gst_element_set_context().
 
  2) Query downstream with GST_QUERY_CONTEXT for the context and check if
     downstream already has a context of the specific type
diff --git a/docs/design/part-conventions.txt b/docs/design/part-conventions.txt
index cd072c5..447b67b 100644
--- a/docs/design/part-conventions.txt
+++ b/docs/design/part-conventions.txt
@@ -2,7 +2,7 @@
 -------------------------
 
 Due to the potential for exponential growth, several abbreviating conventions will be used throughout this 
-documentation.  These conventions have grown primarily from extremely in-depth discussions of the architecure in IRC.  
+documentation.  These conventions have grown primarily from extremely in-depth discussions of the architecture in IRC.
 This has verified the safety of these conventions, if used properly.  There are no known namespace conflicts as long as 
 context is rigorously observed.
 
@@ -33,7 +33,7 @@
 Drawing conventions
 ~~~~~~~~~~~~~~~~~~~
 
-When drawing pictures the folowing conventions apply:
+When drawing pictures the following conventions apply:
 
 objects
 ^^^^^^^
diff --git a/docs/design/part-states.txt b/docs/design/part-states.txt
index bc2c9ab..7040d21 100644
--- a/docs/design/part-states.txt
+++ b/docs/design/part-states.txt
@@ -17,7 +17,7 @@
  - PAUSED:  The element should be ready to accept and process data. Sink
             elements however only accept one buffer and then block.
  - PLAYING: The same as PAUSED except for live sources and sinks. Sinks accept
-            and rendering data. Live sources produce data.
+            and render data. Live sources produce data.
 
 We call the sequence NULL->PLAYING an upwards state change and PLAYING->NULL
 a downwards state change.
@@ -30,7 +30,7 @@
 
  NULL -> READY
    - The element must check if the resources it needs are available.
-     Device sinks and -sources typically try to probe the device to constrain
+     Device sinks and sources typically try to probe the device to constrain
      their caps.
    - The element opens the device, this is needed if the previous step requires
      the device to be opened.
@@ -162,7 +162,7 @@
    the pending state value. The function returns GST_STATE_NO_PREROLL.
 
  - If the element returned FAILURE to the previous _set_state() call, this 
-   funciton will return FAILURE with the state set to the current state of
+   function will return FAILURE with the state set to the current state of
    the element and the pending state set to the value used in the last call
    of _set_state().
 
@@ -298,7 +298,7 @@
 Locking overview (element)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-* Element commiting SUCCESS
+* Element committing SUCCESS
 
  - STATE_LOCK is taken in set_state
  - change state is called if SUCCESS, commit state is called
diff --git a/docs/design/part-streams.txt b/docs/design/part-streams.txt
index 3a95634..09cf074 100644
--- a/docs/design/part-streams.txt
+++ b/docs/design/part-streams.txt
@@ -41,7 +41,7 @@
   2) SEGMENT, rate, start/stop, time
      - marks valid buffer timestamp range (start, stop)
      - marks stream_time of buffers (time). This is the stream time of buffers
-       with a timestamp of NS.start.
+       with a timestamp of S.start.
      - marks playback rate (rate). This is the required playback rate.
      - marks applied rate (applied_rate). This is the already applied playback
        rate. (See also part-trickmodes.txt)
@@ -49,22 +49,22 @@
        against the clock.
 
   3) N buffers
-     - displayable buffers are between start/stop of the SEGMENT. Buffers
+     - displayable buffers are between start/stop of the SEGMENT (S). Buffers
        outside the segment range should be dropped or clipped.
 
      - running_time: 
      
-         if (NS.rate > 0.0)
-           running_time = (B.timestamp - NS.start) / NS.abs_rate + NS.accum
+         if (S.rate > 0.0)
+           running_time = (B.timestamp - S.start) / ABS (S.rate) + S.base
          else
-           running_time = (NS.stop - B.timestamp) / NS.abs_rate + NS.accum
+           running_time = (S.stop - B.timestamp) / ABS (S.rate) + S.base
 
         * a monotonically increasing value that can be used to synchronize 
 	  against the clock (See also part-synchronisation.txt).
 
      - stream_time:
 
-         stream_time = (B.timestamp - NS.start) * NS.abs_applied_rate + NS.time
+         stream_time = (B.timestamp - S.start) * ABS (S.applied_rate) + S.time
 
         * current position in stream between 0 and duration.
 
diff --git a/docs/design/part-synchronisation.txt b/docs/design/part-synchronisation.txt
index 8c67415..7694c1b 100644
--- a/docs/design/part-synchronisation.txt
+++ b/docs/design/part-synchronisation.txt
@@ -114,8 +114,8 @@
 rate. Likewise, a rate between 0.0 and 1.0 will slow down playback.
 
 For negative rates, timestamps are received stop S.stop to S.start so that the
-first buffer received will be transformed into B.running_time of 0 (B.timestamp ==
-S.stop and S.accum == 0).
+first buffer received will be transformed into B.running_time of 0
+(B.timestamp == S.stop and S.base == 0).
 
 This makes it so that B.running_time is always monotonically increasing
 starting from 0 with both positive and negative rates.
@@ -219,7 +219,7 @@
   filling (B.timestamp - S.start) in the above formule for stream time
 
   =>
-    stream_time = (S.offset + (absolute_time - base_time - S.base) * ABS (S.rate)) * S.abs_applied_rate + S.time
+    stream_time = (S.offset + (absolute_time - base_time - S.base) * ABS (S.rate)) * ABS (S.applied_rate) + S.time
 
 This last formula is typically used in sinks to report the current position in
 an accurate and efficient way.
diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml
index 7e66574..7650c2c 100644
--- a/docs/gst/gstreamer-docs.sgml
+++ b/docs/gst/gstreamer-docs.sgml
@@ -95,6 +95,7 @@
     <xi:include href="xml/gstpluginfeature.xml" />
     <xi:include href="xml/gstpoll.xml" />
     <xi:include href="xml/gstpreset.xml" />
+    <xi:include href="xml/gstprotection.xml" />
     <xi:include href="xml/gstquery.xml" />
     <xi:include href="xml/gstregistry.xml" />
     <xi:include href="xml/gstsegment.xml" />
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 9ebcb8c..be4f437 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -2128,6 +2128,7 @@
 gst_pipeline_get_bus
 
 gst_pipeline_set_clock
+gst_pipeline_get_pipeline_clock
 gst_pipeline_get_clock
 
 gst_pipeline_use_clock
@@ -2305,6 +2306,19 @@
 </SECTION>
 
 <SECTION>
+<FILE>gstprotection</FILE>
+<INCLUDE>gst/gstprotection.h</INCLUDE>
+GstProtectionMeta
+gst_buffer_add_protection_meta
+gst_buffer_get_protection_meta
+gst_protection_select_system
+<SUBSECTION Standard>
+GST_PROTECTION_META_API_TYPE
+GST_PROTECTION_META_INFO
+gst_protection_meta_get_info
+</SECTION>
+
+<SECTION>
 <FILE>gstquery</FILE>
 <TITLE>GstQuery</TITLE>
 GstQuery
@@ -2510,11 +2524,13 @@
 gst_segment_free
 gst_segment_do_seek
 gst_segment_to_running_time
+gst_segment_to_running_time_full
 gst_segment_to_stream_time
 gst_segment_to_position
 gst_segment_set_running_time
 gst_segment_copy_into
 gst_segment_offset_running_time
+gst_segment_is_equal
 <SUBSECTION Standard>
 GST_TYPE_SEGMENT
 GST_TYPE_SEGMENT_FLAGS
diff --git a/docs/gst/html/GstBufferList.html b/docs/gst/html/GstBufferList.html
index f72ed7f..db2d022 100644
--- a/docs/gst/html/GstBufferList.html
+++ b/docs/gst/html/GstBufferList.html
@@ -654,7 +654,7 @@
 in <em class="parameter"><code>group</code></em>
 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no buffer. The buffer remains valid as
 long as <em class="parameter"><code>list</code></em>
-is valid. </p>
+is valid and buffer is not removed from the list. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
 </div>
 </div>
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index 861bfb8..fb67cab 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -3089,8 +3089,10 @@
 gst_element_get_clock (<em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 <p>Gets the currently configured clock of the element. This is the clock as was
 last set with <a class="link" href="GstElement.html#gst-element-set-clock" title="gst_element_set_clock ()"><code class="function">gst_element_set_clock()</code></a>.</p>
+<p>Elements in a pipeline will only have their clock set when the
+pipeline is in the PLAYING state.</p>
 <div class="refsect3">
-<a name="id-1.3.21.10.66.5"></a><h4>Parameters</h4>
+<a name="id-1.3.21.10.66.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3105,7 +3107,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.21.10.66.6"></a><h4>Returns</h4>
+<a name="id-1.3.21.10.66.7"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> of the element. unref after usage.</p>
 <p>MT safe. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -4218,8 +4220,10 @@
   /* virtual methods for subclasses */
 
   /* request/release pads */
+  /* FIXME 2.0 harmonize naming with gst_element_request_pad */
   GstPad*               (*request_new_pad)      (GstElement *element, GstPadTemplate *templ,
                                                  const gchar* name, const GstCaps *caps);
+
   void                  (*release_pad)          (GstElement *element, GstPad *pad);
 
   /* state changes */
diff --git a/docs/gst/html/GstEvent.html b/docs/gst/html/GstEvent.html
index 4abb08f..e2b5827 100644
--- a/docs/gst/html/GstEvent.html
+++ b/docs/gst/html/GstEvent.html
@@ -3307,6 +3307,14 @@
 <td class="enum_member_annotations"> </td>
 </tr>
 <tr>
+<td class="enum_member_name"><p><a name="GST-EVENT-PROTECTION:CAPS"></a>GST_EVENT_PROTECTION</p></td>
+<td class="enum_member_description">
+<p>An event which indicates that new or updated
+                encryption information has been found in the stream.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
 <td class="enum_member_name"><p><a name="GST-EVENT-SEGMENT-DONE:CAPS"></a>GST_EVENT_SEGMENT_DONE</p></td>
 <td class="enum_member_description">
 <p>Marks the end of a segment playback.</p>
diff --git a/docs/gst/html/GstMemory.html b/docs/gst/html/GstMemory.html
index 57d9fb0..4cd8028 100644
--- a/docs/gst/html/GstMemory.html
+++ b/docs/gst/html/GstMemory.html
@@ -1211,9 +1211,9 @@
  starting from <em class="parameter"><code>offset</code></em>
 . This copy is
 guaranteed to be writable. <em class="parameter"><code>size</code></em>
- can be set to -1 to return a copy all bytes
+ can be set to -1 to return a copy
 from <em class="parameter"><code>offset</code></em>
-.</p>
+ to the end of the memory region.</p>
 <div class="refsect3">
 <a name="id-1.3.28.8.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -1230,12 +1230,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>an offset to copy</p></td>
+<td class="parameter_description"><p>offset to copy from</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size to copy or -1 to copy all bytes from offset</p></td>
+<td class="parameter_description"><p>size to copy, or -1 to copy to the end of the memory region</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -1259,10 +1259,10 @@
  starting from <em class="parameter"><code>offset</code></em>
 . No
 memory copy is performed and the memory region is simply shared. The result
-is guaranteed to be not-writable. <em class="parameter"><code>size</code></em>
- can be set to -1 to return a share
-all bytes from <em class="parameter"><code>offset</code></em>
-.</p>
+is guaranteed to be non-writable. <em class="parameter"><code>size</code></em>
+ can be set to -1 to return a shared
+copy from <em class="parameter"><code>offset</code></em>
+ to the end of the memory region.</p>
 <div class="refsect3">
 <a name="id-1.3.28.8.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -1279,12 +1279,12 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>an offset to share</p></td>
+<td class="parameter_description"><p>offset to share from</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size to share or -1 to share bytes from offset</p></td>
+<td class="parameter_description"><p>size to share, or -1 to share to the end of the memory region</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index a95edcd..83b24e4 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -4471,7 +4471,7 @@
 <p>The EOS event will pause the task associated with <em class="parameter"><code>pad</code></em>
  before it is forwarded
 to all internally linked pads,</p>
-<p>The the event is sent to all pads internally linked to <em class="parameter"><code>pad</code></em>
+<p>The event is sent to all pads internally linked to <em class="parameter"><code>pad</code></em>
 . This function
 takes ownership of <em class="parameter"><code>event</code></em>
 .</p>
diff --git a/docs/gst/html/GstPipeline.html b/docs/gst/html/GstPipeline.html
index 95235fd..1983937 100644
--- a/docs/gst/html/GstPipeline.html
+++ b/docs/gst/html/GstPipeline.html
@@ -72,6 +72,14 @@
 <a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
 </td>
 <td class="function_name">
+<a class="link" href="GstPipeline.html#gst-pipeline-get-pipeline-clock" title="gst_pipeline_get_pipeline_clock ()">gst_pipeline_get_pipeline_clock</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
+</td>
+<td class="function_name">
 <a class="link" href="GstPipeline.html#gst-pipeline-get-clock" title="gst_pipeline_get_clock ()">gst_pipeline_get_clock</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
@@ -329,13 +337,15 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pipeline-get-clock"></a><h3>gst_pipeline_get_clock ()</h3>
+<a name="gst-pipeline-get-pipeline-clock"></a><h3>gst_pipeline_get_pipeline_clock ()</h3>
 <pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
-gst_pipeline_get_clock (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
+gst_pipeline_get_pipeline_clock (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
 <p>Gets the current clock used by <em class="parameter"><code>pipeline</code></em>
 .</p>
+<p>Unlike <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>, this function will always return a
+clock, even if the pipeline is not in the PLAYING state.</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -350,7 +360,40 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.37.10.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.37.10.5.7"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a>, unref after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-pipeline-get-clock"></a><h3>gst_pipeline_get_clock ()</h3>
+<pre class="programlisting"><a class="link" href="GstClock.html" title="GstClock"><span class="returnvalue">GstClock</span></a> *
+gst_pipeline_get_clock (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
+<p>Gets the current clock used by <em class="parameter"><code>pipeline</code></em>
+. Users of object
+oriented languages should use <a class="link" href="GstPipeline.html#gst-pipeline-get-pipeline-clock" title="gst_pipeline_get_pipeline_clock ()"><code class="function">gst_pipeline_get_pipeline_clock()</code></a>
+to avoid confusion with <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a> which has a different behavior.</p>
+<p>Unlike <a class="link" href="GstElement.html#gst-element-get-clock" title="gst_element_get_clock ()"><code class="function">gst_element_get_clock()</code></a>, this function will always return a
+clock, even if the pipeline is not in the PLAYING state.</p>
+<div class="refsect3">
+<a name="id-1.3.37.10.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pipeline</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.37.10.6.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a>, unref after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -371,7 +414,7 @@
 the pipeline run as fast as possible.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.6.7"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.7.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -406,7 +449,7 @@
 pipeline clock selection algorithm.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.7.7"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.8.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -439,7 +482,7 @@
 automatic flushing is disabled else memory leaks will be introduced.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.8.8"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.9.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -471,7 +514,7 @@
  will automatically flush messages when going to
 the NULL state.</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -486,7 +529,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.37.10.9.6"></a><h4>Returns</h4>
+<a name="id-1.3.37.10.10.6"></a><h4>Returns</h4>
 <p> whether the pipeline will automatically flush its bus when
 going from READY to NULL state or not.</p>
 <p>MT safe.</p>
@@ -510,7 +553,7 @@
 used.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.10.7"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.11.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -539,7 +582,7 @@
 gst_pipeline_get_delay (<em class="parameter"><code><a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> *pipeline</code></em>);</pre>
 <p>Get the configured delay (see <a class="link" href="GstPipeline.html#gst-pipeline-set-delay" title="gst_pipeline_set_delay ()"><code class="function">gst_pipeline_set_delay()</code></a>).</p>
 <div class="refsect3">
-<a name="id-1.3.37.10.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.37.10.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -554,7 +597,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.37.10.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.37.10.12.6"></a><h4>Returns</h4>
 <p> The configured delay.</p>
 <p>MT safe.</p>
 <p></p>
diff --git a/docs/gst/html/GstPreset.html b/docs/gst/html/GstPreset.html
index e438b53..7de79b0 100644
--- a/docs/gst/html/GstPreset.html
+++ b/docs/gst/html/GstPreset.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
 <link rel="prev" href="gstreamer-GstPoll.html" title="GstPoll">
-<link rel="next" href="GstQuery.html" title="GstQuery">
+<link rel="next" href="gstreamer-gstprotection.html" title="gstprotection">
 <meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,7 +21,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="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gstreamer-GstPoll.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="GstQuery.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gstreamer-gstprotection.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="GstPreset"></a><div class="titlepage"></div>
diff --git a/docs/gst/html/GstQuery.html b/docs/gst/html/GstQuery.html
index 02bf83c..9d5dd4c 100644
--- a/docs/gst/html/GstQuery.html
+++ b/docs/gst/html/GstQuery.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
-<link rel="prev" href="GstPreset.html" title="GstPreset">
+<link rel="prev" href="gstreamer-gstprotection.html" title="gstprotection">
 <link rel="next" href="GstRegistry.html" title="GstRegistry">
 <meta name="generator" content="GTK-Doc V1.21 (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="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="GstPreset.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gstreamer-gstprotection.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="GstRegistry.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -892,7 +892,7 @@
 <p>when making custom query types, use this macro with the num and
 the given flags</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -921,7 +921,7 @@
 </pre>
 <p>Get the <a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of the query.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -943,7 +943,7 @@
 </pre>
 <p>Get a constant string representation of the <a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> of the query.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -965,7 +965,7 @@
 </pre>
 <p>Check if an query can travel upstream.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -987,7 +987,7 @@
 </pre>
 <p>Check if an query can travel downstream.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1009,7 +1009,7 @@
 </pre>
 <p>Check if an query is serialized with the data stream.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1032,7 +1032,7 @@
 <p>Gets the <a class="link" href="GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a> associated with <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1047,7 +1047,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.8.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="GstQuery.html#GstQueryTypeFlags" title="enum GstQueryTypeFlags"><span class="type">GstQueryTypeFlags</span></a>.</p>
 <p></p>
 </div>
@@ -1059,7 +1059,7 @@
 gst_query_type_get_name (<em class="parameter"><code><a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
 <p>Get a printable name for the given query type. Do not modify or free.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1074,7 +1074,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.9.6"></a><h4>Returns</h4>
 <p> a reference to the static name of the query.</p>
 <p></p>
 </div>
@@ -1086,7 +1086,7 @@
 gst_query_type_to_quark (<em class="parameter"><code><a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> type</code></em>);</pre>
 <p>Get the unique quark for the given query type.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1101,7 +1101,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.10.6"></a><h4>Returns</h4>
 <p> the quark associated with the query type</p>
 <p></p>
 </div>
@@ -1113,7 +1113,7 @@
 gst_query_ref (<em class="parameter"><code><a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> *q</code></em>);</pre>
 <p>Increases the refcount of the given query by one.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1128,7 +1128,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.11.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>q</code></em>
 </p>
 <p></p>
@@ -1142,7 +1142,7 @@
 <p>Decreases the refcount of the query. If the refcount reaches 0, the query
 will be freed.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1165,7 +1165,7 @@
 <p>Copies the given query using the copy function of the parent <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.13.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.13.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1180,7 +1180,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.13.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.13.7"></a><h4>Returns</h4>
 <p> a new copy of <em class="parameter"><code>q</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1193,7 +1193,7 @@
 </pre>
 <p>Makes a writable query from the given query.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1208,7 +1208,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.14.6"></a><h4>Returns</h4>
 <p> a new writable query (possibly same as <em class="parameter"><code>q</code></em>
 ). </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1221,7 +1221,7 @@
 </pre>
 <p>Tests if you can safely write data into a query's structure.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1250,7 +1250,7 @@
  or the <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> pointed to by <em class="parameter"><code>old_query</code></em>
  may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.16.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.16.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1275,7 +1275,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.16.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.16.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>new_query</code></em>
 was different from <em class="parameter"><code>old_query</code></em>
 </p>
@@ -1291,7 +1291,7 @@
 <em class="parameter"><code>query</code></em>
  so that the returned structure is guaranteed to be writable.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1306,7 +1306,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.17.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.17.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> of the query. The structure is
 still owned by the query and will therefore be freed when the query
 is unreffed. </p>
@@ -1323,7 +1323,7 @@
 when done with it.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.18.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.18.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1345,7 +1345,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.18.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.18.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1357,7 +1357,7 @@
 gst_query_get_structure (<em class="parameter"><code><a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
 <p>Get the structure of a query.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1372,7 +1372,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.19.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> of the query. The structure is
 still owned by the query and will therefore be freed when the query
 is unreffed. </p>
@@ -1391,7 +1391,7 @@
 one format and another.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.20.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.20.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1418,7 +1418,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.20.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.20.7"></a><h4>Returns</h4>
 <p> a <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1434,7 +1434,7 @@
                        <em class="parameter"><code><span class="type">gint64</span> dest_value</code></em>);</pre>
 <p>Answer a convert query by setting the requested values.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1487,7 +1487,7 @@
 and <em class="parameter"><code>dest_value</code></em>
  may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, in which case that value is omitted.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1537,7 +1537,7 @@
 of playback in the streams, in some format.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.23.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.23.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1552,7 +1552,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.23.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.23.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1566,7 +1566,7 @@
                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>);</pre>
 <p>Answer a position query by setting the requested value in the given format.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1605,7 +1605,7 @@
 into <em class="parameter"><code>cur</code></em>
 , if the respective parameters are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1643,7 +1643,7 @@
 total length of the stream.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.26.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.26.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1658,7 +1658,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.26.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.26.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1672,7 +1672,7 @@
                         <em class="parameter"><code><span class="type">gint64</span> duration</code></em>);</pre>
 <p>Answer a duration query by setting the requested value in the given format.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1711,7 +1711,7 @@
 and the value into <em class="parameter"><code>duration</code></em>
 , if the respective variables are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1750,7 +1750,7 @@
 pipeline.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.29.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.29.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1765,7 +1765,7 @@
                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
 <p>Parse a latency query answer.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1807,7 +1807,7 @@
                        <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
 <p>Answer a latency query by setting the requested values in the given format.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1848,7 +1848,7 @@
 the stream.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.32.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.32.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1863,7 +1863,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.32.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.32.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1880,7 +1880,7 @@
 <p>Set the seeking query result fields in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1933,7 +1933,7 @@
 other results into the passed parameters, if the respective parameters
 are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p>
 <div class="refsect3">
-<a name="id-1.3.42.8.34.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1981,7 +1981,7 @@
 the stream.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.35.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.35.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1998,7 +1998,7 @@
 must be equal to <em class="parameter"><code>n_formats</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2040,7 +2040,7 @@
  array must be equal to <em class="parameter"><code>n_formats</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2078,7 +2078,7 @@
 <p>Parse the number of formats in the formats <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2115,7 +2115,7 @@
  will be
 set to GST_FORMAT_UNDEFINED.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2152,7 +2152,7 @@
 currently configured segment for playback.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.40.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.40.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2167,7 +2167,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.40.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.40.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -2200,7 +2200,7 @@
 <em class="parameter"><code>start_value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.41.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.41.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2256,7 +2256,7 @@
  may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, which will cause this value to be omitted.</p>
 <p>See <a class="link" href="GstQuery.html#gst-query-set-segment" title="gst_query_set_segment ()"><code class="function">gst_query_set_segment()</code></a> for an explanation of the function arguments.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.42.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.42.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2318,7 +2318,7 @@
 greatly reduce the amount of processing an element needs to do.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.43.9"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.43.9"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2333,7 +2333,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.43.10"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.43.10"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -2349,7 +2349,7 @@
 <em class="parameter"><code>query</code></em>
  remains valid.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.44.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2381,7 +2381,7 @@
  result in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.45.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2414,7 +2414,7 @@
 <em class="parameter"><code>query</code></em>
  remains valid.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.46.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2445,7 +2445,7 @@
  are accepted.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.47.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.47.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2460,7 +2460,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.47.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.47.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -2476,7 +2476,7 @@
  remains
 valid.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2508,7 +2508,7 @@
  as the result for the <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.49.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2540,7 +2540,7 @@
  and store in <em class="parameter"><code>result</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2571,7 +2571,7 @@
 a stream.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.51.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.51.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2586,7 +2586,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.51.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.51.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -2602,7 +2602,7 @@
 The <em class="parameter"><code>busy</code></em>
  indicator is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the buffering is in progress.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.52.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2640,7 +2640,7 @@
 The <em class="parameter"><code>busy</code></em>
  indicator is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the buffering is in progress.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.53.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.53.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2679,7 +2679,7 @@
 <p>Configures the buffering stats values in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.54.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2728,7 +2728,7 @@
 <p>Extracts the buffering stats values from <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.55.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2778,7 +2778,7 @@
 <p>Set the available query result fields in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.56.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2832,7 +2832,7 @@
 other results into the passed parameters, if the respective parameters
 are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p>
 <div class="refsect3">
-<a name="id-1.3.42.8.57.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.57.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2884,7 +2884,7 @@
 start position of the array should be inferior to <em class="parameter"><code>start</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.58.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.58.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2911,7 +2911,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.58.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.58.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the range was added or not.</p>
 <p></p>
 </div>
@@ -2924,7 +2924,7 @@
 <p>Retrieve the number of values currently stored in the
 buffered-ranges array of the query's structure.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.59.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.59.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2939,7 +2939,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.59.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.59.6"></a><h4>Returns</h4>
 <p> the range array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
 <p></p>
 </div>
@@ -2956,7 +2956,7 @@
 at the <em class="parameter"><code>index</code></em>
  of the buffered ranges array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.60.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.60.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2988,7 +2988,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.60.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.60.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the parsing succeeded.</p>
 <p></p>
 </div>
@@ -3003,7 +3003,7 @@
 that is used by the source or sink.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.61.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.61.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -3019,7 +3019,7 @@
 allocated string, if the respective parameters are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
 Free the string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.62.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.62.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3050,7 +3050,7 @@
                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Answer a URI query by setting the requested URI.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.63.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.63.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3083,7 +3083,7 @@
 allocated string, if the respective parameters are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
 Free the string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.64.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.64.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3115,7 +3115,7 @@
                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Answer a URI query by setting the requested URI redirection.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.65.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.65.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3151,7 +3151,7 @@
 applications should update their internal storage of the URI, otherwise
 they should make all future requests to the original URI.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.66.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.66.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3185,7 +3185,7 @@
 <p>Answer a URI query by setting the requested URI redirection
 to permanent or not.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.67.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.67.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3217,7 +3217,7 @@
 <p>Constructs a new query object for querying the allocation properties.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.68.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.68.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3239,7 +3239,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.68.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.68.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -3257,7 +3257,7 @@
 , if the respective parameters
 are non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.69.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.69.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3296,7 +3296,7 @@
 <p>Set the pool parameters in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.70.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.70.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3341,7 +3341,7 @@
 <p>Retrieve the number of values currently stored in the
 pool array of the query's structure.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.71.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.71.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3356,7 +3356,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.71.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.71.6"></a><h4>Returns</h4>
 <p> the pool array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
 <p></p>
 </div>
@@ -3376,7 +3376,7 @@
 <p>Unref <em class="parameter"><code>pool</code></em>
  with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> when it's not needed any more.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.72.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.72.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3431,7 +3431,7 @@
 <p>Set the pool parameters in <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.73.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.73.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3482,7 +3482,7 @@
 <p>Remove the allocation pool at <em class="parameter"><code>index</code></em>
  of the allocation pool array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.74.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.74.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3516,7 +3516,7 @@
  and its <em class="parameter"><code>params</code></em>
  as a supported memory allocator.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.75.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.75.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3555,7 +3555,7 @@
 should be generic and allow mapping to system memory, all following
 allocators should be ordered by preference with the preferred one first.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.76.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.76.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3570,7 +3570,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.76.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.76.7"></a><h4>Returns</h4>
 <p> the allocator array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
 <p></p>
 </div>
@@ -3587,7 +3587,7 @@
 at <em class="parameter"><code>index</code></em>
  of the allocator array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.77.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.77.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3631,7 +3631,7 @@
 at <em class="parameter"><code>index</code></em>
  of the allocator array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.78.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.78.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3672,7 +3672,7 @@
 <p>Remove the allocation param at <em class="parameter"><code>index</code></em>
  of the allocation param array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.79.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.79.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3707,7 +3707,7 @@
  as one of the supported metadata API to <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.80.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.80.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3742,7 +3742,7 @@
 <p>Retrieve the number of values currently stored in the
 meta API array of the query's structure.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.81.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.81.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3757,7 +3757,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.81.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.81.6"></a><h4>Returns</h4>
 <p> the metadata API array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
 <p></p>
 </div>
@@ -3773,7 +3773,7 @@
 at <em class="parameter"><code>index</code></em>
  of the metadata API array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.82.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.82.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3800,7 +3800,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.82.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.82.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of the metadata API at <em class="parameter"><code>index</code></em>
 .</p>
 <p></p>
@@ -3815,7 +3815,7 @@
 <p>Remove the metadata API at <em class="parameter"><code>index</code></em>
  of the metadata API array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.83.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.83.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3851,7 +3851,7 @@
  will contain the index where the requested API and the flags can be
 found.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.84.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.84.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3878,7 +3878,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.84.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.84.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>api</code></em>
 is in the list of metadata.</p>
 <p></p>
@@ -3892,7 +3892,7 @@
 <p>Constructs a new query object for querying the scheduling properties.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.85.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.85.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -3908,7 +3908,7 @@
                             <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *align</code></em>);</pre>
 <p>Set the scheduling properties.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.86.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.86.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3956,7 +3956,7 @@
                           <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> align</code></em>);</pre>
 <p>Set the scheduling properties.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.87.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.87.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4003,7 +4003,7 @@
  as one of the supported scheduling modes to <em class="parameter"><code>query</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.88.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.88.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4033,7 +4033,7 @@
 <p>Retrieve the number of values currently stored in the
 scheduling mode array of the query's structure.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.89.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.89.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4048,7 +4048,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.89.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.89.6"></a><h4>Returns</h4>
 <p> the scheduling mode array size as a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
 <p></p>
 </div>
@@ -4063,7 +4063,7 @@
 at <em class="parameter"><code>index</code></em>
  of the scheduling modes array.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.90.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.90.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4085,7 +4085,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.90.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.90.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> of the scheduling mode at <em class="parameter"><code>index</code></em>
 .</p>
 <p></p>
@@ -4107,7 +4107,7 @@
     random access is supported, not only sequential pulls).
   </p></div>
 <div class="refsect3">
-<a name="id-1.3.42.8.91.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.91.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4129,7 +4129,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.91.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.91.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>mode</code></em>
 is in the list of scheduling modes.</p>
 <p></p>
@@ -4148,7 +4148,7 @@
  is set in
 query scheduling flags.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.92.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.92.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4175,7 +4175,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.92.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.92.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>mode</code></em>
 is in the list of scheduling modes
 and <em class="parameter"><code>flags</code></em>
@@ -4191,7 +4191,7 @@
 <p>Constructs a new query object for querying the drain state.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.93.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.93.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -4204,7 +4204,7 @@
 <p>Constructs a new query object for querying the pipeline-local context.</p>
 <p>Free-function: gst_query_unref</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.94.6"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.94.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4219,7 +4219,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.94.7"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.94.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -4233,7 +4233,7 @@
                        <em class="parameter"><code><a class="link" href="GstContext.html" title="GstContext"><span class="type">GstContext</span></a> *context</code></em>);</pre>
 <p>Answer a context query by setting the requested context.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.95.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.95.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4267,7 +4267,7 @@
 <em class="parameter"><code>query</code></em>
  remains valid.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.96.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.96.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4298,7 +4298,7 @@
                               <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **context_type</code></em>);</pre>
 <p>Parse a context type from an existing GST_QUERY_CONTEXT query.</p>
 <div class="refsect3">
-<a name="id-1.3.42.8.97.5"></a><h4>Parameters</h4>
+<a name="id-1.3.43.8.97.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -4320,7 +4320,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.42.8.97.6"></a><h4>Returns</h4>
+<a name="id-1.3.43.8.97.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if the parsing succeeded.</p>
 <p></p>
 </div>
@@ -4339,7 +4339,7 @@
 </pre>
 <p>The <a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a> structure.</p>
 <div class="refsect3">
-<a name="id-1.3.42.9.2.5"></a><h4>Members</h4>
+<a name="id-1.3.43.9.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -4368,7 +4368,7 @@
 values. You can get the type flags of a <a class="link" href="GstQuery.html#GstQueryType" title="enum GstQueryType"><span class="type">GstQueryType</span></a> with the
 <a class="link" href="GstQuery.html#gst-query-type-get-flags" title="gst_query_type_get_flags ()"><code class="function">gst_query_type_get_flags()</code></a> function.</p>
 <div class="refsect3">
-<a name="id-1.3.42.9.3.4"></a><h4>Members</h4>
+<a name="id-1.3.43.9.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4413,7 +4413,7 @@
 <a name="GstQueryType"></a><h3>enum GstQueryType</h3>
 <p>Standard predefined Query types</p>
 <div class="refsect3">
-<a name="id-1.3.42.9.5.4"></a><h4>Members</h4>
+<a name="id-1.3.43.9.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4564,7 +4564,7 @@
 <a name="GstBufferingMode"></a><h3>enum GstBufferingMode</h3>
 <p>The different types of buffering methods.</p>
 <div class="refsect3">
-<a name="id-1.3.42.9.6.4"></a><h4>Members</h4>
+<a name="id-1.3.43.9.6.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -4609,7 +4609,7 @@
 <a name="GstSchedulingFlags"></a><h3>enum GstSchedulingFlags</h3>
 <p>The different scheduling flags.</p>
 <div class="refsect3">
-<a name="id-1.3.42.9.7.4"></a><h4>Members</h4>
+<a name="id-1.3.43.9.7.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/GstRegistry.html b/docs/gst/html/GstRegistry.html
index 2e8518d..b5e4575 100644
--- a/docs/gst/html/GstRegistry.html
+++ b/docs/gst/html/GstRegistry.html
@@ -312,7 +312,7 @@
 reference on the registry, as it is alive as long as GStreamer is
 initialized.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.2.5"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.2.5"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -326,7 +326,7 @@
 <p>Retrieves a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> of <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -348,7 +348,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.3.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.3.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> of <em class="parameter"><code>type</code></em>
 . Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after use</p>
@@ -364,7 +364,7 @@
 <p>Returns the registry's feature list cookie. This changes
 every time a feature is added or removed from the registry.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -379,7 +379,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.4.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.4.6"></a><h4>Returns</h4>
 <p> the feature list cookie.</p>
 <p></p>
 </div>
@@ -394,7 +394,7 @@
 <p>Retrieves a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of features of the plugin with name <em class="parameter"><code>name</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -416,7 +416,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.5.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>. Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.PluginFeature]</span></p>
@@ -430,7 +430,7 @@
 <p>Get a copy of all plugins registered in the given registry. The refcount
 of each element in the list in incremented.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -445,7 +445,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.6.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.6.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>.
 Use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after usage.</p>
 <p>MT safe. </p>
@@ -462,7 +462,7 @@
 This function will sink <em class="parameter"><code>plugin</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -484,7 +484,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.7.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.7.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p>MT safe.</p>
 <p></p>
@@ -499,7 +499,7 @@
 <p>Remove the plugin from the registry.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.8.6"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.8.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -535,7 +535,7 @@
 Every plugin is reffed; use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after use, which
 will unref again.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -567,7 +567,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.9.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.9.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>.
 Use <a class="link" href="GstPlugin.html#gst-plugin-list-free" title="gst_plugin_list_free ()"><code class="function">gst_plugin_list_free()</code></a> after usage.</p>
 <p>MT safe. </p>
@@ -587,7 +587,7 @@
 If the first flag is set, only the first match is
 returned (as a list with a single object).</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -619,7 +619,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.10.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.10.6"></a><h4>Returns</h4>
 <p> a <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
 <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a>. Use <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()"><code class="function">gst_plugin_feature_list_free()</code></a> after usage.</p>
 <p>MT safe. </p>
@@ -635,7 +635,7 @@
 <p>Find the plugin with the given name in the registry.
 The plugin will be reffed; caller is responsible for unreffing.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -657,7 +657,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.11.6"></a><h4>Returns</h4>
 <p> the plugin with the given name
 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after
 usage.</p>
@@ -674,7 +674,7 @@
                            <em class="parameter"><code><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
 <p>Find the pluginfeature with the given name and type in the registry.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -701,7 +701,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.12.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.12.6"></a><h4>Returns</h4>
 <p> the pluginfeature with the
 given name and type or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the plugin was not
 found. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
@@ -719,7 +719,7 @@
  in <em class="parameter"><code>registry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -741,7 +741,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.13.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.13.6"></a><h4>Returns</h4>
 <p> a <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> with its refcount incremented,
 use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage.</p>
 <p>MT safe. </p>
@@ -758,7 +758,7 @@
 path is specific to the registry. If the path has already been
 added, do nothing.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -787,7 +787,7 @@
 gst_registry_get_path_list (<em class="parameter"><code><a class="link" href="GstRegistry.html" title="GstRegistry"><span class="type">GstRegistry</span></a> *registry</code></em>);</pre>
 <p>Get the list of paths for the given registry.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -802,7 +802,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.15.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.15.6"></a><h4>Returns</h4>
 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of paths as
 strings. g_list_free after use.</p>
 <p>MT safe. </p>
@@ -818,7 +818,7 @@
 <p>Scan the given path for plugins to add to the registry. The syntax of the
 path is specific to the registry.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.16.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -840,7 +840,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.16.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.16.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if registry changed</p>
 <p></p>
 </div>
@@ -854,7 +854,7 @@
 <p>Look up a plugin in the given registry with the given filename.
 If found, plugin is reffed.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.17.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -876,7 +876,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.17.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.17.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> if found, or
 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not.  <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -891,7 +891,7 @@
 <p>Remove the feature from the registry.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.18.6"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.18.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -923,7 +923,7 @@
 This function sinks <em class="parameter"><code>feature</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -945,7 +945,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.19.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
 <p>MT safe.</p>
 <p></p>
@@ -965,7 +965,7 @@
  and whether its version is at least the
 version required.</p>
 <div class="refsect3">
-<a name="id-1.3.43.9.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.9.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1002,7 +1002,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.43.9.20.6"></a><h4>Returns</h4>
+<a name="id-1.3.44.9.20.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the feature could be found and the version is
 the same as the required version or newer, and <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
@@ -1028,7 +1028,7 @@
 <p>Signals that a feature has been added to the registry (possibly
 replacing a previously-added one by the same name)</p>
 <div class="refsect3">
-<a name="id-1.3.43.11.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.11.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1066,7 +1066,7 @@
 <p>Signals that a plugin has been added to the registry (possibly
 replacing a previously-added one by the same name)</p>
 <div class="refsect3">
-<a name="id-1.3.43.11.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.44.11.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/gst/html/GstSegment.html b/docs/gst/html/GstSegment.html
index bc20671..469b7bc 100644
--- a/docs/gst/html/GstSegment.html
+++ b/docs/gst/html/GstSegment.html
@@ -99,6 +99,14 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstSegment.html#gst-segment-to-running-time-full" title="gst_segment_to_running_time_full ()">gst_segment_to_running_time_full</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <span class="returnvalue">guint64</span>
 </td>
 <td class="function_name">
@@ -137,6 +145,14 @@
 <a class="link" href="GstSegment.html#gst-segment-offset-running-time" title="gst_segment_offset_running_time ()">gst_segment_offset_running_time</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstSegment.html#gst-segment-is-equal" title="gst_segment_is_equal ()">gst_segment_is_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -251,7 +267,7 @@
  will be set to the end of the
 segment. Depending on the use case, this may or may not be what you want.</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.2.8"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.2.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -293,7 +309,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.2.9"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.2.9"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given <em class="parameter"><code>start</code></em>
 and <em class="parameter"><code>stop</code></em>
 times fall partially or
@@ -315,7 +331,7 @@
 <p>Initialize <em class="parameter"><code>segment</code></em>
  to its default values.</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.3.6"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -346,7 +362,7 @@
 <a class="link" href="GstSegment.html#gst-segment-init" title="gst_segment_init ()"><code class="function">gst_segment_init()</code></a>.</p>
 <p>Free-function: gst_segment_free</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.4.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a>, free with <a class="link" href="GstSegment.html#gst-segment-free" title="gst_segment_free ()"><code class="function">gst_segment_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -360,7 +376,7 @@
 .</p>
 <p>Free-function: gst_segment_free</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.5.6"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -375,7 +391,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.5.7"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.5.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a>, free with <a class="link" href="GstSegment.html#gst-segment-free" title="gst_segment_free ()"><code class="function">gst_segment_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -388,7 +404,7 @@
 <p>Free the allocated segment <em class="parameter"><code>segment</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -457,7 +473,7 @@
 
 has been changed but not the playback position.</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.7.10"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.7.10"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -514,7 +530,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.7.11"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.7.11"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek could be performed.</p>
 <p></p>
 </div>
@@ -537,7 +553,7 @@
 <p>This function returns -1 if the position is outside of <em class="parameter"><code>segment</code></em>
  start and stop.</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.8.7"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.8.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -564,7 +580,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.8.8"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.8.8"></a><h4>Returns</h4>
 <p> the position as the total running time or -1 when an invalid position
 was given.</p>
 <p></p>
@@ -572,6 +588,69 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-segment-to-running-time-full"></a><h3>gst_segment_to_running_time_full ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
+gst_segment_to_running_time_full (<em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
+                                  <em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
+                                  <em class="parameter"><code><span class="type">guint64</span> position</code></em>,
+                                  <em class="parameter"><code><span class="type">guint64</span> *running_time</code></em>);</pre>
+<p>Translate <em class="parameter"><code>position</code></em>
+ to the total running time using the currently configured
+segment. Compared to <a class="link" href="GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()"><code class="function">gst_segment_to_running_time()</code></a> this function can return
+negative running-time.</p>
+<p>This function is typically used by elements that need to synchronize buffers
+against the clock or eachother.</p>
+<p><em class="parameter"><code>position</code></em>
+ can be any value and the result of this function for values outside
+of the segment is extrapolated.</p>
+<p>When 1 is returned, <em class="parameter"><code>position</code></em>
+ resulted in a positive running-time returned
+in <em class="parameter"><code>running_time</code></em>
+.</p>
+<p>When this function returns -1, the returned <em class="parameter"><code>running_time</code></em>
+ should be negated
+to get the real negative running time.</p>
+<div class="refsect3">
+<a name="id-1.3.45.8.9.9"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>segment</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of the segment.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>position</p></td>
+<td class="parameter_description"><p>the position in the segment</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>running_time</p></td>
+<td class="parameter_description"><p>result running-time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.45.8.9.10"></a><h4>Returns</h4>
+<p> a 1 or -1 on success, 0 on failure.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-segment-to-stream-time"></a><h3>gst_segment_to_stream_time ()</h3>
 <pre class="programlisting"><span class="returnvalue">guint64</span>
 gst_segment_to_stream_time (<em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>,
@@ -591,7 +670,7 @@
 The stream time is always between 0 and the total duration of the
 media stream.</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.9.6"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -618,7 +697,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.9.7"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.10.7"></a><h4>Returns</h4>
 <p> the position in stream_time or -1 when an invalid position
 was given.</p>
 <p></p>
@@ -636,7 +715,7 @@
 <a class="link" href="GstSegment.html#gst-segment-to-running-time" title="gst_segment_to_running_time ()"><code class="function">gst_segment_to_running_time()</code></a> with that position returns <em class="parameter"><code>running_time</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -663,7 +742,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.11.6"></a><h4>Returns</h4>
 <p> the position in the segment for <em class="parameter"><code>running_time</code></em>
 . This function returns
 -1 when <em class="parameter"><code>running_time</code></em>
@@ -684,7 +763,7 @@
 buffer will be one with <em class="parameter"><code>running_time</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -711,7 +790,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.12.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the segment could be updated successfully. If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is
 returned, <em class="parameter"><code>running_time</code></em>
 is -1 or not in <em class="parameter"><code>segment</code></em>
@@ -729,7 +808,7 @@
  into <em class="parameter"><code>dest</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -763,7 +842,7 @@
  is applied to all
 future running-time calculations.</p>
 <div class="refsect3">
-<a name="id-1.3.44.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.45.8.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -790,7 +869,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.44.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.3.45.8.14.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the segment could be updated successfully. If <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is
 returned, <em class="parameter"><code>offset</code></em>
 is not in <em class="parameter"><code>segment</code></em>
@@ -799,6 +878,43 @@
 </div>
 <p class="since">Since 1.2.3</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-segment-is-equal"></a><h3>gst_segment_is_equal ()</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_segment_is_equal (<em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *s0</code></em>,
+                      <em class="parameter"><code>const <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> *s1</code></em>);</pre>
+<p>Checks for two segments being equal. Equality here is defined
+as perfect equality, including floating point values.</p>
+<div class="refsect3">
+<a name="id-1.3.45.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>s0</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s1</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstSegment.html" title="GstSegment"><span class="type">GstSegment</span></a> structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.45.8.15.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the segments are equal, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GstSegment.other_details"></a><h2>Types and Values</h2>
@@ -824,7 +940,7 @@
 <p>A helper structure that holds the configured region of
 interest in a media file.</p>
 <div class="refsect3">
-<a name="id-1.3.44.9.2.5"></a><h4>Members</h4>
+<a name="id-1.3.45.9.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -881,7 +997,8 @@
 </tr>
 <tr>
 <td class="struct_member_name"><p><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment-struct.position"></a>position</code></em>;</p></td>
-<td class="struct_member_description"><p>the position in the segment</p></td>
+<td class="struct_member_description"><p>the position in the segment (used internally by elements
+such as sources, demuxers or parsers to track progress)</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
@@ -899,7 +1016,7 @@
 <p>Flags for the GstSegment structure. Currently mapped to the corresponding
 values of the seek flags.</p>
 <div class="refsect3">
-<a name="id-1.3.44.9.3.4"></a><h4>Members</h4>
+<a name="id-1.3.45.9.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/GstStructure.html b/docs/gst/html/GstStructure.html
index 9e1969a..7ea72ee 100644
--- a/docs/gst/html/GstStructure.html
+++ b/docs/gst/html/GstStructure.html
@@ -655,7 +655,7 @@
 not modify <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -682,7 +682,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.2.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.2.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the foreach operation should continue, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
 the foreach operation should stop with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
@@ -699,7 +699,7 @@
 may modify <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -726,7 +726,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.3.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the map operation should continue, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
 the map operation should stop with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
@@ -744,7 +744,7 @@
 , and the value will be removed from
 the structure if <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -771,7 +771,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.4.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the field should be preserved, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it
 should be removed.</p>
 <p></p>
@@ -788,7 +788,7 @@
  parameter.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.5.7"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.5.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -803,7 +803,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.5.8"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.5.8"></a><h4>Returns</h4>
 <p> a new, empty <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -816,7 +816,7 @@
 <p>Creates a new, empty <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> with the given name as a GQuark.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.6.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.6.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -831,7 +831,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.6.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.6.7"></a><h4>Returns</h4>
 <p> a new, empty <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -849,7 +849,7 @@
 and value.  Last variable argument should be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.7.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.7.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -876,7 +876,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.7.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.7.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -896,7 +896,7 @@
  parameter.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.8.7"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.8.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -923,7 +923,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.8.8"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.8.8"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -942,7 +942,7 @@
 <p>The last variable argument must be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> (or 0).</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.9.7"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.9.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -969,7 +969,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.9.8"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.9.8"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -986,7 +986,7 @@
 when there are nested <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> / <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> deeper than one level.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.10.7"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.10.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1001,7 +1001,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.10.8"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.10.8"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 when the string could not be parsed. Free with
 <a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
@@ -1017,7 +1017,7 @@
 <p>Duplicates a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> and all its fields and values.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.11.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1032,7 +1032,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.11.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.11.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1045,7 +1045,7 @@
 <p>Frees a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> and all its fields and values. The structure must not
 have a parent when this function is called.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1068,7 +1068,7 @@
 <p>Get the name of <em class="parameter"><code>structure</code></em>
  as a string.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1083,7 +1083,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.13.6"></a><h4>Returns</h4>
 <p> the name of the structure.</p>
 <p></p>
 </div>
@@ -1096,7 +1096,7 @@
                         <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>Checks if the structure has the given name</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1118,7 +1118,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.14.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.14.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>name</code></em>
 matches the name of the structure.</p>
 <p></p>
@@ -1135,7 +1135,7 @@
 provided is copied before being used. It must not be empty, start with a
 letter and can be followed by letters, numbers and any of "/-_.:".</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1165,7 +1165,7 @@
 <p>Get the name of <em class="parameter"><code>structure</code></em>
  as a GQuark.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1180,7 +1180,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.16.6"></a><h4>Returns</h4>
 <p> the quark representing the name of the structure.</p>
 <p></p>
 </div>
@@ -1207,7 +1207,7 @@
 strings and boxed types you will receive a copy which you will need to
 release with either <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> or the suitable function for the boxed type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.17.7"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.17.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1234,7 +1234,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.17.8"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.17.8"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields (e.g.
 because the field requested did not exist, or was of a type other
 than the type specified), otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
@@ -1253,7 +1253,7 @@
 valist-variant of <a class="link" href="GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()"><code class="function">gst_structure_id_get()</code></a>. Look at the documentation of
 <a class="link" href="GstStructure.html#gst-structure-id-get" title="gst_structure_id_get ()"><code class="function">gst_structure_id_get()</code></a> for more details.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1280,7 +1280,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.18.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.18.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields</p>
 <p></p>
 </div>
@@ -1294,7 +1294,7 @@
 <p>Get the value of the field with GQuark <em class="parameter"><code>field</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1316,7 +1316,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.19.6"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> corresponding to the field with the given name
 identifier.</p>
 <p></p>
@@ -1335,7 +1335,7 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1375,7 +1375,7 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1419,7 +1419,7 @@
 strings and boxed types you will receive a copy which you will need to
 release with either <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> or the suitable function for the boxed type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.22.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.22.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1446,7 +1446,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.22.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.22.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields (e.g.
 because the field requested did not exist, or was of a type other
 than the type specified), otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
@@ -1465,7 +1465,7 @@
 valist-variant of <a class="link" href="GstStructure.html#gst-structure-get" title="gst_structure_get ()"><code class="function">gst_structure_get()</code></a>. Look at the documentation of
 <a class="link" href="GstStructure.html#gst-structure-get" title="gst_structure_get ()"><code class="function">gst_structure_get()</code></a> for more details.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1492,7 +1492,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.23.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.23.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if there was a problem reading any of the fields</p>
 <p></p>
 </div>
@@ -1506,7 +1506,7 @@
 <p>Get the value of the field with name <em class="parameter"><code>fieldname</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.24.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1528,7 +1528,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.24.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.24.6"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> corresponding to the field with the given name.</p>
 <p></p>
 </div>
@@ -1546,7 +1546,7 @@
 does not exist, it is created.  If the field exists, the previous
 value is replaced and freed.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.25.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1587,7 +1587,7 @@
 value is replaced and freed. The function will take ownership of <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.26.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1625,7 +1625,7 @@
 Variable arguments should be in the form field name, field type
 (as a GType), value(s).  The last variable argument should be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1661,7 +1661,7 @@
                           <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
 <p>va_list form of <a class="link" href="GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.28.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1701,7 +1701,7 @@
 quark values.
 The last variable argument must be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1737,7 +1737,7 @@
                              <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
 <p>va_list form of <a class="link" href="GstStructure.html#gst-structure-id-set" title="gst_structure_id_set ()"><code class="function">gst_structure_id_set()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.30.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1773,7 +1773,7 @@
 <p>Removes the field with the given name.  If the field with the given
 name does not exist, the structure is unchanged.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1805,7 +1805,7 @@
 <p>Removes the fields with the given names. If a field does not exist, the
 argument is ignored.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1841,7 +1841,7 @@
                                     <em class="parameter"><code><span class="type">va_list</span> varargs</code></em>);</pre>
 <p>va_list form of <a class="link" href="GstStructure.html#gst-structure-remove-fields" title="gst_structure_remove_fields ()"><code class="function">gst_structure_remove_fields()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1875,7 +1875,7 @@
 gst_structure_remove_all_fields (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
 <p>Removes all fields in a GstStructure.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.34.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1900,7 +1900,7 @@
 value it contains.  If the field is not found, G_TYPE_INVALID is
 returned.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1922,7 +1922,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.35.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.35.6"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of the field</p>
 <p></p>
 </div>
@@ -1934,7 +1934,7 @@
 gst_structure_n_fields (<em class="parameter"><code>const <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure</code></em>);</pre>
 <p>Get the number of fields in the structure.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1949,7 +1949,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.36.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.36.6"></a><h4>Returns</h4>
 <p> the number of fields in the structure</p>
 <p></p>
 </div>
@@ -1964,7 +1964,7 @@
  contains a field named <em class="parameter"><code>fieldname</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1986,7 +1986,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.37.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.37.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name</p>
 <p></p>
 </div>
@@ -2003,7 +2003,7 @@
  and with GType <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2030,7 +2030,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.38.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.38.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name and type</p>
 <p></p>
 </div>
@@ -2043,7 +2043,7 @@
                         <em class="parameter"><code>const <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *structure2</code></em>);</pre>
 <p>Tests if the two <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> are equal.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2065,7 +2065,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.39.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.39.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the two structures have the same name and field.</p>
 <p></p>
 </div>
@@ -2085,7 +2085,7 @@
  has a value that is a subset of the value in <em class="parameter"><code>superset</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.40.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2107,7 +2107,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.40.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.40.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>subset</code></em>
 is a subset of <em class="parameter"><code>superset</code></em>
 </p>
@@ -2125,7 +2125,7 @@
  and reports whether the result
 would not be empty.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.41.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2147,7 +2147,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.41.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.41.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if intersection would not be empty</p>
 <p></p>
 </div>
@@ -2162,7 +2162,7 @@
  and <em class="parameter"><code>struct2</code></em>
  and returns the intersection.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.42.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2184,7 +2184,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.42.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.42.6"></a><h4>Returns</h4>
 <p> Intersection of <em class="parameter"><code>struct1</code></em>
 and <em class="parameter"><code>struct2</code></em>
 </p>
@@ -2201,7 +2201,7 @@
  contains a field named <em class="parameter"><code>field</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.43.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2223,7 +2223,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.43.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.43.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name</p>
 <p></p>
 </div>
@@ -2240,7 +2240,7 @@
  and with GType <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.44.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2267,7 +2267,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.44.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.44.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure contains a field with the given name and type</p>
 <p></p>
 </div>
@@ -2284,7 +2284,7 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.45.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2311,7 +2311,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.45.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.45.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a boolean, this
@@ -2331,7 +2331,7 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.46.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2358,7 +2358,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.46.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.46.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain an int, this function
@@ -2378,7 +2378,7 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.47.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2405,7 +2405,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.47.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.47.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a uint, this function
@@ -2425,7 +2425,7 @@
 given field. Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2452,7 +2452,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.48.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.48.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a <span class="type">gint64</span>, this function
@@ -2473,7 +2473,7 @@
 given field. Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.49.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2500,7 +2500,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.49.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.49.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a <span class="type">guint64</span>, this function
@@ -2521,7 +2521,7 @@
 given field.  Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2548,7 +2548,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.50.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.50.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a double, this
@@ -2569,7 +2569,7 @@
 <p>The string should not be modified, and remains valid until the next
 call to a gst_structure_*() function with the given structure.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.51.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.51.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2591,7 +2591,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.51.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.51.7"></a><h4>Returns</h4>
 <p> a pointer to the string or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when the
 field did not exist or did not contain a string. </p>
 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -2614,7 +2614,7 @@
 inconsistent with e.g. <a class="link" href="GstStructure.html#gst-structure-get-string" title="gst_structure_get_string ()"><code class="function">gst_structure_get_string()</code></a> which doesn't return a
 copy of the string).</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.52.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.52.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2641,7 +2641,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.52.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.52.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a data, this function
@@ -2666,7 +2666,7 @@
 (note: this is inconsistent with e.g. <a class="link" href="GstStructure.html#gst-structure-get-string" title="gst_structure_get_string ()"><code class="function">gst_structure_get_string()</code></a>
 which doesn't return a copy of the string).</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.53.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.53.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2693,7 +2693,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.53.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.53.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a data, this function
@@ -2713,7 +2713,7 @@
 of the given field.  Caller is responsible for making sure the field exists
 and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.54.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2740,7 +2740,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.54.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.54.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>, this
@@ -2761,7 +2761,7 @@
 given field.  Caller is responsible for making sure the field exists,
 has the correct type and that the enumtype is correct.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.55.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2793,7 +2793,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.55.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.55.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the value could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain an enum of the given
@@ -2815,7 +2815,7 @@
 corresponding to the value of the given field.  Caller is responsible
 for making sure the field exists and has the correct type.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.56.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2847,7 +2847,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.56.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.56.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values could be set correctly. If there was no field
 with <em class="parameter"><code>fieldname</code></em>
 or the existing field did not contain a GstFraction, this
@@ -2866,7 +2866,7 @@
 function must not modify the fields. Also see <a class="link" href="GstStructure.html#gst-structure-map-in-place" title="gst_structure_map_in_place ()"><code class="function">gst_structure_map_in_place()</code></a>
 and <a class="link" href="GstStructure.html#gst-structure-filter-and-map-in-place" title="gst_structure_filter_and_map_in_place ()"><code class="function">gst_structure_filter_and_map_in_place()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.57.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.57.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2893,7 +2893,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.57.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.57.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the supplied function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> For each of the fields,
 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
@@ -2910,7 +2910,7 @@
 contrast to <a class="link" href="GstStructure.html#gst-structure-foreach" title="gst_structure_foreach ()"><code class="function">gst_structure_foreach()</code></a>, the function may modify but not delete the
 fields. The structure must be mutable.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.58.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.58.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2937,7 +2937,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.58.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.58.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the supplied function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> For each of the fields,
 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
@@ -2956,7 +2956,7 @@
 the structure if <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned from the function.
 The structure must be mutable.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.59.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.59.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2992,7 +2992,7 @@
                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
 <p>Get the name of the given field number, counting from 0 onwards.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.60.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.60.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3014,7 +3014,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.60.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.60.6"></a><h4>Returns</h4>
 <p> the name of the given field number</p>
 <p></p>
 </div>
@@ -3030,7 +3030,7 @@
 called by code implementing parent objects of <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a>, as described in
 the MT Refcounting section of the design documents.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.61.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.61.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3052,7 +3052,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.61.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.61.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the parent refcount could be set.</p>
 <p></p>
 </div>
@@ -3082,7 +3082,7 @@
 when there are nested <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> / <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> deeper than one level.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.62.10"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.62.10"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3097,7 +3097,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.62.11"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.62.11"></a><h4>Returns</h4>
 <p> a pointer to string allocated by <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-malloc"><code class="function">g_malloc()</code></a>.
 <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -3114,7 +3114,7 @@
 where parsing ended will be returned.</p>
 <p>Free-function: gst_structure_free</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.63.6"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.63.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3136,7 +3136,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.63.7"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.63.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 when the string could not be parsed. Free with
 <a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after use. </p>
@@ -3153,7 +3153,7 @@
 <em class="parameter"><code>structure</code></em>
  will be modified in-place and should be writable.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.64.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.64.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3176,7 +3176,7 @@
                             <em class="parameter"><code>const <span class="type">char</span> *field_name</code></em>);</pre>
 <p>Fixates a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> by changing the given field with its fixated value.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.65.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.65.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3199,7 +3199,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.65.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.65.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure field could be fixated</p>
 <p></p>
 </div>
@@ -3216,7 +3216,7 @@
 integer to <em class="parameter"><code>target</code></em>
  that is a subset of the existing field.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.66.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.66.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3244,7 +3244,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.66.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.66.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
 <p></p>
 </div>
@@ -3261,7 +3261,7 @@
 double to <em class="parameter"><code>target</code></em>
  that is a subset of the existing field.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.67.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.67.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3289,7 +3289,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.67.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.67.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
 <p></p>
 </div>
@@ -3309,7 +3309,7 @@
  that is a subset
 of the existing field.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.68.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.68.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3342,7 +3342,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.68.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.68.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
 <p></p>
 </div>
@@ -3359,7 +3359,7 @@
 <em class="parameter"><code>target</code></em>
  boolean if that field is not fixed yet.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.69.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.69.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3387,7 +3387,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.69.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.69.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
 <p></p>
 </div>
@@ -3404,7 +3404,7 @@
 <em class="parameter"><code>target</code></em>
  string if that field is not fixed yet.</p>
 <div class="refsect3">
-<a name="id-1.3.45.8.70.5"></a><h4>Parameters</h4>
+<a name="id-1.3.46.8.70.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3432,7 +3432,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.45.8.70.6"></a><h4>Returns</h4>
+<a name="id-1.3.46.8.70.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the structure could be fixated</p>
 <p></p>
 </div>
@@ -3448,7 +3448,7 @@
 </pre>
 <p>The GstStructure object. Most fields are private.</p>
 <div class="refsect3">
-<a name="id-1.3.45.9.2.5"></a><h4>Members</h4>
+<a name="id-1.3.46.9.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
diff --git a/docs/gst/html/GstSystemClock.html b/docs/gst/html/GstSystemClock.html
index 8f07db0..544d5d9 100644
--- a/docs/gst/html/GstSystemClock.html
+++ b/docs/gst/html/GstSystemClock.html
@@ -128,7 +128,7 @@
 clock will be increased so you need to unref the clock after
 usage.</p>
 <div class="refsect3">
-<a name="id-1.3.46.9.2.5"></a><h4>Returns</h4>
+<a name="id-1.3.47.9.2.5"></a><h4>Returns</h4>
 <p> the default clock.</p>
 <p>MT safe. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -146,7 +146,7 @@
 clock.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.46.9.3.7"></a><h4>Parameters</h4>
+<a name="id-1.3.47.9.3.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -169,7 +169,7 @@
 <a name="GstClockType"></a><h3>enum GstClockType</h3>
 <p>The different kind of clocks.</p>
 <div class="refsect3">
-<a name="id-1.3.46.10.2.4"></a><h4>Members</h4>
+<a name="id-1.3.47.10.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/GstTagList.html b/docs/gst/html/GstTagList.html
index 1420daa..6cb6943 100644
--- a/docs/gst/html/GstTagList.html
+++ b/docs/gst/html/GstTagList.html
@@ -948,7 +948,7 @@
 <p>A function that will be called in <a class="link" href="GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()"><code class="function">gst_tag_list_foreach()</code></a>. The function may
 not modify the tag list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -985,7 +985,7 @@
 <p>A function for merging multiple values of a tag used when registering
 tags.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1036,7 +1036,7 @@
 <p>Two default merge functions are provided: <a class="link" href="GstTagList.html#gst-tag-merge-use-first" title="gst_tag_merge_use_first ()"><code class="function">gst_tag_merge_use_first()</code></a> and
 <a class="link" href="GstTagList.html#gst-tag-merge-strings-with-comma" title="gst_tag_merge_strings_with_comma ()"><code class="function">gst_tag_merge_strings_with_comma()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.4.8"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.4.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1097,7 +1097,7 @@
 plugins will be made resident once loaded, so this function can be used
 even from dynamically loaded plugins.)</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.5.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.5.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1148,7 +1148,7 @@
 <p>This is a convenience function for the func argument of <a class="link" href="GstTagList.html#gst-tag-register" title="gst_tag_register ()"><code class="function">gst_tag_register()</code></a>.
 It creates a copy of the first value from the list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1180,7 +1180,7 @@
 It concatenates all given strings using a comma. The tag must be registered
 as a G_TYPE_STRING or this function will fail.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1209,7 +1209,7 @@
 gst_tag_exists (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>Checks if the given type is already registered.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1224,7 +1224,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.8.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.8.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the type is already registered</p>
 <p></p>
 </div>
@@ -1236,7 +1236,7 @@
 gst_tag_get_type (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>Gets the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> used for this tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1251,7 +1251,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.9.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.9.6"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of this tag</p>
 <p></p>
 </div>
@@ -1264,7 +1264,7 @@
 <p>Returns the human-readable name of this tag, You must not change or free
 this string.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1279,7 +1279,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.10.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.10.6"></a><h4>Returns</h4>
 <p> the human-readable name of this tag</p>
 <p></p>
 </div>
@@ -1292,7 +1292,7 @@
 <p>Returns the human-readable description of this tag, You must not change or
 free this string.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1307,7 +1307,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.11.6"></a><h4>Returns</h4>
 <p> the human-readable description of this tag</p>
 <p></p>
 </div>
@@ -1320,7 +1320,7 @@
 <p>Gets the flag of <em class="parameter"><code>tag</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1335,7 +1335,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.12.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.12.6"></a><h4>Returns</h4>
 <p> the flag of this tag.</p>
 <p></p>
 </div>
@@ -1348,7 +1348,7 @@
 <p>Checks if the given tag is fixed. A fixed tag can only contain one value.
 Unfixed tags can contain lists of values.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1363,7 +1363,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.13.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.13.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the given tag is fixed.</p>
 <p></p>
 </div>
@@ -1386,7 +1386,7 @@
 default stream scope is assumes. See <a class="link" href="GstTagList.html#gst-tag-list-set-scope" title="gst_tag_list_set_scope ()"><code class="function">gst_tag_list_set_scope()</code></a>.</p>
 <p>Free-function: gst_tag_list_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.14.7"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.14.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1408,7 +1408,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.14.8"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.14.8"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a>
 when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1422,7 +1422,7 @@
 <p>Creates a new empty GstTagList.</p>
 <p>Free-function: gst_tag_list_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.15.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.15.6"></a><h4>Returns</h4>
 <p> An empty tag list. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -1436,7 +1436,7 @@
 Useful mostly for language bindings.</p>
 <p>Free-function: gst_tag_list_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.16.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.16.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1451,7 +1451,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.16.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.16.7"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a>
 when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1464,7 +1464,7 @@
 gst_tag_list_new_from_string (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);</pre>
 <p>Deserializes a tag list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.17.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1479,7 +1479,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.17.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.17.6"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of an
 error. </p>
 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -1500,7 +1500,7 @@
 <p>Gets the scope of <em class="parameter"><code>list</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1515,7 +1515,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.19.6"></a><h4>Returns</h4>
 <p> The scope of <em class="parameter"><code>list</code></em>
 </p>
 <p></p>
@@ -1532,7 +1532,7 @@
 . By default the scope
 of a taglist is stream scope.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1562,7 +1562,7 @@
 gst_tag_list_to_string (<em class="parameter"><code>const <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
 <p>Serializes a tag list to a string.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1577,7 +1577,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.21.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.21.6"></a><h4>Returns</h4>
 <p> a newly-allocated string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in case of
 an error. The string must be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer
 needed. </p>
@@ -1591,7 +1591,7 @@
 gst_tag_list_is_empty (<em class="parameter"><code>const <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
 <p>Checks if the given taglist is empty.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.22.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1606,7 +1606,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.22.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.22.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the taglist is empty, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
@@ -1619,7 +1619,7 @@
                        <em class="parameter"><code>const <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
 <p>Checks if the two given taglists are equal.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.23.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1641,7 +1641,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.23.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.23.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the taglists are equal, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
 </div>
@@ -1660,7 +1660,7 @@
 reference to the data, you should use <a class="link" href="GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>.</p>
 <p>When you are finished with the taglist, call <a class="link" href="GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a> on it.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.24.7"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.24.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1675,7 +1675,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.24.8"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.24.8"></a><h4>Returns</h4>
 <p> the new <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a></p>
 <p></p>
 </div>
@@ -1692,7 +1692,7 @@
 it -- either the one made implicitly by e.g. <a class="link" href="GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()"><code class="function">gst_tag_list_new()</code></a>, or via
 taking one explicitly with this function.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.25.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.25.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1707,7 +1707,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.25.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.25.7"></a><h4>Returns</h4>
 <p> the same <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> mini object.</p>
 <p></p>
 </div>
@@ -1719,7 +1719,7 @@
 gst_tag_list_unref (<em class="parameter"><code><a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
 <p>Unref a <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a>, and and free all its memory when the refcount reaches 0.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.26.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1743,7 +1743,7 @@
 . It is only safe to modify taglist
 when there is only one owner of the taglist - ie, the refcount is 1.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1778,7 +1778,7 @@
 taglist that it returns. Don't access the argument after calling this
 function. See also: <a class="link" href="GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.28.7"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.28.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1793,7 +1793,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.28.8"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.28.8"></a><h4>Returns</h4>
 <p> a writable taglist which may or may not be the
 same as <em class="parameter"><code>taglist</code></em>
 . </p>
@@ -1810,7 +1810,7 @@
 <p>Inserts the tags of the <em class="parameter"><code>from</code></em>
  list into the first list using the given mode.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.29.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1848,7 +1848,7 @@
 copy of the other is returned. If both lists are <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p>
 <p>Free-function: gst_tag_list_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.30.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.30.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1875,7 +1875,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.30.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.30.7"></a><h4>Returns</h4>
 <p> the new list. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
 </div>
@@ -1888,7 +1888,7 @@
                            <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>Checks how many value are stored in this tag list for the given tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.31.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1910,7 +1910,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.31.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.31.6"></a><h4>Returns</h4>
 <p> The number of tags stored</p>
 <p></p>
 </div>
@@ -1923,7 +1923,7 @@
 <p>Get the number of tags in <em class="parameter"><code>list</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.32.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1938,7 +1938,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.32.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.32.6"></a><h4>Returns</h4>
 <p> The number of tags in <em class="parameter"><code>list</code></em>
 .</p>
 <p></p>
@@ -1954,7 +1954,7 @@
  at <em class="parameter"><code>index</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.33.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1976,7 +1976,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.33.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.33.6"></a><h4>Returns</h4>
 <p> The name of the tag at <em class="parameter"><code>index</code></em>
 .</p>
 <p></p>
@@ -1992,7 +1992,7 @@
                   <em class="parameter"><code>...</code></em>);</pre>
 <p>Sets the values for the given tags using the specified mode.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.34.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2034,7 +2034,7 @@
                         <em class="parameter"><code>const <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>Sets the GValue for a given tag using the specified mode.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.35.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2076,7 +2076,7 @@
                          <em class="parameter"><code>...</code></em>);</pre>
 <p>Sets the GValues for the given tags using the specified mode.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.36.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2118,7 +2118,7 @@
                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>Sets the values for the given tags using the specified mode.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2160,7 +2160,7 @@
                                 <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>Sets the GValues for the given tags using the specified mode.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.38.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2200,7 +2200,7 @@
                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
 <p>Removes the given tag from the taglist.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.39.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2232,7 +2232,7 @@
 <p>Calls the given function for each tag inside the tag list. Note that if there
 is no tag, the function won't be called at all.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.40.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2269,7 +2269,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.41.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2296,7 +2296,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.41.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.41.6"></a><h4>Returns</h4>
 <p> The GValue for the specified
 entry or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the tag wasn't available or the tag
 doesn't have as many entries. </p>
@@ -2315,7 +2315,7 @@
 with the tag.
 You must <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a> the value after use.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.42.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2342,7 +2342,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.42.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.42.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2358,7 +2358,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.43.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2385,7 +2385,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.43.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.43.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2402,7 +2402,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.44.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2434,7 +2434,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.44.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.44.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2450,7 +2450,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.45.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2477,7 +2477,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.45.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.45.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2494,7 +2494,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.46.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2526,7 +2526,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.46.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.46.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2542,7 +2542,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.47.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2569,7 +2569,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.47.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.47.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2586,7 +2586,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.48.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2618,7 +2618,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.48.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.48.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2643,7 +2643,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.50.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2675,7 +2675,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.50.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.50.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2691,7 +2691,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.51.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2718,7 +2718,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.51.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.51.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2735,7 +2735,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.52.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2767,7 +2767,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.52.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.52.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2783,7 +2783,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.53.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.53.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2810,7 +2810,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.53.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.53.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2827,7 +2827,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.54.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2859,7 +2859,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.54.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.54.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2875,7 +2875,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.55.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2902,7 +2902,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.55.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.55.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2919,7 +2919,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.56.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2951,7 +2951,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.56.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.56.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -2974,7 +2974,7 @@
 returned string is also guaranteed to be non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and non-empty.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.57.8"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.57.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3001,7 +3001,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.57.9"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.57.9"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -3023,7 +3023,7 @@
 returned string is also guaranteed to be non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and non-empty.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.58.7"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.58.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3055,7 +3055,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.58.8"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.58.8"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -3076,7 +3076,7 @@
 to be freed by the caller. The returned string is also guaranteed to
 be non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and non-empty.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.59.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.59.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3108,7 +3108,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.59.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.59.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was set, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -3124,7 +3124,7 @@
 <p>Copies the contents for the given tag into the value, merging multiple values
 into one if multiple values are associated with the tag.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.60.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.60.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3151,7 +3151,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.60.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.60.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -3168,7 +3168,7 @@
 <p>Gets the value that is at the given index for the given tag in the given
 list.</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.61.5"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.61.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3200,7 +3200,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.61.6"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.61.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list.</p>
 <p></p>
@@ -3219,7 +3219,7 @@
 needed.</p>
 <p>Free-function: g_date_free</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.62.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.62.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3247,7 +3247,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.62.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.62.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a date was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
@@ -3267,7 +3267,7 @@
 with <a href="https://developer.gnome.org/glib/unstable/glib-Date-and-Time-Functions.html#g-date-free"><code class="function">g_date_free()</code></a> when it is no longer needed.</p>
 <p>Free-function: g_date_free</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.63.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.63.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3299,7 +3299,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.63.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.63.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
@@ -3318,7 +3318,7 @@
 it is no longer needed.</p>
 <p>Free-function: gst_date_time_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.64.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.64.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3346,7 +3346,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.64.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.64.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a datetime was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in
 the given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
@@ -3366,7 +3366,7 @@
 with <a class="link" href="GstDateTime.html#gst-date-time-unref" title="gst_date_time_unref ()"><code class="function">gst_date_time_unref()</code></a> when it is no longer needed.</p>
 <p>Free-function: gst_date_time_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.65.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.65.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3398,7 +3398,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.65.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.65.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a value was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
@@ -3419,7 +3419,7 @@
 <a class="link" href="GstSample.html#gst-sample-get-caps" title="gst_sample_get_caps ()"><code class="function">gst_sample_get_caps()</code></a>.</p>
 <p>Free-function: gst_sample_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.66.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.66.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3447,7 +3447,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.66.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.66.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a sample was returned, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in
 the given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
@@ -3469,7 +3469,7 @@
 caps (if any) with <a class="link" href="GstSample.html#gst-sample-get-caps" title="gst_sample_get_caps ()"><code class="function">gst_sample_get_caps()</code></a>.</p>
 <p>Free-function: gst_sample_unref</p>
 <div class="refsect3">
-<a name="id-1.3.47.8.67.6"></a><h4>Parameters</h4>
+<a name="id-1.3.48.8.67.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3502,7 +3502,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.47.8.67.7"></a><h4>Returns</h4>
+<a name="id-1.3.48.8.67.7"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if a sample was copied, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the tag didn't exist in the
 given list or if it was <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
@@ -3519,7 +3519,7 @@
 </pre>
 <p>Object describing tags / metadata.</p>
 <div class="refsect3">
-<a name="id-1.3.47.9.2.5"></a><h4>Members</h4>
+<a name="id-1.3.48.9.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -3545,7 +3545,7 @@
 In the table below this is shown for the cases that a tag exists in the list
 (A) or does not exists (!A) and combinations thereof.</p>
 <div class="table">
-<a name="id-1.3.47.9.3.4"></a><p class="title"><b>Table 1. merge mode</b></p>
+<a name="id-1.3.48.9.3.4"></a><p class="title"><b>Table 1. merge mode</b></p>
 <div class="table-contents"><table summary="merge mode" border="1">
 <colgroup>
 <col>
@@ -3608,7 +3608,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="refsect3">
-<a name="id-1.3.47.9.3.5"></a><h4>Members</h4>
+<a name="id-1.3.48.9.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -3681,7 +3681,7 @@
 <a name="GstTagFlag"></a><h3>enum GstTagFlag</h3>
 <p>Extra tag flags used when registering tags.</p>
 <div class="refsect3">
-<a name="id-1.3.47.9.4.4"></a><h4>Members</h4>
+<a name="id-1.3.48.9.4.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -3734,7 +3734,7 @@
 <p>GstTagScope specifies if a taglist applies to the complete
 medium or only to one single stream.</p>
 <div class="refsect3">
-<a name="id-1.3.47.9.5.4"></a><h4>Members</h4>
+<a name="id-1.3.48.9.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index 4395582..a5b21a5 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -235,7 +235,7 @@
 <p>Reset the internal taglist. Elements should call this from within the
 state-change handler.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -259,7 +259,7 @@
                            <em class="parameter"><code><a class="link" href="GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
 <p>Merges the given list into the setter's list using the given mode.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -297,7 +297,7 @@
 <p>Adds the given tag / value pairs on the setter using the given merge mode.
 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -339,7 +339,7 @@
                               <em class="parameter"><code>const <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>Adds the given tag / GValue pair on the setter using the given merge mode.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -382,7 +382,7 @@
 <p>Adds the given tag / GValue pairs on the setter using the given merge mode.
 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -425,7 +425,7 @@
 <p>Adds the given tag / value pairs on the setter using the given merge mode.
 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -468,7 +468,7 @@
 <p>Adds the given tag / GValue pairs on the setter using the given merge mode.
 The list must be terminated with <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -509,7 +509,7 @@
 modified or freed.</p>
 <p>This function is not thread-safe.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.9.6"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -524,7 +524,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.48.9.9.7"></a><h4>Returns</h4>
+<a name="id-1.3.49.9.9.7"></a><h4>Returns</h4>
 <p> a current snapshot of the
 taglist used in the setter or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is used. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -540,7 +540,7 @@
 specified by this interface. The default is <a class="link" href="GstTagList.html#GST-TAG-MERGE-KEEP:CAPS"><span class="type">GST_TAG_MERGE_KEEP</span></a>, which keeps
 the tags set with this interface and discards tags from events.</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -570,7 +570,7 @@
 <p>Queries the mode by which tags inside the setter are overwritten by tags
 from events</p>
 <div class="refsect3">
-<a name="id-1.3.48.9.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.49.9.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -585,7 +585,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.48.9.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.49.9.11.6"></a><h4>Returns</h4>
 <p> the merge mode used inside the element.</p>
 <p></p>
 </div>
@@ -611,7 +611,7 @@
 </pre>
 <p><a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface"><span class="type">GstTagSetterInterface</span></a> interface.</p>
 <div class="refsect3">
-<a name="id-1.3.48.10.3.5"></a><h4>Members</h4>
+<a name="id-1.3.49.10.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
diff --git a/docs/gst/html/GstTask.html b/docs/gst/html/GstTask.html
index 2712f14..c903e81 100644
--- a/docs/gst/html/GstTask.html
+++ b/docs/gst/html/GstTask.html
@@ -273,7 +273,7 @@
 <p>A function that will repeatedly be called in the thread created by
 a <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -295,7 +295,7 @@
 </pre>
 <p>Send a broadcast signal to all waiting task conds</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -317,7 +317,7 @@
 </pre>
 <p>Get access to the cond of the task.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -339,7 +339,7 @@
 </pre>
 <p>Get access to the task lock.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -361,7 +361,7 @@
 </pre>
 <p>Signal the task cond</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -383,7 +383,7 @@
 </pre>
 <p>Get access to the state of the task.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -405,7 +405,7 @@
 </pre>
 <p>Wait for the task cond to be signalled</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -441,7 +441,7 @@
 <em class="parameter"><code>func</code></em>
  is called.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.9.8"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.9.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -470,7 +470,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.9.9"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.9.9"></a><h4>Returns</h4>
 <p> A new <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.</p>
 <p>MT safe. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -488,7 +488,7 @@
 <a class="link" href="GstTask.html#gst-task-start" title="gst_task_start ()"><code class="function">gst_task_start()</code></a>.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.10.7"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.10.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -524,7 +524,7 @@
 .</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.11.6"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -555,7 +555,7 @@
 threads.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.12.6"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -570,7 +570,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.12.7"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.12.7"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> used by <em class="parameter"><code>task</code></em>
 . <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>
 after usage. </p>
@@ -586,7 +586,7 @@
                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Custom GstTask thread callback functions that can be installed.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -631,7 +631,7 @@
  is no
 longer referenced.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -683,7 +683,7 @@
  is no
 longer referenced.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -724,7 +724,7 @@
 gst_task_get_state (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);</pre>
 <p>Get the current state of the task.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.16.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -739,7 +739,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.16.6"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.16.6"></a><h4>Returns</h4>
 <p> The <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="type">GstTaskState</span></a> of the task</p>
 <p>MT safe.</p>
 <p></p>
@@ -760,7 +760,7 @@
 this function will return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.17.7"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.17.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -782,7 +782,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.17.8"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.17.8"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the state could be changed.</p>
 <p></p>
 </div>
@@ -798,7 +798,7 @@
 in the paused state. This function does not wait for the task to complete
 the paused state.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.18.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -813,7 +813,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.18.6"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.18.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be paused.</p>
 <p>MT safe.</p>
 <p></p>
@@ -829,7 +829,7 @@
  must have a lock associated with it using
 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()"><code class="function">gst_task_set_lock()</code></a> or this function will return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -844,7 +844,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.19.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be started.</p>
 <p>MT safe.</p>
 <p></p>
@@ -860,7 +860,7 @@
 will not wait for the task to have completely stopped. Use
 <a class="link" href="GstTask.html#gst-task-join" title="gst_task_join ()"><code class="function">gst_task_join()</code></a> to stop and wait for completion.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -875,7 +875,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.20.6"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.20.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be stopped.</p>
 <p>MT safe.</p>
 <p></p>
@@ -894,7 +894,7 @@
 would cause a deadlock. The function will detect this and print a
 g_warning.</p>
 <div class="refsect3">
-<a name="id-1.3.49.8.21.7"></a><h4>Parameters</h4>
+<a name="id-1.3.50.8.21.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -909,7 +909,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.49.8.21.8"></a><h4>Returns</h4>
+<a name="id-1.3.50.8.21.8"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the task could be joined.</p>
 <p>MT safe.</p>
 <p></p>
@@ -944,7 +944,7 @@
 </pre>
 <p>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> object.</p>
 <div class="refsect3">
-<a name="id-1.3.49.9.2.5"></a><h4>Members</h4>
+<a name="id-1.3.50.9.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -997,7 +997,7 @@
 <a name="GstTaskState"></a><h3>enum GstTaskState</h3>
 <p>The different states a task can be in</p>
 <div class="refsect3">
-<a name="id-1.3.49.9.3.4"></a><h4>Members</h4>
+<a name="id-1.3.50.9.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/GstTaskPool.html b/docs/gst/html/GstTaskPool.html
index c15e35e..5576585 100644
--- a/docs/gst/html/GstTaskPool.html
+++ b/docs/gst/html/GstTaskPool.html
@@ -137,7 +137,7 @@
 <span class="c_punctuation">(</span>*GstTaskPoolFunction<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);</pre>
 <p>Task function, see <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.50.8.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.51.8.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -160,7 +160,7 @@
 <p>Create a new default task pool. The default task pool will use a regular
 GThreadPool for threads.</p>
 <div class="refsect3">
-<a name="id-1.3.50.8.3.5"></a><h4>Returns</h4>
+<a name="id-1.3.51.8.3.5"></a><h4>Returns</h4>
 <p> a new <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a>. <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -174,7 +174,7 @@
 <p>Prepare the taskpool for accepting <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a> operations.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.50.8.4.6"></a><h4>Parameters</h4>
+<a name="id-1.3.51.8.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -207,7 +207,7 @@
 <p>Start the execution of a new thread from <em class="parameter"><code>pool</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.50.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.51.8.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -240,7 +240,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.50.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.51.8.5.6"></a><h4>Returns</h4>
 <p> a pointer that should be used
 for the gst_task_pool_join function. This pointer can be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, you
 must check <em class="parameter"><code>error</code></em>
@@ -258,7 +258,7 @@
  is the id obtained from 
 <a class="link" href="GstTaskPool.html#gst-task-pool-push" title="gst_task_pool_push ()"><code class="function">gst_task_pool_push()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.50.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.51.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -289,7 +289,7 @@
 to ensure proper cleanup of internal data structures in test suites.</p>
 <p>MT safe.</p>
 <div class="refsect3">
-<a name="id-1.3.50.8.7.6"></a><h4>Parameters</h4>
+<a name="id-1.3.51.8.7.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -328,7 +328,7 @@
 </pre>
 <p>The <a class="link" href="GstTaskPool.html#GstTaskPoolClass" title="struct GstTaskPoolClass"><span class="type">GstTaskPoolClass</span></a> object.</p>
 <div class="refsect3">
-<a name="id-1.3.50.9.3.5"></a><h4>Members</h4>
+<a name="id-1.3.51.9.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
diff --git a/docs/gst/html/GstToc.html b/docs/gst/html/GstToc.html
index 56f61ac..5113ce0 100644
--- a/docs/gst/html/GstToc.html
+++ b/docs/gst/html/GstToc.html
@@ -406,7 +406,7 @@
 gst_toc_new (<em class="parameter"><code><a class="link" href="GstToc.html#GstTocScope" title="enum GstTocScope"><span class="type">GstTocScope</span></a> scope</code></em>);</pre>
 <p>Create a new <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> structure.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -421,7 +421,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.2.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.2.6"></a><h4>Returns</h4>
 <p> newly allocated <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> structure, free it
 with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -446,7 +446,7 @@
 </pre>
 <p>Copy <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> with all subentries (deep copy).</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -461,7 +461,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.5.6"></a><h4>Returns</h4>
 <p> newly allocated <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> in case of success,
 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise; free it when done with <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>. </p>
 <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -479,7 +479,7 @@
 <pre class="programlisting"><a class="link" href="GstToc.html#GstTocScope" title="enum GstTocScope"><span class="returnvalue">GstTocScope</span></a>
 gst_toc_get_scope (<em class="parameter"><code>const <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.3.51.9.7.4"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.7.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -494,7 +494,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.7.5"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.7.5"></a><h4>Returns</h4>
 <p> scope of <em class="parameter"><code>toc</code></em>
 </p>
 <p></p>
@@ -508,7 +508,7 @@
 <p>Gets the list of <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>toc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -523,7 +523,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.8.6"></a><h4>Returns</h4>
 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> for <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.TocEntry]</span></p>
@@ -539,7 +539,7 @@
  to <em class="parameter"><code>toc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -569,7 +569,7 @@
 <p>Gets the tags for <em class="parameter"><code>toc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -584,7 +584,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.10.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.10.6"></a><h4>Returns</h4>
 <p> A <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> for <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -602,7 +602,7 @@
  using <em class="parameter"><code>mode</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -638,7 +638,7 @@
 <p>Set a <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>toc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -674,7 +674,7 @@
                    <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
 <p>Create new <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> structure.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -696,7 +696,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.14.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.14.6"></a><h4>Returns</h4>
 <p> newly allocated <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>.</p>
 <p></p>
 </div>
@@ -720,7 +720,7 @@
 </pre>
 <p>Copy <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> with all subentries (deep copy).</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.17.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -735,7 +735,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.17.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.17.6"></a><h4>Returns</h4>
 <p> newly allocated <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> in case of
 success, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise; free it when done with
 <a class="link" href="GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>. </p>
@@ -758,7 +758,7 @@
  in the <em class="parameter"><code>toc</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -780,7 +780,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.19.6"></a><h4>Returns</h4>
 <p> <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> with specified
 <em class="parameter"><code>uid</code></em>
 from the <em class="parameter"><code>toc</code></em>
@@ -796,7 +796,7 @@
 <p>Gets the parent <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -811,7 +811,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.20.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.20.6"></a><h4>Returns</h4>
 <p> The parent <a class="link" href="GstToc.html" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -825,7 +825,7 @@
 <p>Gets the UID of <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -840,7 +840,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.21.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.21.6"></a><h4>Returns</h4>
 <p> The UID of <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -854,7 +854,7 @@
 <p>Gets the parent <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.22.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -869,7 +869,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.22.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.22.6"></a><h4>Returns</h4>
 <p> The parent <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -883,7 +883,7 @@
 <p>Gets the sub-entries of <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.23.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -898,7 +898,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.23.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.23.6"></a><h4>Returns</h4>
 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.TocEntry]</span></p>
@@ -914,7 +914,7 @@
  to <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.24.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -951,7 +951,7 @@
 is not automatically applying the loop. The application can process this
 meta data and use it e.g. to send a seek-event to loop a section.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.25.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -980,7 +980,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.25.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.25.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> storage pointers were filled with appropriate
 values, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
@@ -999,7 +999,7 @@
  values for the <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.26.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1040,7 +1040,7 @@
  and write them into appropriate
 storages.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1069,7 +1069,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.27.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.27.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all non-<a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> storage pointers were filled with appropriate
 values, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
@@ -1087,7 +1087,7 @@
  values for the <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.28.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1122,7 +1122,7 @@
 <p>Gets the tags for <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.29.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1137,7 +1137,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.29.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.29.6"></a><h4>Returns</h4>
 <p> A <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> for <em class="parameter"><code>entry</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -1155,7 +1155,7 @@
  using <em class="parameter"><code>mode</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.30.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1191,7 +1191,7 @@
 <p>Set a <a class="link" href="GstTagList.html" title="GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>entry</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.31.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1221,7 +1221,7 @@
 <p>Converts <em class="parameter"><code>type</code></em>
  to a string representation.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.32.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1236,7 +1236,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.32.6"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.32.6"></a><h4>Returns</h4>
 <p> Returns a human-readable string for <em class="parameter"><code>type</code></em>
 . This string is
 only for debugging purpose and should not be displayed in a user
@@ -1250,7 +1250,7 @@
 <pre class="programlisting"><a class="link" href="GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="returnvalue">GstTocEntryType</span></a>
 gst_toc_entry_get_entry_type (<em class="parameter"><code>const <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.3.51.9.33.4"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.33.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1265,7 +1265,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.33.5"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.33.5"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>entry</code></em>
 's entry type</p>
 <p></p>
@@ -1277,7 +1277,7 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_toc_entry_is_alternative (<em class="parameter"><code>const <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.3.51.9.34.4"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.34.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1292,7 +1292,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.34.5"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.34.5"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>
 's type is an alternative type, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
@@ -1304,7 +1304,7 @@
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_toc_entry_is_sequence (<em class="parameter"><code>const <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
 <div class="refsect3">
-<a name="id-1.3.51.9.35.4"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.35.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1319,7 +1319,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.51.9.35.5"></a><h4>Returns</h4>
+<a name="id-1.3.52.9.35.5"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>
 's type is a sequence type, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
@@ -1333,7 +1333,7 @@
 <p>Checks if <em class="parameter"><code>entry_type</code></em>
  indicates that its <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> is an alternative.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.36.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1356,7 +1356,7 @@
 <p>Checks if <em class="parameter"><code>entry_type</code></em>
  indicates that its <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> is a sequence.</p>
 <div class="refsect3">
-<a name="id-1.3.51.9.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.52.9.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1392,7 +1392,7 @@
 <a name="GstTocScope"></a><h3>enum GstTocScope</h3>
 <p>The scope of a TOC.</p>
 <div class="refsect3">
-<a name="id-1.3.51.10.3.4"></a><h4>Members</h4>
+<a name="id-1.3.52.10.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1435,7 +1435,7 @@
 <p>The different types of TOC entries (see <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a>).</p>
 <p>There are two types of TOC entries: alternatives or parts in a sequence.</p>
 <div class="refsect3">
-<a name="id-1.3.51.10.5.5"></a><h4>Members</h4>
+<a name="id-1.3.52.10.5.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1502,7 +1502,7 @@
 <p>How a <a class="link" href="GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> should be repeated. By default, entries are played a
 single time.</p>
 <div class="refsect3">
-<a name="id-1.3.51.10.6.4"></a><h4>Members</h4>
+<a name="id-1.3.52.10.6.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index c315f22..f56e59b 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -219,7 +219,7 @@
 factory name.</p>
 <p>Free-function: gst_plugin_feature_list_free</p>
 <div class="refsect3">
-<a name="id-1.3.54.8.2.7"></a><h4>Returns</h4>
+<a name="id-1.3.55.8.2.7"></a><h4>Returns</h4>
 <p> the list of all
 registered <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.TypeFindFactory]</span></p>
@@ -235,7 +235,7 @@
 copy it using <a href="https://developer.gnome.org/glib/unstable/glib-String-Utility-Functions.html#g-strdupv"><code class="function">g_strdupv()</code></a>.  This function may return <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to indicate
 a 0-length list.</p>
 <div class="refsect3">
-<a name="id-1.3.54.8.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.55.8.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -250,7 +250,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.54.8.3.6"></a><h4>Returns</h4>
+<a name="id-1.3.55.8.3.6"></a><h4>Returns</h4>
 <p>    a <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of extensions associated with this factory. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
 </div>
@@ -262,7 +262,7 @@
 gst_type_find_factory_get_caps (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>);</pre>
 <p>Gets the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> associated with a typefind factory.</p>
 <div class="refsect3">
-<a name="id-1.3.54.8.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.55.8.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -277,7 +277,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.54.8.4.6"></a><h4>Returns</h4>
+<a name="id-1.3.55.8.4.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="GstCaps.html" title="GstCaps"><span class="type">GstCaps</span></a> associated with this factory. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -291,7 +291,7 @@
 without typefind functions are a last-effort fallback mechanism to
 e.g. assume a certain media type based on the file extension.</p>
 <div class="refsect3">
-<a name="id-1.3.54.8.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.55.8.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -306,7 +306,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.54.8.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.55.8.5.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the factory has a typefind functions set, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
 <p></p>
 </div>
@@ -319,7 +319,7 @@
                                      <em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);</pre>
 <p>Calls the <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> associated with this factory.</p>
 <div class="refsect3">
-<a name="id-1.3.54.8.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.55.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index 20fce26..9b3cafd 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -311,6 +311,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()">gst_buffer_add_protection_meta</a>, function in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()">gst_buffer_append</a>, function in <a class="link" href="GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -415,6 +419,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-gstprotection.html#gst-buffer-get-protection-meta" title="gst_buffer_get_protection_meta()">gst_buffer_get_protection_meta</a>, macro in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstBuffer.html#gst-buffer-get-size" title="gst_buffer_get_size ()">gst_buffer_get_size</a>, function in <a class="link" href="GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -3225,11 +3233,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstIterator.html#GST-ITERATOR:CAPS" title="GST_ITERATOR()">GST_ITERATOR</a>, macro in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
+<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator">GstIterator</a>, struct in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator">GstIterator</a>, struct in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
+<a class="link" href="gstreamer-GstIterator.html#GST-ITERATOR:CAPS" title="GST_ITERATOR()">GST_ITERATOR</a>, macro in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4598,11 +4606,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()">gst_pad_is_blocking</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#GST-PAD-IS-BLOCKING:CAPS" title="GST_PAD_IS_BLOCKING()">GST_PAD_IS_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GST-PAD-IS-BLOCKING:CAPS" title="GST_PAD_IS_BLOCKING()">GST_PAD_IS_BLOCKING</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-is-blocking" title="gst_pad_is_blocking ()">gst_pad_is_blocking</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -4618,11 +4626,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-is-linked" title="gst_pad_is_linked ()">gst_pad_is_linked</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#GST-PAD-IS-LINKED:CAPS" title="GST_PAD_IS_LINKED()">GST_PAD_IS_LINKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#GST-PAD-IS-LINKED:CAPS" title="GST_PAD_IS_LINKED()">GST_PAD_IS_LINKED</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+<a class="link" href="GstPad.html#gst-pad-is-linked" title="gst_pad_is_linked ()">gst_pad_is_linked</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
 <dt>
@@ -5206,6 +5214,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPipeline.html#gst-pipeline-get-pipeline-clock" title="gst_pipeline_get_pipeline_clock ()">gst_pipeline_get_pipeline_clock</a>, function in <a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPipeline.html#gst-pipeline-new" title="gst_pipeline_new ()">gst_pipeline_new</a>, function in <a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
 </dt>
 <dd></dd>
@@ -5562,6 +5574,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta">GstProtectionMeta</a>, struct in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-gstprotection.html#gst-protection-select-system" title="gst_protection_select_system ()">gst_protection_select_system</a>, function in <a class="link" href="gstreamer-gstprotection.html" title="gstprotection">gstprotection</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstGhostPad.html#GstProxyPad-struct" title="struct GstProxyPad">GstProxyPad</a>, struct in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
@@ -6305,6 +6325,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstSegment.html#gst-segment-is-equal" title="gst_segment_is_equal ()">gst_segment_is_equal</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstSegment.html#gst-segment-new" title="gst_segment_new ()">gst_segment_new</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
 </dt>
 <dd></dd>
@@ -6325,6 +6349,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstSegment.html#gst-segment-to-running-time-full" title="gst_segment_to_running_time_full ()">gst_segment_to_running_time_full</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstSegment.html#gst-segment-to-stream-time" title="gst_segment_to_stream_time ()">gst_segment_to_stream_time</a>, function in <a class="link" href="GstSegment.html" title="GstSegment">GstSegment</a>
 </dt>
 <dd></dd>
diff --git a/docs/gst/html/gst-running.html b/docs/gst/html/gst-running.html
index 41382df..8e23914 100644
--- a/docs/gst/html/gst-running.html
+++ b/docs/gst/html/gst-running.html
@@ -371,12 +371,12 @@
   </p>
 <p><a name="GST_TAG_ENCODING"></a><b><code class="envar">GST_TAG_ENCODING</code>. </b>
 Try this character encoding first for tag-related strings where the encoding
-is not defined and which are not UTF-8 already. By defaul the current locale
+is not defined and which are not UTF-8 already. By default the current locale
 will be tried (if not UTF-8).
   </p>
 <p><a name="GST_TAG_ID3_ENCODING"></a><b><code class="envar">GST_TAG_ID3_ENCODING</code>. </b>
 Try this character encoding first for ID3 tag-related strings where the
-encoding is not defined and which are not UTF-8 already. By defaul the current
+encoding is not defined and which are not UTF-8 already. By default the current
 locale will be tried (if not UTF-8).
   </p>
 <p><a name="GST_TAG_ID3V1_ENCODING"></a><b><code class="envar">GST_TAG_ID3V1_ENCODING</code>. </b>
diff --git a/docs/gst/html/gstreamer-1.0.devhelp2 b/docs/gst/html/gstreamer-1.0.devhelp2
index 3b8534c..6d08d6b 100644
--- a/docs/gst/html/gstreamer-1.0.devhelp2
+++ b/docs/gst/html/gstreamer-1.0.devhelp2
@@ -46,6 +46,7 @@
       <sub name="GstPluginFeature" link="GstPluginFeature.html"/>
       <sub name="GstPoll" link="gstreamer-GstPoll.html"/>
       <sub name="GstPreset" link="GstPreset.html"/>
+      <sub name="gstprotection" link="gstreamer-gstprotection.html"/>
       <sub name="GstQuery" link="GstQuery.html"/>
       <sub name="GstRegistry" link="GstRegistry.html"/>
       <sub name="GstSegment" link="GstSegment.html"/>
@@ -1279,6 +1280,7 @@
     <keyword type="function" name="gst_pipeline_new ()" link="GstPipeline.html#gst-pipeline-new"/>
     <keyword type="function" name="gst_pipeline_get_bus ()" link="GstPipeline.html#gst-pipeline-get-bus"/>
     <keyword type="function" name="gst_pipeline_set_clock ()" link="GstPipeline.html#gst-pipeline-set-clock"/>
+    <keyword type="function" name="gst_pipeline_get_pipeline_clock ()" link="GstPipeline.html#gst-pipeline-get-pipeline-clock" since="1.6"/>
     <keyword type="function" name="gst_pipeline_get_clock ()" link="GstPipeline.html#gst-pipeline-get-clock"/>
     <keyword type="function" name="gst_pipeline_use_clock ()" link="GstPipeline.html#gst-pipeline-use-clock"/>
     <keyword type="function" name="gst_pipeline_auto_clock ()" link="GstPipeline.html#gst-pipeline-auto-clock"/>
@@ -1375,6 +1377,10 @@
     <keyword type="function" name="gst_preset_is_editable ()" link="GstPreset.html#gst-preset-is-editable" since="1.6"/>
     <keyword type="struct" name="GstPreset" link="GstPreset.html#GstPreset-struct"/>
     <keyword type="struct" name="struct GstPresetInterface" link="GstPreset.html#GstPresetInterface"/>
+    <keyword type="function" name="gst_buffer_add_protection_meta ()" link="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" since="1.6"/>
+    <keyword type="macro" name="gst_buffer_get_protection_meta()" link="gstreamer-gstprotection.html#gst-buffer-get-protection-meta"/>
+    <keyword type="function" name="gst_protection_select_system ()" link="gstreamer-gstprotection.html#gst-protection-select-system" since="1.6"/>
+    <keyword type="struct" name="struct GstProtectionMeta" link="gstreamer-gstprotection.html#GstProtectionMeta"/>
     <keyword type="macro" name="GST_QUERY_MAKE_TYPE()" link="GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS"/>
     <keyword type="macro" name="GST_QUERY_TYPE()" link="GstQuery.html#GST-QUERY-TYPE:CAPS"/>
     <keyword type="macro" name="GST_QUERY_TYPE_NAME()" link="GstQuery.html#GST-QUERY-TYPE-NAME:CAPS"/>
@@ -1506,11 +1512,13 @@
     <keyword type="function" name="gst_segment_free ()" link="GstSegment.html#gst-segment-free"/>
     <keyword type="function" name="gst_segment_do_seek ()" link="GstSegment.html#gst-segment-do-seek"/>
     <keyword type="function" name="gst_segment_to_running_time ()" link="GstSegment.html#gst-segment-to-running-time"/>
+    <keyword type="function" name="gst_segment_to_running_time_full ()" link="GstSegment.html#gst-segment-to-running-time-full" since="1.6"/>
     <keyword type="function" name="gst_segment_to_stream_time ()" link="GstSegment.html#gst-segment-to-stream-time"/>
     <keyword type="function" name="gst_segment_to_position ()" link="GstSegment.html#gst-segment-to-position"/>
     <keyword type="function" name="gst_segment_set_running_time ()" link="GstSegment.html#gst-segment-set-running-time"/>
     <keyword type="function" name="gst_segment_copy_into ()" link="GstSegment.html#gst-segment-copy-into"/>
     <keyword type="function" name="gst_segment_offset_running_time ()" link="GstSegment.html#gst-segment-offset-running-time" since="1.2.3"/>
+    <keyword type="function" name="gst_segment_is_equal ()" link="GstSegment.html#gst-segment-is-equal" since="1.6"/>
     <keyword type="struct" name="struct GstSegment" link="GstSegment.html#GstSegment-struct"/>
     <keyword type="enum" name="enum GstSegmentFlags" link="GstSegment.html#GstSegmentFlags"/>
     <keyword type="function" name="GstStructureForeachFunc ()" link="GstStructure.html#GstStructureForeachFunc"/>
diff --git a/docs/gst/html/gstreamer-GstInfo.html b/docs/gst/html/gstreamer-GstInfo.html
index c36dac7..66f4179 100644
--- a/docs/gst/html/gstreamer-GstInfo.html
+++ b/docs/gst/html/gstreamer-GstInfo.html
@@ -3563,7 +3563,7 @@
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstInfo.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gstreamer-gstconfig.html" title="gstconfig"><span class="type">gstreamer-gstconfig</span></a>, <a class="link" href="gstreamer-Gst.html" title="Gst"><span class="type">gstreamer-Gst</span></a> for command line parameters
+<p><a class="link" href="gst-running.html" title="Running GStreamer Applications"><span class="type">gst-running</span></a> for command line parameters
 and environment variables that affect the debugging output.</p>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstParse.html b/docs/gst/html/gstreamer-GstParse.html
index c2f9f92..ccf6589 100644
--- a/docs/gst/html/gstreamer-GstParse.html
+++ b/docs/gst/html/gstreamer-GstParse.html
@@ -164,7 +164,7 @@
 <div class="refsect1">
 <a name="gstreamer-GstParse.description"></a><h2>Description</h2>
 <p>These function allow to create a pipeline based on the syntax used in the
-gst-launch utility (see man-page for syntax documentation).</p>
+gst-launch-1.0 utility (see man-page for syntax documentation).</p>
 <p>Please note that these functions take several measures to create
 somewhat dynamic pipelines. Due to that such pipelines are not always
 reusable (set the state to NULL and back to PLAYING).</p>
diff --git a/docs/gst/html/gstreamer-GstTocSetter.html b/docs/gst/html/gstreamer-GstTocSetter.html
index f8eff75..47c2f75 100644
--- a/docs/gst/html/gstreamer-GstTocSetter.html
+++ b/docs/gst/html/gstreamer-GstTocSetter.html
@@ -115,7 +115,7 @@
 <p>Set the given TOC on the setter. Previously set TOC will be
 unreffed before setting a new one.</p>
 <div class="refsect3">
-<a name="id-1.3.52.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.53.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -145,7 +145,7 @@
 <p>Return current TOC the setter uses. The TOC should not be
 modified without making it writable first.</p>
 <div class="refsect3">
-<a name="id-1.3.52.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.53.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -160,7 +160,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.52.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.3.53.7.3.6"></a><h4>Returns</h4>
 <p> TOC set, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref with
 <a class="link" href="GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a> when no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -174,7 +174,7 @@
 <p>Reset the internal TOC. Elements should call this from within the
 state-change handler.</p>
 <div class="refsect3">
-<a name="id-1.3.52.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.53.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -210,7 +210,7 @@
 </pre>
 <p><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterInterface" title="struct GstTocSetterInterface"><span class="type">GstTocSetterInterface</span></a> interface.</p>
 <div class="refsect3">
-<a name="id-1.3.52.8.3.5"></a><h4>Members</h4>
+<a name="id-1.3.53.8.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
diff --git a/docs/gst/html/gstreamer-GstTypeFind.html b/docs/gst/html/gstreamer-GstTypeFind.html
index 30f1ed3..a943811 100644
--- a/docs/gst/html/gstreamer-GstTypeFind.html
+++ b/docs/gst/html/gstreamer-GstTypeFind.html
@@ -127,7 +127,7 @@
                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>A function that will be called by typefinding.</p>
 <div class="refsect3">
-<a name="id-1.3.53.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.54.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -163,7 +163,7 @@
 the stream. The returned memory is valid until the typefinding function
 returns and must not be freed.</p>
 <div class="refsect3">
-<a name="id-1.3.53.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.54.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -190,7 +190,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.53.7.3.6"></a><h4>Returns</h4>
+<a name="id-1.3.54.7.3.6"></a><h4>Returns</h4>
 <p> the
 requested data, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if that data is not available. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -208,7 +208,7 @@
 in one call.
 It is up to the caller of the <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()"><span class="type">GstTypeFindFunction</span></a> to interpret these values.</p>
 <div class="refsect3">
-<a name="id-1.3.53.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.54.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -256,7 +256,7 @@
 passed to the vararg function - this applies particularly to gdouble and
 guint64 arguments).</p>
 <div class="refsect3">
-<a name="id-1.3.53.7.5.7"></a><h4>Parameters</h4>
+<a name="id-1.3.54.7.5.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -302,7 +302,7 @@
 gst_type_find_get_length (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>);</pre>
 <p>Get the length of the data stream.</p>
 <div class="refsect3">
-<a name="id-1.3.53.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.54.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -317,7 +317,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.53.7.6.6"></a><h4>Returns</h4>
+<a name="id-1.3.54.7.6.6"></a><h4>Returns</h4>
 <p> The length of the data stream, or 0 if it is not available.</p>
 <p></p>
 </div>
@@ -338,7 +338,7 @@
 registering this function will be available for typefinding.
 This function is typically called during an element's plugin initialization.</p>
 <div class="refsect3">
-<a name="id-1.3.53.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.54.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -395,7 +395,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.53.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.3.54.7.7.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
 <p></p>
 </div>
@@ -423,7 +423,7 @@
 </pre>
 <p>Object that stores typefind callbacks. To use with <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.53.8.2.5"></a><h4>Members</h4>
+<a name="id-1.3.54.8.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -461,7 +461,7 @@
 <p>The probability of the typefind function. Higher values have more certainty
 in doing a reliable typefind.</p>
 <div class="refsect3">
-<a name="id-1.3.53.8.3.4"></a><h4>Members</h4>
+<a name="id-1.3.54.8.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/gstreamer-GstUri.html b/docs/gst/html/gstreamer-GstUri.html
index 1e357df..73cfc5b 100644
--- a/docs/gst/html/gstreamer-GstUri.html
+++ b/docs/gst/html/gstreamer-GstUri.html
@@ -437,7 +437,7 @@
 strings will be broken down into their elements. All strings should not be
 escaped except where indicated.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -487,7 +487,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.4.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.4.6"></a><h4>Returns</h4>
 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -507,7 +507,7 @@
                        <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fragment</code></em>);</pre>
 <p>Like <a class="link" href="gstreamer-GstUri.html#gst-uri-new" title="gst_uri_new ()"><code class="function">gst_uri_new()</code></a>, but joins the new URI onto a base URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -562,7 +562,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.5.6"></a><h4>Returns</h4>
 <p> The new URI joined onto <em class="parameter"><code>base</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -577,7 +577,7 @@
 <p>Parses a URI string into a new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. Will return NULL if the URI
 cannot be parsed.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -592,7 +592,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.6.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.6.6"></a><h4>Returns</h4>
 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object, or NULL. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
 </div>
@@ -606,7 +606,7 @@
                                <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
 <p>Like <a class="link" href="gstreamer-GstUri.html#gst-uri-from-string" title="gst_uri_from_string ()"><code class="function">gst_uri_from_string()</code></a> but also joins with a base URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -628,7 +628,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.7.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.7.6"></a><h4>Returns</h4>
 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -643,7 +643,7 @@
 If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -658,7 +658,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.8.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.8.6"></a><h4>Returns</h4>
 <p> A new <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object which is a copy of this
 <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -673,7 +673,7 @@
 <p>Compares two <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> objects to see if they represent the same normalized
 URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -695,7 +695,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.9.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the normalized versions of the two URI's would be equal.</p>
 <p></p>
 </div>
@@ -711,7 +711,7 @@
 If either URI is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the other URI will be returned with the ref count
 increased.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -734,7 +734,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.10.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.10.6"></a><h4>Returns</h4>
 <p> A <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> which represents the base with the
 reference URI joined on. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -750,7 +750,7 @@
 <p>This is a convenience function to join two URI strings and return the result.
 The returned string should be <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d after use.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -773,7 +773,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.11.6"></a><h4>Returns</h4>
 <p> A string representing the percent-encoded join of
 the two URIs. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -792,7 +792,7 @@
 <p>Modification of a <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> should only be done after verifying that it is
 writable.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.12.7"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.12.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -807,7 +807,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.12.8"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.12.8"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is safe to write to the object.</p>
 <p></p>
 </div>
@@ -827,7 +827,7 @@
 If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.13.6"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.13.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -842,7 +842,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.13.7"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.13.7"></a><h4>Returns</h4>
 <p> A writable version of <em class="parameter"><code>uri</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -859,7 +859,7 @@
 The caller should <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> the string once they are finished with it.
 The string is put together as described in RFC 3986.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.14.6"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.14.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -874,7 +874,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.14.7"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.14.7"></a><h4>Returns</h4>
 <p> The string version of the URI. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -888,7 +888,7 @@
 <p>Add a reference to this <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object. See <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-ref" title="gst_mini_object_ref ()"><code class="function">gst_mini_object_ref()</code></a> for further
 info.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -903,7 +903,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.15.6"></a><h4>Returns</h4>
 <p> This object with the reference count incremented.</p>
 <p></p>
 </div>
@@ -917,7 +917,7 @@
 <p>If the reference count drops to 0 then finalize this object.</p>
 <p>See <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unref" title="gst_mini_object_unref ()"><code class="function">gst_mini_object_unref()</code></a> for further info.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.16.7"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.16.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -942,7 +942,7 @@
  is considered to be
 normalized.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.17.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -957,7 +957,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.17.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.17.6"></a><h4>Returns</h4>
 <p> TRUE if the URI is normalized or is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
@@ -974,7 +974,7 @@
 <p>The <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object must be writable. Check with <a class="link" href="gstreamer-GstUri.html#gst-uri-is-writable" title="gst_uri_is_writable ()"><code class="function">gst_uri_is_writable()</code></a> or use
 <a class="link" href="gstreamer-GstUri.html#gst-uri-make-writable" title="gst_uri_make_writable ()"><code class="function">gst_uri_make_writable()</code></a> first.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.18.6"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.18.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -989,7 +989,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.18.7"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.18.7"></a><h4>Returns</h4>
 <p> TRUE if the URI was modified.</p>
 <p></p>
 </div>
@@ -1004,7 +1004,7 @@
 If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1019,7 +1019,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.19.6"></a><h4>Returns</h4>
 <p> The scheme from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
@@ -1032,7 +1032,7 @@
                     <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>);</pre>
 <p>Set or unset the scheme for the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1054,7 +1054,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.20.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.20.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the scheme was set/unset successfully.</p>
 <p></p>
 </div>
@@ -1069,7 +1069,7 @@
 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it doesn't exist. If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1084,7 +1084,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.21.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.21.6"></a><h4>Returns</h4>
 <p> The userinfo from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
@@ -1098,7 +1098,7 @@
                       <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *userinfo</code></em>);</pre>
 <p>Set or unset the user information for the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.22.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1120,7 +1120,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.22.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.22.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the user information was set/unset successfully.</p>
 <p></p>
 </div>
@@ -1135,7 +1135,7 @@
 If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.23.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1150,7 +1150,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.23.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.23.6"></a><h4>Returns</h4>
 <p> The host name from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
@@ -1164,7 +1164,7 @@
                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host</code></em>);</pre>
 <p>Set or unset the host for the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.24.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1186,7 +1186,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.24.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.24.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the host was set/unset successfully.</p>
 <p></p>
 </div>
@@ -1201,7 +1201,7 @@
 If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-NO-PORT:CAPS" title="GST_URI_NO_PORT"><code class="literal">GST_URI_NO_PORT</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.25.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1216,7 +1216,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.25.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.25.6"></a><h4>Returns</h4>
 <p> The port number from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-NO-PORT:CAPS" title="GST_URI_NO_PORT"><code class="literal">GST_URI_NO_PORT</code></a>.</p>
 <p></p>
 </div>
@@ -1230,7 +1230,7 @@
                   <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
 <p>Set or unset the port number for the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.26.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1252,7 +1252,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.26.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.26.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the port number was set/unset successfully.</p>
 <p></p>
 </div>
@@ -1265,7 +1265,7 @@
 gst_uri_get_path (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
 <p>Extract the path string from the URI object.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1280,7 +1280,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.27.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.27.6"></a><h4>Returns</h4>
 <p> The path from the URI. Once finished with the
 string should be <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1295,7 +1295,7 @@
                   <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);</pre>
 <p>Sets or unsets the path in the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.28.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1318,7 +1318,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.28.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.28.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was set successfully.</p>
 <p></p>
 </div>
@@ -1331,7 +1331,7 @@
 gst_uri_get_path_string (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
 <p>Extract the path string from the URI object as a percent encoded URI path.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.29.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1346,7 +1346,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.29.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.29.6"></a><h4>Returns</h4>
 <p> The path from the URI. Once finished with the
 string should be <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1361,7 +1361,7 @@
                          <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);</pre>
 <p>Sets or unsets the path in the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.30.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1384,7 +1384,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.30.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.30.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was set successfully.</p>
 <p></p>
 </div>
@@ -1397,7 +1397,7 @@
 gst_uri_get_path_segments (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
 <p>Get a list of path segments from the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.31.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1412,7 +1412,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.31.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.31.6"></a><h4>Returns</h4>
 <p> A <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of path segment
 strings or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no path segments are available. Free the list
 when no longer needed with g_list_free_full(list, g_free). </p>
@@ -1428,7 +1428,7 @@
                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *path_segments</code></em>);</pre>
 <p>Replace the path segments list in the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.32.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1451,7 +1451,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.32.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.32.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path segments were set successfully.</p>
 <p></p>
 </div>
@@ -1466,7 +1466,7 @@
 <p>Append a path onto the end of the path in the URI. The path is not
 normalized, call <a class="link" href="gstreamer-GstUri.html#gst-uri-normalize" title="gst_uri_normalize ()"><code class="function">gst_uri_normalize()</code></a> to normalize the path.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.33.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1488,7 +1488,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.33.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.33.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was appended successfully.</p>
 <p></p>
 </div>
@@ -1502,7 +1502,7 @@
                              <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path_segment</code></em>);</pre>
 <p>Append a single path segment onto the end of the URI path.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.34.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1524,7 +1524,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.34.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.34.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the path was appended successfully.</p>
 <p></p>
 </div>
@@ -1538,7 +1538,7 @@
 <p>Get a percent encoded URI query string from the <em class="parameter"><code>uri</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.35.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1553,7 +1553,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.35.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.35.6"></a><h4>Returns</h4>
 <p> A percent encoded query string. Use <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when
 no longer needed. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -1568,7 +1568,7 @@
                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *query</code></em>);</pre>
 <p>Sets or unsets the query table in the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.36.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1591,7 +1591,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.36.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.36.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query table was set successfully.</p>
 <p></p>
 </div>
@@ -1609,7 +1609,7 @@
 no longer required. Modifying this hash table will modify the query in the
 URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1624,7 +1624,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.37.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.37.6"></a><h4>Returns</h4>
 <p> The query hash table
 from the URI. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> gchar* gchar*]</span></p>
@@ -1642,7 +1642,7 @@
 
 will remove the query string from the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.38.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1665,7 +1665,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.38.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.38.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the new table was sucessfully used for the query table.</p>
 <p></p>
 </div>
@@ -1684,7 +1684,7 @@
 use <a class="link" href="gstreamer-GstUri.html#gst-uri-query-has-key" title="gst_uri_query_has_key ()"><code class="function">gst_uri_query_has_key()</code></a> to determine if a key is present in the URI
 query.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.39.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1706,7 +1706,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.39.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.39.6"></a><h4>Returns</h4>
 <p> The value for the given key, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not found.</p>
 <p></p>
 </div>
@@ -1724,7 +1724,7 @@
 indicates that the key has no associated value, but will still be present in
 the query string.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.40.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1751,7 +1751,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.40.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.40.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query table was sucessfully updated.</p>
 <p></p>
 </div>
@@ -1765,7 +1765,7 @@
                           <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *query_key</code></em>);</pre>
 <p>Remove an entry from the query table by key.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.41.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1787,7 +1787,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.41.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.41.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the key existed in the table and was removed.</p>
 <p></p>
 </div>
@@ -1802,7 +1802,7 @@
 <p>Check if there is a query table entry for the <em class="parameter"><code>query_key</code></em>
  key.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.42.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1824,7 +1824,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.42.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.42.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>query_key</code></em>
 exists in the URI query table.</p>
 <p></p>
@@ -1838,7 +1838,7 @@
 gst_uri_get_query_keys (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> *uri</code></em>);</pre>
 <p>Get a list of the query keys from the URI.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.43.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1853,7 +1853,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.43.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.43.6"></a><h4>Returns</h4>
 <p> A list of keys from
 the URI query. Free the list with <a href="https://developer.gnome.org/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> gchar*]</span></p>
@@ -1869,7 +1869,7 @@
 If <em class="parameter"><code>uri</code></em>
  is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.44.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1884,7 +1884,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.44.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.44.6"></a><h4>Returns</h4>
 <p> The host name from the <a class="link" href="gstreamer-GstUri.html#GstUri" title="GstUri"><span class="type">GstUri</span></a> object or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
 <p></p>
 </div>
@@ -1900,7 +1900,7 @@
  to
 unset the fragment string.</p>
 <div class="refsect3">
-<a name="id-1.3.55.7.45.5"></a><h4>Parameters</h4>
+<a name="id-1.3.56.7.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1922,7 +1922,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.55.7.45.6"></a><h4>Returns</h4>
+<a name="id-1.3.56.7.45.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the fragment was set/unset successfully.</p>
 <p></p>
 </div>
diff --git a/docs/gst/html/gstreamer-GstUriHandler.html b/docs/gst/html/gstreamer-GstUriHandler.html
index fd5dad9..1f9a524 100644
--- a/docs/gst/html/gstreamer-GstUriHandler.html
+++ b/docs/gst/html/gstreamer-GstUriHandler.html
@@ -225,7 +225,7 @@
 </pre>
 <p>Tests if the type direction is valid.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -249,7 +249,7 @@
 must consist of alphanumeric characters, '+', '-' and '.' and must
 start with a alphabetic character. See RFC 3986 Section 3.1.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -264,7 +264,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.4.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.4.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the string is a valid protocol identifier, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <p></p>
 </div>
@@ -279,7 +279,7 @@
 that a positive return value does not imply that a subsequent call to
 <a class="link" href="gstreamer-GstUriHandler.html#gst-element-make-from-uri" title="gst_element_make_from_uri ()"><code class="function">gst_element_make_from_uri()</code></a> is guaranteed to work.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -301,7 +301,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.5.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.5.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a></p>
 <p></p>
 </div>
@@ -314,7 +314,7 @@
 <p>Tests if the given string is a valid URI identifier. URIs start with a valid
 scheme followed by ":" and maybe a string identifying the location.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -329,7 +329,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.6.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.6.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the string is a valid URI</p>
 <p></p>
 </div>
@@ -343,7 +343,7 @@
 <p>Checks if the protocol of a given valid URI matches <em class="parameter"><code>protocol</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -365,7 +365,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.7.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.7.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the protocol matches.</p>
 <p></p>
 </div>
@@ -378,7 +378,7 @@
 <p>Extracts the protocol out of a given valid URI. The returned string must be
 freed using <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -393,7 +393,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.8.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.8.6"></a><h4>Returns</h4>
 <p> The protocol for this URI.</p>
 <p></p>
 </div>
@@ -409,7 +409,7 @@
 <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.9.6"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.9.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -424,7 +424,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.9.7"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.9.7"></a><h4>Returns</h4>
 <p> the location for this URI. Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
 URI isn't valid. If the URI does not contain a location, an empty
 string is returned. </p>
@@ -440,7 +440,7 @@
 <p>Constructs a URI for a given valid protocol and location.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.10.6"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -462,7 +462,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.10.7"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.10.7"></a><h4>Returns</h4>
 <p> a new string for this URI. Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
 given URI protocol is not valid, or the given location is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
@@ -481,7 +481,7 @@
 will be canonicalised so that it doesn't contain any './' or '../' segments.</p>
 <p>On Windows <span class="type">filename</span> should be in UTF-8 encoding.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.11.6"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -502,6 +502,12 @@
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.57.9.11.7"></a><h4>Returns</h4>
+<p> newly-allocated URI string, or NULL on error. The caller must
+free the URI string with <a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed.</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -513,7 +519,7 @@
                            <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Creates an element for handling the given URI.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -545,7 +551,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.12.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.12.6"></a><h4>Returns</h4>
 <p> a new element or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none could be created. </p>
 <p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
 </div>
@@ -557,7 +563,7 @@
 gst_uri_handler_get_uri_type (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
 <p>Gets the type of the given URI handler</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -572,7 +578,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.13.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.13.6"></a><h4>Returns</h4>
 <p> the <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a> of the URI handler.
 Returns <a class="link" href="gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS"><span class="type">GST_URI_UNKNOWN</span></a> if the <em class="parameter"><code>handler</code></em>
 isn't implemented correctly.</p>
@@ -588,7 +594,7 @@
 . This list may not be
 modified.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -603,7 +609,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.14.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.14.6"></a><h4>Returns</h4>
 <p> the
 supported protocols.  Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the <em class="parameter"><code>handler</code></em>
 isn't
@@ -620,7 +626,7 @@
 gst_uri_handler_get_uri (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);</pre>
 <p>Gets the currently handled URI.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -635,7 +641,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.15.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.15.6"></a><h4>Returns</h4>
 <p> the URI currently handled by
 the <em class="parameter"><code>handler</code></em>
 .  Returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there are no URI currently
@@ -653,7 +659,7 @@
                          <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Tries to set the URI of the given handler.</p>
 <div class="refsect3">
-<a name="id-1.3.56.9.16.5"></a><h4>Parameters</h4>
+<a name="id-1.3.57.9.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -681,7 +687,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.56.9.16.6"></a><h4>Returns</h4>
+<a name="id-1.3.57.9.16.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the URI was set successfully, else <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <p></p>
 </div>
@@ -714,7 +720,7 @@
 </pre>
 <p>Any <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> using this interface should implement these methods.</p>
 <div class="refsect3">
-<a name="id-1.3.56.10.3.5"></a><h4>Members</h4>
+<a name="id-1.3.57.10.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -756,7 +762,7 @@
 <a name="GstURIType"></a><h3>enum GstURIType</h3>
 <p>The different types of URI direction.</p>
 <div class="refsect3">
-<a name="id-1.3.56.10.4.4"></a><h4>Members</h4>
+<a name="id-1.3.57.10.4.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -794,7 +800,7 @@
 <a name="GstURIError"></a><h3>enum GstURIError</h3>
 <p>Different URI-related errors that can occur.</p>
 <div class="refsect3">
-<a name="id-1.3.56.10.5.4"></a><h4>Members</h4>
+<a name="id-1.3.57.10.5.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/gstreamer-GstUtils.html b/docs/gst/html/gstreamer-GstUtils.html
index 3346f79..d757d7a 100644
--- a/docs/gst/html/gstreamer-GstUtils.html
+++ b/docs/gst/html/gstreamer-GstUtils.html
@@ -597,7 +597,7 @@
 this macro is not to be used with things that return something, use
 the _WITH_DEFAULT version for that</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.2.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -632,7 +632,7 @@
 evaluates to <em class="parameter"><code>def_return</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.3.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -671,7 +671,7 @@
 </pre>
 <p>Read an 8 bit unsigned integer value from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -693,7 +693,7 @@
 </pre>
 <p>Read a 16 bit unsigned integer value in little endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -715,7 +715,7 @@
 </pre>
 <p>Read a 16 bit unsigned integer value in big endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -737,7 +737,7 @@
 </pre>
 <p>Read a 24 bit unsigned integer value in little endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -759,7 +759,7 @@
 </pre>
 <p>Read a 24 bit unsigned integer value in big endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -781,7 +781,7 @@
 </pre>
 <p>Read a 32 bit unsigned integer value in little endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -803,7 +803,7 @@
 </pre>
 <p>Read a 32 bit unsigned integer value in big endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -825,7 +825,7 @@
 </pre>
 <p>Read a 64 bit unsigned integer value in little endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -847,7 +847,7 @@
 </pre>
 <p>Read a 64 bit unsigned integer value in big endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -869,7 +869,7 @@
 GST_READ_FLOAT_LE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>Read a 32 bit float value in little endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.13.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -884,7 +884,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.13.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.13.6"></a><h4>Returns</h4>
 <p> The floating point value read from <em class="parameter"><code>data</code></em>
 </p>
 <p></p>
@@ -897,7 +897,7 @@
 GST_READ_FLOAT_BE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>Read a 32 bit float value in big endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -912,7 +912,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.14.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.14.6"></a><h4>Returns</h4>
 <p> The floating point value read from <em class="parameter"><code>data</code></em>
 </p>
 <p></p>
@@ -925,7 +925,7 @@
 GST_READ_DOUBLE_LE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>Read a 64 bit double value in little endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -940,7 +940,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.15.6"></a><h4>Returns</h4>
 <p> The double-precision floating point value read from <em class="parameter"><code>data</code></em>
 </p>
 <p></p>
@@ -953,7 +953,7 @@
 GST_READ_DOUBLE_BE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
 <p>Read a 64 bit double value in big endian format from the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.16.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -968,7 +968,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.16.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.16.6"></a><h4>Returns</h4>
 <p> The double-precision floating point value read from <em class="parameter"><code>data</code></em>
 </p>
 <p></p>
@@ -980,7 +980,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT8(data, num)</pre>
 <p>Store an 8 bit unsigned integer value into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.17.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1008,7 +1008,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT16_LE(data, num)</pre>
 <p>Store a 16 bit unsigned integer value in little endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1036,7 +1036,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT16_BE(data, num)</pre>
 <p>Store a 16 bit unsigned integer value in big endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1064,7 +1064,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT24_LE(data, num)</pre>
 <p>Store a 24 bit unsigned integer value in little endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1092,7 +1092,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT24_BE(data, num)</pre>
 <p>Store a 24 bit unsigned integer value in big endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1120,7 +1120,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT32_LE(data, num)</pre>
 <p>Store a 32 bit unsigned integer value in little endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.22.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1148,7 +1148,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT32_BE(data, num)</pre>
 <p>Store a 32 bit unsigned integer value in big endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.23.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1176,7 +1176,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT64_LE(data, num)</pre>
 <p>Store a 64 bit unsigned integer value in little endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.24.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1204,7 +1204,7 @@
 <pre class="programlisting">#define             GST_WRITE_UINT64_BE(data, num)</pre>
 <p>Store a 64 bit unsigned integer value in big endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.25.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1234,7 +1234,7 @@
                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
 <p>Store a 32 bit float value in little endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.26.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1264,7 +1264,7 @@
                     <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
 <p>Store a 32 bit float value in big endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1294,7 +1294,7 @@
                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
 <p>Store a 64 bit double value in little endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.28.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1324,7 +1324,7 @@
                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
 <p>Store a 64 bit double value in big endian format into the memory buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.29.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1353,7 +1353,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 2.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.30.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1375,7 +1375,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 4.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.31.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1397,7 +1397,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 8.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.32.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1419,7 +1419,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 16.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.33.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1441,7 +1441,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 32.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.34.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1463,7 +1463,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 64.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.35.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1485,7 +1485,7 @@
 </pre>
 <p>Rounds an integer value up to the next multiple of 128.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.36.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.36.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1511,7 +1511,7 @@
  MUST be a
 power of two.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1540,7 +1540,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 2.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.38.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1562,7 +1562,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 4.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.39.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1584,7 +1584,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 8.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.40.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1606,7 +1606,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 16.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.41.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1628,7 +1628,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 32.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.42.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1650,7 +1650,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 64.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.43.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1672,7 +1672,7 @@
 </pre>
 <p>Rounds an integer value down to the next multiple of 128.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.44.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1698,7 +1698,7 @@
  MUST be a
 power of two.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.45.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1728,7 +1728,7 @@
 <p>Convert 64-bit floating point value (double) from big endian byte order
 into native byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.46.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1751,7 +1751,7 @@
 <p>Convert 64-bit floating point value (double) from little endian byte order
 into native byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.47.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1773,7 +1773,7 @@
 GDOUBLE_SWAP_LE_BE (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> in</code></em>);</pre>
 <p>Swap byte order of a 64-bit floating point value (double).</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.48.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1788,7 +1788,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.48.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.48.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>in</code></em>
 byte-swapped.</p>
 <p></p>
@@ -1802,7 +1802,7 @@
 <p>Convert 64-bit floating point value (double) from native byte order into
 big endian byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.49.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1825,7 +1825,7 @@
 <p>Convert 64-bit floating point value (double) from native byte order into
 little endian byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.50.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1848,7 +1848,7 @@
 <p>Convert 32-bit floating point value (float) from big endian byte order
 into native byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.51.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1871,7 +1871,7 @@
 <p>Convert 32-bit floating point value (float) from little endian byte order
 into native byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.52.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1893,7 +1893,7 @@
 GFLOAT_SWAP_LE_BE (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> in</code></em>);</pre>
 <p>Swap byte order of a 32-bit floating point value (float).</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.53.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.53.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1908,7 +1908,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.53.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.53.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>in</code></em>
 byte-swapped.</p>
 <p></p>
@@ -1922,7 +1922,7 @@
 <p>Convert 32-bit floating point value (float) from native byte order into
 big endian byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.54.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1945,7 +1945,7 @@
 <p>Convert 32-bit floating point value (float) from native byte order into
 little endian byte order.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.55.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1968,7 +1968,7 @@
 <p>Convert <em class="parameter"><code>value</code></em>
  to a gdouble.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.56.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1983,7 +1983,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.56.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.56.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>value</code></em>
 converted to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.</p>
 <p></p>
@@ -1997,7 +1997,7 @@
 <p>Convert <em class="parameter"><code>value</code></em>
  to a guint64.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.57.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.57.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2012,7 +2012,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.57.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.57.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>value</code></em>
 converted to a <span class="type">guint64</span>.</p>
 <p></p>
@@ -2026,7 +2026,7 @@
                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>Dumps the memory block into a hex representation. Useful for debugging.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.58.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.58.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2063,7 +2063,7 @@
 <p>This function can potentially be very slow if val and num are both
 greater than G_MAXUINT32.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.59.6"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.59.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2090,7 +2090,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.59.7"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.59.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>val</code></em>
 * <em class="parameter"><code>num</code></em>
 / <em class="parameter"><code>denom</code></em>
@@ -2118,7 +2118,7 @@
 <p>This function can potentially be very slow if val and num are both
 greater than G_MAXUINT32.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.60.6"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.60.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2145,7 +2145,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.60.7"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.60.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>val</code></em>
 * <em class="parameter"><code>num</code></em>
 / <em class="parameter"><code>denom</code></em>
@@ -2173,7 +2173,7 @@
 <p>This function can potentially be very slow if val and num are both
 greater than G_MAXUINT32.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.61.6"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.61.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2200,7 +2200,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.61.7"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.61.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>val</code></em>
 * <em class="parameter"><code>num</code></em>
 / <em class="parameter"><code>denom</code></em>
@@ -2229,7 +2229,7 @@
 <em class="parameter"><code>denom</code></em>
  must be positive.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.62.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.62.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2256,7 +2256,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.62.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.62.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>val</code></em>
 * <em class="parameter"><code>num</code></em>
 / <em class="parameter"><code>denom</code></em>
@@ -2285,7 +2285,7 @@
 <em class="parameter"><code>denom</code></em>
  must be positive.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.63.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.63.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2312,7 +2312,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.63.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.63.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>val</code></em>
 * <em class="parameter"><code>num</code></em>
 / <em class="parameter"><code>denom</code></em>
@@ -2341,7 +2341,7 @@
 <em class="parameter"><code>denom</code></em>
  must be positive.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.64.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.64.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2368,7 +2368,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.64.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.64.6"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>val</code></em>
 * <em class="parameter"><code>num</code></em>
 / <em class="parameter"><code>denom</code></em>
@@ -2392,7 +2392,7 @@
 and <em class="parameter"><code>b</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.65.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.65.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2414,7 +2414,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.65.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.65.6"></a><h4>Returns</h4>
 <p> Greatest common divisor of <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
 </p>
@@ -2433,7 +2433,7 @@
 and <em class="parameter"><code>b</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.66.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.66.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2455,7 +2455,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.66.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.66.6"></a><h4>Returns</h4>
 <p> Greatest common divisor of <em class="parameter"><code>a</code></em>
 and <em class="parameter"><code>b</code></em>
 </p>
@@ -2471,7 +2471,7 @@
                              <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *dest</code></em>);</pre>
 <p>Transforms a fraction to a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.67.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.67.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2508,7 +2508,7 @@
 <p>Transforms a <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> to a fraction and simplifies
 the result.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.68.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.68.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2554,7 +2554,7 @@
  and <em class="parameter"><code>res_d</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.69.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.69.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2596,7 +2596,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.69.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.69.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on overflow, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
 <p></p>
 </div>
@@ -2620,7 +2620,7 @@
  and <em class="parameter"><code>res_d</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.70.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.70.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2662,7 +2662,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.70.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.70.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on overflow, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
 <p></p>
 </div>
@@ -2682,7 +2682,7 @@
  and returns
 -1 if a &lt; b, 0 if a = b and 1 if a &gt; b.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.71.5"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.71.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2714,7 +2714,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.71.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.71.6"></a><h4>Returns</h4>
 <p> -1 if a &lt; b; 0 if a = b; 1 if a &gt; b.</p>
 <p></p>
 </div>
@@ -2730,7 +2730,7 @@
 on a segment-done message to be the same as that of the last seek event, to
 indicate that event and the message correspond to the same segment.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.72.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.72.6"></a><h4>Returns</h4>
 <p> A constantly incrementing 32-bit unsigned integer, which might
 overflow back to 0 at some point. Use <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()"><code class="function">gst_util_seqnum_compare()</code></a> to make sure
 you handle wraparound correctly.</p>
@@ -2748,7 +2748,7 @@
  - <em class="parameter"><code>s2</code></em>
 ).</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.73.6"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.73.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2770,7 +2770,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.73.7"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.73.7"></a><h4>Returns</h4>
 <p> A negative number if <em class="parameter"><code>s1</code></em>
 is before <em class="parameter"><code>s2</code></em>
 , 0 if they are equal, or a
@@ -2789,7 +2789,7 @@
 <p>This function is used to generate a new group-id for the
 stream-start event.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.74.6"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.74.6"></a><h4>Returns</h4>
 <p> A constantly incrementing unsigned integer, which might
 overflow back to 0 at some point.</p>
 <p></p>
@@ -2810,7 +2810,7 @@
  or when <em class="parameter"><code>value</code></em>
  cannot be converted to the type of the property.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.75.6"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.75.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2848,7 +2848,7 @@
 <p>Note that this function is dangerous as it does not return any indication
 if the conversion worked or not.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.76.6"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.76.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2878,7 +2878,7 @@
 <p>Get a timestamp as GstClockTime to be used for interval measurements.
 The timestamp should not be interpreted in any other way.</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.77.5"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.77.5"></a><h4>Returns</h4>
 <p> the timestamp</p>
 <p></p>
 </div>
@@ -2907,7 +2907,7 @@
  has the same type as the array elements.</p>
 <p>The complexity of this search function is O(log (num_elements)).</p>
 <div class="refsect3">
-<a name="id-1.3.57.7.78.7"></a><h4>Parameters</h4>
+<a name="id-1.3.58.7.78.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2956,7 +2956,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.57.7.78.8"></a><h4>Returns</h4>
+<a name="id-1.3.58.7.78.8"></a><h4>Returns</h4>
 <p> The address of the found
 element or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if nothing was found. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -2969,7 +2969,7 @@
 <a name="GstSearchMode"></a><h3>enum GstSearchMode</h3>
 <p>The different search modes.</p>
 <div class="refsect3">
-<a name="id-1.3.57.8.2.4"></a><h4>Members</h4>
+<a name="id-1.3.58.8.2.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/gst/html/gstreamer-GstValue.html b/docs/gst/html/gstreamer-GstValue.html
index 46850e8..484915a 100644
--- a/docs/gst/html/gstreamer-GstValue.html
+++ b/docs/gst/html/gstreamer-GstValue.html
@@ -752,7 +752,7 @@
 </div>
 
 <div class="refsect3">
-<a name="id-1.3.58.7.2.6"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -805,7 +805,7 @@
 </div>
 
 <div class="refsect3">
-<a name="id-1.3.58.7.3.6"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -827,7 +827,7 @@
 <p>Can be used together with <a class="link" href="gstreamer-GstValue.html#GST-FOURCC-FORMAT:CAPS" title="GST_FOURCC_FORMAT"><span class="type">GST_FOURCC_FORMAT</span></a> to properly output a
 <span class="type">guint32</span> fourcc value in a <code class="function">printf()</code>-style text message.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.4.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -849,7 +849,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-INT-RANGE:CAPS" title="GST_TYPE_INT_RANGE"><span class="type">GST_TYPE_INT_RANGE</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.5.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -871,7 +871,7 @@
 </pre>
 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an integer range</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.6.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.6.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstIntRange</p>
 <p></p>
 </div>
@@ -888,7 +888,7 @@
  and <em class="parameter"><code>end</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.7.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -923,7 +923,7 @@
 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.8.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -938,7 +938,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.8.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.8.6"></a><h4>Returns</h4>
 <p> the minimum of the range</p>
 <p></p>
 </div>
@@ -951,7 +951,7 @@
 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.9.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -966,7 +966,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.9.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.9.6"></a><h4>Returns</h4>
 <p> the maximum of the range</p>
 <p></p>
 </div>
@@ -985,7 +985,7 @@
  and <em class="parameter"><code>step</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.10.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1025,7 +1025,7 @@
 <p>Gets the step of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.11.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1040,7 +1040,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.11.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.11.6"></a><h4>Returns</h4>
 <p> the step of the range</p>
 <p></p>
 </div>
@@ -1052,7 +1052,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS" title="GST_TYPE_BITMASK"><span class="type">GST_TYPE_BITMASK</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.12.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1074,7 +1074,7 @@
 </pre>
 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a 64-bit bitmask.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.13.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.13.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstBitmask (which is not explicitly typed)</p>
 <p></p>
 </div>
@@ -1089,7 +1089,7 @@
  to the bitmask specified by <em class="parameter"><code>bitmask</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.14.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1119,7 +1119,7 @@
 <p>Gets the bitmask specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.15.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1134,7 +1134,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.15.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.15.6"></a><h4>Returns</h4>
 <p> the bitmask.</p>
 <p></p>
 </div>
@@ -1146,7 +1146,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS" title="GST_TYPE_INT64_RANGE"><span class="type">GST_TYPE_INT64_RANGE</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.16.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1168,7 +1168,7 @@
 </pre>
 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents an <span class="type">gint64</span> range</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.17.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.17.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstInt64Range</p>
 <p></p>
 </div>
@@ -1185,7 +1185,7 @@
  and <em class="parameter"><code>end</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.18.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1220,7 +1220,7 @@
 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.19.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1235,7 +1235,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.19.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.19.6"></a><h4>Returns</h4>
 <p> the minimum of the range</p>
 <p></p>
 </div>
@@ -1248,7 +1248,7 @@
 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.20.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.20.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1263,7 +1263,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.20.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.20.6"></a><h4>Returns</h4>
 <p> the maximum of the range</p>
 <p></p>
 </div>
@@ -1282,7 +1282,7 @@
  and <em class="parameter"><code>step</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.21.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1322,7 +1322,7 @@
 <p>Gets the step of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.22.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1337,7 +1337,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.22.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.22.6"></a><h4>Returns</h4>
 <p> the step of the range</p>
 <p></p>
 </div>
@@ -1349,7 +1349,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS" title="GST_TYPE_DOUBLE_RANGE"><span class="type">GST_TYPE_DOUBLE_RANGE</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.23.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1371,7 +1371,7 @@
 </pre>
 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a floating point range with double precision</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.24.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.24.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstIntRange</p>
 <p></p>
 </div>
@@ -1388,7 +1388,7 @@
  and <em class="parameter"><code>end</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.25.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1423,7 +1423,7 @@
 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.26.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.26.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1438,7 +1438,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.26.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.26.6"></a><h4>Returns</h4>
 <p> the minimum of the range</p>
 <p></p>
 </div>
@@ -1451,7 +1451,7 @@
 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.27.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.27.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1466,7 +1466,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.27.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.27.6"></a><h4>Returns</h4>
 <p> the maximum of the range</p>
 <p></p>
 </div>
@@ -1478,7 +1478,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.28.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1504,7 +1504,7 @@
 will be chosen in the end. This means that all values in the list are
 meaningful on their own.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.29.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.29.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstValueList (which is not explicitly typed)</p>
 <p></p>
 </div>
@@ -1516,7 +1516,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-ARRAY:CAPS" title="GST_TYPE_ARRAY"><span class="type">GST_TYPE_ARRAY</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.30.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1543,7 +1543,7 @@
 used for example to express channel layouts for multichannel audio where
 each channel needs to be mapped to a position in the room.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.31.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.31.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstArrayList (which is not explicitly typed)</p>
 <p></p>
 </div>
@@ -1558,7 +1558,7 @@
  to the GstValueList in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.32.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.32.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1590,7 +1590,7 @@
  to the GstValueList in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.33.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.33.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1623,7 +1623,7 @@
  to the GstValueList in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.34.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.34.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1659,7 +1659,7 @@
 <em class="parameter"><code>dest</code></em>
  will be initialized to the type <a class="link" href="gstreamer-GstValue.html#GST-TYPE-LIST:CAPS" title="GST_TYPE_LIST"><span class="type">GST_TYPE_LIST</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.35.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.35.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1704,7 +1704,7 @@
 
 were equal).</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.36.6"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.36.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1739,7 +1739,7 @@
 <p>Gets the number of values contained in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.37.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1754,7 +1754,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.37.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.37.6"></a><h4>Returns</h4>
 <p> the number of values</p>
 <p></p>
 </div>
@@ -1770,7 +1770,7 @@
 has the index <em class="parameter"><code>index</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.38.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1792,7 +1792,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.38.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.38.6"></a><h4>Returns</h4>
 <p> the value at the given index. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -1804,7 +1804,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION:CAPS" title="GST_TYPE_FRACTION"><span class="type">GST_TYPE_FRACTION</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.39.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.39.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1827,7 +1827,7 @@
 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a fraction of an integer numerator over
 an integer denominator</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.40.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.40.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstFraction (which is not explicitly typed)</p>
 <p></p>
 </div>
@@ -1846,7 +1846,7 @@
 The fraction gets reduced to the smallest numerator and denominator,
 and if necessary the sign is moved to the numerator.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.41.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.41.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1881,7 +1881,7 @@
 <p>Gets the numerator of the fraction specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.42.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1896,7 +1896,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.42.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.42.6"></a><h4>Returns</h4>
 <p> the numerator of the fraction.</p>
 <p></p>
 </div>
@@ -1909,7 +1909,7 @@
 <p>Gets the denominator of the fraction specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.43.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1924,7 +1924,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.43.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.43.6"></a><h4>Returns</h4>
 <p> the denominator of the fraction.</p>
 <p></p>
 </div>
@@ -1940,7 +1940,7 @@
 <em class="parameter"><code>product</code></em>
  to the product of the two fractions.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.44.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1967,7 +1967,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.44.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.44.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> in case of an error (like integer overflow), <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
 <p></p>
 </div>
@@ -1984,7 +1984,7 @@
  and sets <em class="parameter"><code>dest</code></em>
  to the result.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.45.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.45.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2011,7 +2011,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.45.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.45.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> in case of an error (like integer overflow), <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</p>
 <p></p>
 </div>
@@ -2023,7 +2023,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="gstreamer-GstValue.html#GST-TYPE-FRACTION-RANGE:CAPS" title="GST_TYPE_FRACTION_RANGE"><span class="type">GST_TYPE_FRACTION_RANGE</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.46.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.46.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2045,7 +2045,7 @@
 </pre>
 <p>a <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> type that represents a GstFraction range</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.47.5"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.47.5"></a><h4>Returns</h4>
 <p> the <a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstFractionRange</p>
 <p></p>
 </div>
@@ -2062,7 +2062,7 @@
  and <em class="parameter"><code>end</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.48.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2097,7 +2097,7 @@
 <p>Gets the minimum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.49.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.49.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2112,7 +2112,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.49.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.49.6"></a><h4>Returns</h4>
 <p> the minimum of the range</p>
 <p></p>
 </div>
@@ -2125,7 +2125,7 @@
 <p>Gets the maximum of the range specified by <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.50.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2140,7 +2140,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.50.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.50.6"></a><h4>Returns</h4>
 <p> the maximum of the range</p>
 <p></p>
 </div>
@@ -2162,7 +2162,7 @@
 /<em class="parameter"><code>denominator_end</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.51.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2206,7 +2206,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <a class="link" href="GstDateTime.html#GST-TYPE-DATE-TIME:CAPS" title="GST_TYPE_DATE_TIME"><span class="type">GST_TYPE_DATE_TIME</span></a> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.52.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.52.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2228,7 +2228,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_CAPS</span> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.53.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.53.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2256,7 +2256,7 @@
  will be taken by the <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.54.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.54.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2289,7 +2289,7 @@
 before getting rid of the <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.55.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.55.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2304,7 +2304,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.55.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.55.6"></a><h4>Returns</h4>
 <p> the contents of <em class="parameter"><code>value</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -2317,7 +2317,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_CAPS_FEATURES</span> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.56.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.56.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2342,7 +2342,7 @@
  to <em class="parameter"><code>features</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.57.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.57.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2372,7 +2372,7 @@
 <p>Gets the contents of <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.58.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.58.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2387,7 +2387,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.58.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.58.6"></a><h4>Returns</h4>
 <p> the contents of <em class="parameter"><code>value</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -2400,7 +2400,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_STRUCTURE</span> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.59.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.59.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2425,7 +2425,7 @@
  to <em class="parameter"><code>structure</code></em>
 .  The actual</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.60.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.60.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2455,7 +2455,7 @@
 <p>Gets the contents of <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.61.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.61.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2470,7 +2470,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.61.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.61.6"></a><h4>Returns</h4>
 <p> the contents of <em class="parameter"><code>value</code></em>
 . </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
@@ -2483,7 +2483,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_BUFFER</span> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.62.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.62.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2509,7 +2509,7 @@
 a reference to <em class="parameter"><code>v</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.63.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.63.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2524,7 +2524,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.63.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.63.6"></a><h4>Returns</h4>
 <p> buffer. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -2538,7 +2538,7 @@
  as the value of <em class="parameter"><code>v</code></em>
 .  Caller retains reference to buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.64.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.64.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2569,7 +2569,7 @@
  as the value of <em class="parameter"><code>v</code></em>
 .  Caller gives away reference to buffer.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.65.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.65.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2598,7 +2598,7 @@
 </pre>
 <p>Checks if the given <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> contains a <span class="type">GST_TYPE_SAMPLE</span> value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.66.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.66.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2624,7 +2624,7 @@
 a reference to <em class="parameter"><code>v</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.67.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.67.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2639,7 +2639,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.67.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.67.6"></a><h4>Returns</h4>
 <p> sample. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -2653,7 +2653,7 @@
  as the value of <em class="parameter"><code>v</code></em>
 .  Caller retains reference to sample.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.68.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.68.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2684,7 +2684,7 @@
  as the value of <em class="parameter"><code>v</code></em>
 .  Caller gives away reference to sample.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.69.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.69.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2722,7 +2722,7 @@
                         <em class="parameter"><code>const <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value2</code></em>);</pre>
 <p>Used together with <a class="link" href="gstreamer-GstValue.html#gst-value-compare" title="gst_value_compare ()"><code class="function">gst_value_compare()</code></a> to compare <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.71.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.71.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2744,7 +2744,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.71.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.71.6"></a><h4>Returns</h4>
 <p> one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN
 or GST_VALUE_UNORDERED</p>
 <p></p>
@@ -2758,7 +2758,7 @@
 <p>Used by <a class="link" href="gstreamer-GstValue.html#gst-value-serialize" title="gst_value_serialize ()"><code class="function">gst_value_serialize()</code></a> to obtain a non-binary form of the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.72.6"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.72.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2773,7 +2773,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.72.7"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.72.7"></a><h4>Returns</h4>
 <p> the string representation of the value. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
@@ -2786,7 +2786,7 @@
                             <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s</code></em>);</pre>
 <p>Used by <a class="link" href="gstreamer-GstValue.html#gst-value-deserialize" title="gst_value_deserialize ()"><code class="function">gst_value_deserialize()</code></a> to parse a non-binary form into the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.73.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.73.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2808,7 +2808,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.73.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.73.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for success</p>
 <p></p>
 </div>
@@ -2823,7 +2823,7 @@
 (which means: multiple possible values, such as data lists or data
 ranges) value.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.74.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.74.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2838,7 +2838,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.74.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.74.6"></a><h4>Returns</h4>
 <p> true if the value is "fixed".</p>
 <p></p>
 </div>
@@ -2851,7 +2851,7 @@
 <p>Registers functions to perform calculations on <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> items of a given
 type. Each type can only be added once.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.75.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.75.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2875,7 +2875,7 @@
 <p>Initialises the target value to be of the same type as source and then copies
 the contents from source to target.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.76.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.76.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2907,7 +2907,7 @@
 getting back this string later on using <a class="link" href="gstreamer-GstValue.html#gst-value-deserialize" title="gst_value_deserialize ()"><code class="function">gst_value_deserialize()</code></a>.</p>
 <p>Free-function: g_free</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.77.6"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.77.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2922,7 +2922,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.77.7"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.77.7"></a><h4>Returns</h4>
 <p> the serialization for <em class="parameter"><code>value</code></em>
 or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none exists. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
@@ -2937,7 +2937,7 @@
 <p>Tries to deserialize a string into the type specified by the given GValue.
 If the operation succeeds, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is returned, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.78.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.78.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2960,7 +2960,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.78.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.78.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
 <p></p>
 </div>
@@ -2985,7 +2985,7 @@
 , GST_VALUE_LESS_THAN is returned.
 If the values are equal, GST_VALUE_EQUAL is returned.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.79.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.79.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3007,7 +3007,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.79.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.79.6"></a><h4>Returns</h4>
 <p> comparison result</p>
 <p></p>
 </div>
@@ -3022,7 +3022,7 @@
  and <em class="parameter"><code>value2</code></em>
  can be compared.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.80.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.80.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3044,7 +3044,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.80.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.80.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values can be compared</p>
 <p></p>
 </div>
@@ -3060,7 +3060,7 @@
  and <em class="parameter"><code>value2</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.81.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.81.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3087,7 +3087,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.81.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.81.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the union succeeded.</p>
 <p></p>
 </div>
@@ -3108,7 +3108,7 @@
 integer range.  If there is the possibility that two values can
 be unioned, this function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.82.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.82.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3130,7 +3130,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.82.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.82.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there is a function allowing the two values to
 be unioned.</p>
 <p></p>
@@ -3149,7 +3149,7 @@
 .
 Note that this means subtraction as in sets, not as in mathematics.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.83.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.83.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3179,7 +3179,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.83.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.83.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the subtraction is not empty</p>
 <p></p>
 </div>
@@ -3194,7 +3194,7 @@
  from <em class="parameter"><code>minuend</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.84.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.84.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3216,7 +3216,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.84.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.84.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a subtraction is possible</p>
 <p></p>
 </div>
@@ -3235,7 +3235,7 @@
 <em class="parameter"><code>dest</code></em>
  is not modified.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.85.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.85.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3264,7 +3264,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.85.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.85.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the intersection is non-empty</p>
 <p></p>
 </div>
@@ -3279,7 +3279,7 @@
 Two values will produce a valid intersection if they have the same
 type.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.86.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.86.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3301,7 +3301,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.86.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.86.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the values can intersect</p>
 <p></p>
 </div>
@@ -3319,7 +3319,7 @@
  is a subset of <em class="parameter"><code>value2</code></em>
 </p>
 <div class="refsect3">
-<a name="id-1.3.58.7.87.6"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.87.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3351,7 +3351,7 @@
  to the GstValueArray in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.88.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.88.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3383,7 +3383,7 @@
  to the GstValueArray in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.89.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.89.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3414,7 +3414,7 @@
 <p>Gets the number of values contained in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.90.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.90.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3429,7 +3429,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.90.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.90.6"></a><h4>Returns</h4>
 <p> the number of values</p>
 <p></p>
 </div>
@@ -3445,7 +3445,7 @@
 has the index <em class="parameter"><code>index</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.91.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.91.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3467,7 +3467,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.91.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.91.6"></a><h4>Returns</h4>
 <p> the value at the given index. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -3482,7 +3482,7 @@
  to the GstValueArray in <em class="parameter"><code>value</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.92.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.92.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3518,7 +3518,7 @@
 If <em class="parameter"><code>src</code></em>
  is already fixed, this function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
 <div class="refsect3">
-<a name="id-1.3.58.7.93.5"></a><h4>Parameters</h4>
+<a name="id-1.3.59.7.93.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -3540,7 +3540,7 @@
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.3.58.7.93.6"></a><h4>Returns</h4>
+<a name="id-1.3.59.7.93.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>dest</code></em>
 contains a fixated version of <em class="parameter"><code>src</code></em>
 .</p>
@@ -3605,7 +3605,7 @@
 <p>VTable for the <a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="parameter"><code>type</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.3.58.8.6.5"></a><h4>Members</h4>
+<a name="id-1.3.59.8.6.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
diff --git a/docs/gst/html/gstreamer-GstVersion.html b/docs/gst/html/gstreamer-GstVersion.html
index b76ca59..ef5ff11 100644
--- a/docs/gst/html/gstreamer-GstVersion.html
+++ b/docs/gst/html/gstreamer-GstVersion.html
@@ -117,7 +117,7 @@
 <p>Check whether a GStreamer version equal to or greater than
 major.minor.micro is present.</p>
 <div class="refsect3">
-<a name="id-1.3.59.6.6.5"></a><h4>Parameters</h4>
+<a name="id-1.3.60.6.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/gst/html/gstreamer-gstprotection.html b/docs/gst/html/gstreamer-gstprotection.html
new file mode 100644
index 0000000..5459d08
--- /dev/null
+++ b/docs/gst/html/gstreamer-gstprotection.html
@@ -0,0 +1,224 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GStreamer 1.0 Core Reference Manual: gstprotection</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
+<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
+<link rel="prev" href="GstPreset.html" title="GstPreset">
+<link rel="next" href="GstQuery.html" title="GstQuery">
+<meta name="generator" content="GTK-Doc V1.21 (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="#gstreamer-gstprotection.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GstPreset.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GstQuery.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gstreamer-gstprotection"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gstreamer-gstprotection.top_of_page"></a>gstprotection</span></h2>
+<p>gstprotection — Functions and classes to support encrypted streams.</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gstreamer-gstprotection.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="returnvalue">GstProtectionMeta</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()">gst_buffer_add_protection_meta</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gstreamer-gstprotection.html#gst-buffer-get-protection-meta" title="gst_buffer_get_protection_meta()">gst_buffer_get_protection_meta</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gstreamer-gstprotection.html#gst-protection-select-system" title="gst_protection_select_system ()">gst_protection_select_system</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-gstprotection.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table 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="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta">GstProtectionMeta</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-gstprotection.includes"></a><h2>Includes</h2>
+<pre class="synopsis">#include &lt;gst/gstprotection.h&gt;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gstreamer-gstprotection.description"></a><h2>Description</h2>
+<p>The GstProtectionMeta class enables the information needed to decrypt a
+<a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to be attached to that buffer.</p>
+<p>Typically, a demuxer element would attach GstProtectionMeta objects
+to the buffers that it pushes downstream. The demuxer would parse the
+protection information for a video/audio frame from its input data and use
+this information to populate the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> <em class="parameter"><code>info</code></em>
+ field,
+which is then encapsulated in a GstProtectionMeta object and attached to
+the corresponding output buffer using the <a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()"><code class="function">gst_buffer_add_protection_meta()</code></a>
+function. The information in this attached GstProtectionMeta would be
+used by a downstream decrypter element to recover the original unencrypted
+frame.</p>
+</div>
+<div class="refsect1">
+<a name="gstreamer-gstprotection.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gst-buffer-add-protection-meta"></a><h3>gst_buffer_add_protection_meta ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="returnvalue">GstProtectionMeta</span></a> *
+gst_buffer_add_protection_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                <em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *info</code></em>);</pre>
+<p>Attaches protection metadata to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.42.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>buffer</p></td>
+<td class="parameter_description"><p><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> holding an encrypted sample, to which protection
+metadata should be added.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> holding cryptographic
+information relating to the sample contained in <em class="parameter"><code>buffer</code></em>
+. This
+function takes ownership of <em class="parameter"><code>info</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.42.7.2.6"></a><h4>Returns</h4>
+<p> a pointer to the added <a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="type">GstProtectionMeta</span></a> if successful; <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+unsuccessful.</p>
+<p></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-protection-meta"></a><h3>gst_buffer_get_protection_meta()</h3>
+<pre class="programlisting">#define             gst_buffer_get_protection_meta(b)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-protection-select-system"></a><h3>gst_protection_select_system ()</h3>
+<pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_protection_select_system (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **system_identifiers</code></em>);</pre>
+<p>Iterates the supplied list of UUIDs and checks the GstRegistry for
+an element that supports one of the supplied UUIDs. If more than one
+element matches, the system ID of the highest ranked element is selected.</p>
+<div class="refsect3">
+<a name="id-1.3.42.7.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>system_identifiers</p></td>
+<td class="parameter_description"><p> A null terminated array of strings
+that contains the UUID values of each protection system that is to be
+checked. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.42.7.4.6"></a><h4>Returns</h4>
+<p> One of the strings from <em class="parameter"><code>system_identifiers</code></em>
+that
+indicates the highest ranked element that implements the protection system
+indicated by that system ID, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no element has been found. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gstreamer-gstprotection.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstProtectionMeta"></a><h3>struct GstProtectionMeta</h3>
+<pre class="programlisting">struct GstProtectionMeta {
+  GstMeta meta;
+
+  GstStructure *info;
+};
+</pre>
+<p>Metadata type that holds information about a sample from a protection-protected
+track, including the information needed to decrypt it (if it is encrypted).</p>
+<div class="refsect3">
+<a name="id-1.3.42.8.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstProtectionMeta.meta"></a>meta</code></em>;</p></td>
+<td class="struct_member_description"><p>the parent <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstProtectionMeta.info"></a>info</code></em>;</p></td>
+<td class="struct_member_description"><p>the cryptographic information needed to decrypt the sample.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.21</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index 7a0e7d5..0eecc93 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -164,6 +164,9 @@
 <span class="refentrytitle"><a href="GstPreset.html">GstPreset</a></span><span class="refpurpose"> — helper interface for element presets</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gstreamer-gstprotection.html">gstprotection</a></span><span class="refpurpose"> — Functions and classes to support encrypted streams.</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Provide functions to create queries, and to set and parse
                     values in them.</span>
 </dt>
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index aa16774..8cbd137 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -1524,6 +1524,7 @@
 <ANCHOR id="gst-pipeline-new" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-new">
 <ANCHOR id="gst-pipeline-get-bus" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-bus">
 <ANCHOR id="gst-pipeline-set-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-set-clock">
+<ANCHOR id="gst-pipeline-get-pipeline-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-pipeline-clock">
 <ANCHOR id="gst-pipeline-get-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-get-clock">
 <ANCHOR id="gst-pipeline-use-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-use-clock">
 <ANCHOR id="gst-pipeline-auto-clock" href="gstreamer-1.0/GstPipeline.html#gst-pipeline-auto-clock">
@@ -1656,6 +1657,17 @@
 <ANCHOR id="GstPreset.other_details" href="gstreamer-1.0/GstPreset.html#GstPreset.other_details">
 <ANCHOR id="GstPreset-struct" href="gstreamer-1.0/GstPreset.html#GstPreset-struct">
 <ANCHOR id="GstPresetInterface" href="gstreamer-1.0/GstPreset.html#GstPresetInterface">
+<ANCHOR id="gstreamer-gstprotection" href="gstreamer-1.0/gstreamer-gstprotection.html">
+<ANCHOR id="gstreamer-gstprotection.functions" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.functions">
+<ANCHOR id="gstreamer-gstprotection.other" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.other">
+<ANCHOR id="gstreamer-gstprotection.includes" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.includes">
+<ANCHOR id="gstreamer-gstprotection.description" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.description">
+<ANCHOR id="gstreamer-gstprotection.functions_details" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.functions_details">
+<ANCHOR id="gst-buffer-add-protection-meta" href="gstreamer-1.0/gstreamer-gstprotection.html#gst-buffer-add-protection-meta">
+<ANCHOR id="gst-buffer-get-protection-meta" href="gstreamer-1.0/gstreamer-gstprotection.html#gst-buffer-get-protection-meta">
+<ANCHOR id="gst-protection-select-system" href="gstreamer-1.0/gstreamer-gstprotection.html#gst-protection-select-system">
+<ANCHOR id="gstreamer-gstprotection.other_details" href="gstreamer-1.0/gstreamer-gstprotection.html#gstreamer-gstprotection.other_details">
+<ANCHOR id="GstProtectionMeta" href="gstreamer-1.0/gstreamer-gstprotection.html#GstProtectionMeta">
 <ANCHOR id="GstQuery" href="gstreamer-1.0/GstQuery.html">
 <ANCHOR id="GstQuery.functions" href="gstreamer-1.0/GstQuery.html#GstQuery.functions">
 <ANCHOR id="GstQuery.other" href="gstreamer-1.0/GstQuery.html#GstQuery.other">
@@ -1814,11 +1826,13 @@
 <ANCHOR id="gst-segment-free" href="gstreamer-1.0/GstSegment.html#gst-segment-free">
 <ANCHOR id="gst-segment-do-seek" href="gstreamer-1.0/GstSegment.html#gst-segment-do-seek">
 <ANCHOR id="gst-segment-to-running-time" href="gstreamer-1.0/GstSegment.html#gst-segment-to-running-time">
+<ANCHOR id="gst-segment-to-running-time-full" href="gstreamer-1.0/GstSegment.html#gst-segment-to-running-time-full">
 <ANCHOR id="gst-segment-to-stream-time" href="gstreamer-1.0/GstSegment.html#gst-segment-to-stream-time">
 <ANCHOR id="gst-segment-to-position" href="gstreamer-1.0/GstSegment.html#gst-segment-to-position">
 <ANCHOR id="gst-segment-set-running-time" href="gstreamer-1.0/GstSegment.html#gst-segment-set-running-time">
 <ANCHOR id="gst-segment-copy-into" href="gstreamer-1.0/GstSegment.html#gst-segment-copy-into">
 <ANCHOR id="gst-segment-offset-running-time" href="gstreamer-1.0/GstSegment.html#gst-segment-offset-running-time">
+<ANCHOR id="gst-segment-is-equal" href="gstreamer-1.0/GstSegment.html#gst-segment-is-equal">
 <ANCHOR id="GstSegment.other_details" href="gstreamer-1.0/GstSegment.html#GstSegment.other_details">
 <ANCHOR id="GstSegment-struct" href="gstreamer-1.0/GstSegment.html#GstSegment-struct">
 <ANCHOR id="GstSegmentFlags" href="gstreamer-1.0/GstSegment.html#GstSegmentFlags">
diff --git a/docs/gst/html/libgstreamer.html b/docs/gst/html/libgstreamer.html
index 5779c07..043e7f3 100644
--- a/docs/gst/html/libgstreamer.html
+++ b/docs/gst/html/libgstreamer.html
@@ -149,6 +149,9 @@
 <span class="refentrytitle"><a href="GstPreset.html">GstPreset</a></span><span class="refpurpose"> — helper interface for element presets</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gstreamer-gstprotection.html">gstprotection</a></span><span class="refpurpose"> — Functions and classes to support encrypted streams.</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="GstQuery.html">GstQuery</a></span><span class="refpurpose"> — Provide functions to create queries, and to set and parse
                     values in them.</span>
 </dt>
diff --git a/docs/gst/running.xml b/docs/gst/running.xml
index db30fe5..103aebb 100644
--- a/docs/gst/running.xml
+++ b/docs/gst/running.xml
@@ -493,7 +493,7 @@
   <title><envar>GST_TAG_ENCODING</envar></title>
   <para>
 Try this character encoding first for tag-related strings where the encoding
-is not defined and which are not UTF-8 already. By defaul the current locale
+is not defined and which are not UTF-8 already. By default the current locale
 will be tried (if not UTF-8).
   </para>
 </formalpara>
@@ -502,7 +502,7 @@
   <title><envar>GST_TAG_ID3_ENCODING</envar></title>
   <para>
 Try this character encoding first for ID3 tag-related strings where the
-encoding is not defined and which are not UTF-8 already. By defaul the current
+encoding is not defined and which are not UTF-8 already. By default the current
 locale will be tried (if not UTF-8).
   </para>
 </formalpara>
diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt
index 86355fb..f1db3a0 100644
--- a/docs/libs/gstreamer-libs-sections.txt
+++ b/docs/libs/gstreamer-libs-sections.txt
@@ -361,6 +361,7 @@
 gst_base_transform_get_buffer_pool
 gst_base_transform_reconfigure_sink
 gst_base_transform_reconfigure_src
+gst_base_transform_update_src
 
 GST_BASE_TRANSFORM_SINK_NAME
 GST_BASE_TRANSFORM_SRC_NAME
diff --git a/docs/libs/html/GstBaseSrc.html b/docs/libs/html/GstBaseSrc.html
index abc8847..33569d8 100644
--- a/docs/libs/html/GstBaseSrc.html
+++ b/docs/libs/html/GstBaseSrc.html
@@ -961,7 +961,7 @@
 used by the base class and its <em class="parameter"><code>params</code></em>
 .</p>
 <p>Unref the <em class="parameter"><code>allocator</code></em>
- after use it.</p>
+ after usage.</p>
 <div class="refsect3">
 <a name="id-1.2.4.4.9.17.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -1016,7 +1016,7 @@
 <div class="refsect3">
 <a name="id-1.2.4.4.9.18.5"></a><h4>Returns</h4>
 <p> the instance of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBufferPool.html"><span class="type">GstBufferPool</span></a> used
-by the src; free it after use it. </p>
+by the src; unref it after usage. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
 </div>
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 6b06a1b..c405bdc 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -1137,11 +1137,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-init" title="gst_byte_reader_init ()">gst_byte_reader_init</a>, function in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
+<a class="link" href="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS" title="GST_BYTE_READER_INIT()">GST_BYTE_READER_INIT</a>, macro in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS" title="GST_BYTE_READER_INIT()">GST_BYTE_READER_INIT</a>, macro in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
+<a class="link" href="gstreamer-libs-GstByteReader.html#gst-byte-reader-init" title="gst_byte_reader_init ()">gst_byte_reader_init</a>, function in <a class="link" href="gstreamer-libs-GstByteReader.html" title="GstByteReader">GstByteReader</a>
 </dt>
 <dd></dd>
 <dt>
diff --git a/docs/manual/appendix-porting.xml b/docs/manual/appendix-porting.xml
index 0bc1e63..6a8eb09 100644
--- a/docs/manual/appendix-porting.xml
+++ b/docs/manual/appendix-porting.xml
@@ -251,9 +251,13 @@
       </listitem>
       <listitem>
         <para>
-          The GstPropertyProbe interface was removed. the is no replacement yet,
-          but a more featureful replacement for device discovery and feature
-          querying is planned, see https://bugzilla.gnome.org/show_bug.cgi?id=678402
+          The GstPropertyProbe interface was removed. There is no replacement
+          for it in GStreamer 1.0.x and 1.2.x, but since version 1.4 there is
+          a more featureful replacement for device discovery and feature
+          querying provided by GstDeviceMonitor, GstDevice, and friends. See
+          the <ulink type="http"
+          url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-device-probing.html">
+          "GStreamer Device Discovery and Device Probing" documentation</ulink>.
         </para>
       </listitem>
       <listitem>
diff --git a/docs/plugins/html/gstreamer-plugins-1.0.devhelp2 b/docs/plugins/html/gstreamer-plugins-1.0.devhelp2
index e8c221e..634c2c8 100644
--- a/docs/plugins/html/gstreamer-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gstreamer-plugins-1.0.devhelp2
@@ -87,9 +87,9 @@
     <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#id-1.2.6.8.3.2.2"/>
     <keyword type="struct" name="struct GstFdSink" link="gstreamer-plugins-fdsink.html#GstFdSink-struct"/>
     <keyword type="property" name="The “fd” property" link="gstreamer-plugins-fdsink.html#GstFdSink--fd"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.8"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.9.1"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.9.2"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.7"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.8.1"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#id-1.2.7.8.8.2"/>
     <keyword type="struct" name="struct GstFdSrc" link="gstreamer-plugins-fdsrc.html#GstFdSrc-struct"/>
     <keyword type="property" name="The “fd” property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--fd"/>
     <keyword type="property" name="The “timeout” property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout"/>
diff --git a/docs/plugins/html/gstreamer-plugins-capsfilter.html b/docs/plugins/html/gstreamer-plugins-capsfilter.html
index ae20ad8..8bf3567 100644
--- a/docs/plugins/html/gstreamer-plugins-capsfilter.html
+++ b/docs/plugins/html/gstreamer-plugins-capsfilter.html
@@ -83,12 +83,23 @@
     <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 videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>GRAY8 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</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> videotestsrc <span class="gtkdoc opt">!</span> capsfilter caps<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>GRAY8 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
       </tr>
     </tbody>
   </table>
 </div>
- Limits acceptable video from videotestsrc to be grayscale.
+ Limits acceptable video from videotestsrc to be grayscale. Equivalent to
+<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> videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>format<span class="gtkdoc opt">=</span>GRAY8 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ which is a short notation for the capsfilter element.
 </div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesink.html b/docs/plugins/html/gstreamer-plugins-fakesink.html
index edc3806..cee9da9 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesink.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesink.html
@@ -148,7 +148,7 @@
     <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 audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> fakesink sync<span class="gtkdoc opt">=</span><span class="keyword">false</span></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> audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> fakesink sync<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
       </tr>
     </tbody>
   </table>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesrc.html b/docs/plugins/html/gstreamer-plugins-fakesrc.html
index 474d662..a3de3ec 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesrc.html
@@ -202,7 +202,7 @@
     <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>v fakesrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> fakesink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v fakesrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> fakesink</pre></td>
       </tr>
     </tbody>
   </table>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsrc.html b/docs/plugins/html/gstreamer-plugins-fdsrc.html
index c8a12f6..6ba6c1c 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsrc.html
@@ -92,22 +92,22 @@
 <p>To generate data, enter some data on the console followed by enter.
 The above mentioned pipeline should dump data packets to the console.</p>
 <p>If the <a class="link" href="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout" title="The “timeout” property"><span class="type">“timeout”</span></a> property is set to a value bigger than 0, fdsrc will
-generate an element message named</p>
-<code class="classname">"GstFdSrcTimeout"</code><p>if no data was received in the given timeout.
-The message's structure contains one field:</p>
+generate an element message named <code class="classname">"GstFdSrcTimeout"</code>
+if no data was received in the given timeout.</p>
+<p>The message's structure contains one field:</p>
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
   <span class="type">guint64</span>
   <code class="classname">"timeout"</code>: the timeout in microseconds that
   expired when waiting for data.
   </p></li></ul></div>
 <div class="refsect2">
-<a name="id-1.2.7.8.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.7.8.7"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">echo <span class="string">&quot;Hello GStreamer&quot;</span> <span class="gtkdoc opt">|</span> gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v fdsrc <span class="gtkdoc opt">!</span> fakesink dump<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
+        <td class="listing_code"><pre class="programlisting">echo <span class="string">&quot;Hello GStreamer&quot;</span> <span class="gtkdoc opt">|</span> gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v fdsrc <span class="gtkdoc opt">!</span> fakesink dump<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -118,7 +118,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.7.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.7.8.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.7.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.7.8.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gstreamer-plugins-filesink.html b/docs/plugins/html/gstreamer-plugins-filesink.html
index 1213e01..8f4d739 100644
--- a/docs/plugins/html/gstreamer-plugins-filesink.html
+++ b/docs/plugins/html/gstreamer-plugins-filesink.html
@@ -106,7 +106,7 @@
     <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 v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>capture1<span class="gtkdoc opt">.</span>jpeg</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> v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>capture1<span class="gtkdoc opt">.</span>jpeg</pre></td>
       </tr>
     </tbody>
   </table>
diff --git a/docs/plugins/html/gstreamer-plugins-filesrc.html b/docs/plugins/html/gstreamer-plugins-filesrc.html
index 9e3dc3c..eca92ea 100644
--- a/docs/plugins/html/gstreamer-plugins-filesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-filesrc.html
@@ -89,12 +89,12 @@
     <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 filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> autoaudiosink</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>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
       </tr>
     </tbody>
   </table>
 </div>
- Play a song.ogg from local dir.
+ Play song.ogg audio file which must be in the current working directory.
 </div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-input-selector.html b/docs/plugins/html/gstreamer-plugins-input-selector.html
index 41863d4..2903ee3 100644
--- a/docs/plugins/html/gstreamer-plugins-input-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-input-selector.html
@@ -321,11 +321,10 @@
 <div class="refsect2">
 <a name="GstInputSelector-block"></a><h3>The <code class="literal">“block”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">gint64</span>
-user_function (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *inputselector,
+user_function (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *gstinputselector,
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)</pre>
-<p>Block all sink pads in preparation for a switch. Returns the stop time of
-the current switch segment, as a running time, or 0 if there is no current
-active pad or the current active pad never received data.</p>
+<p>
+</p>
 <div class="refsect3">
 <a name="id-1.2.12.12.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
@@ -336,8 +335,8 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="parameter_name"><p>inputselector</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a></p></td>
+<td class="parameter_name"><p>gstinputselector</p></td>
+<td class="parameter_description"><p>the object which received the signal.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -348,6 +347,10 @@
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.12.12.2.6"></a><h4>Returns</h4>
+<p></p>
+</div>
 <p>Flags: Action</p>
 </div>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-tee.html b/docs/plugins/html/gstreamer-plugins-tee.html
index 66298f3..d60c91b 100644
--- a/docs/plugins/html/gstreamer-plugins-tee.html
+++ b/docs/plugins/html/gstreamer-plugins-tee.html
@@ -121,13 +121,14 @@
     <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 filesrc location<span class="gtkdoc opt">=</span>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> autoaudiosink t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</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>song<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> tee name<span class="gtkdoc opt">=</span>t <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink t<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> goom <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
       </tr>
     </tbody>
   </table>
 </div>
- Play a song.ogg from local dir and render visualisations using the goom
-element.
+ Play song.ogg audio file which must be in the current working directory
+and render visualisations using the goom element (this can be easier done
+using the playbin element, this is just an example pipeline).
 </div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
diff --git a/docs/pwg/advanced-scheduling.xml b/docs/pwg/advanced-scheduling.xml
index cd88288..4639d63 100644
--- a/docs/pwg/advanced-scheduling.xml
+++ b/docs/pwg/advanced-scheduling.xml
@@ -153,7 +153,7 @@
                                              GstObject   * parent);
 static gboolean	gst_my_filter_activate_mode (GstPad      * pad,
                                              GstObject   * parent,
-                                             GstPadMode    mode
+                                             GstPadMode    mode,
 					     gboolean      active);
 static void	gst_my_filter_loop	    (GstMyFilter * filter);
 
diff --git a/docs/pwg/advanced-types.xml b/docs/pwg/advanced-types.xml
index d1c8b35..bb1d149 100644
--- a/docs/pwg/advanced-types.xml
+++ b/docs/pwg/advanced-types.xml
@@ -128,9 +128,8 @@
 static gboolean
 plugin_init (GstPlugin *plugin)
 {
-  static gchar *exts[] = { "avi", NULL };
   if (!gst_type_find_register (plugin, "", GST_RANK_PRIMARY,
-			       gst_my_typefind_function, exts,
+			       gst_my_typefind_function, "avi",
 			       gst_caps_new_simple ("video/x-msvideo",
 						    NULL), NULL))
     return FALSE;
diff --git a/gst/Makefile.am b/gst/Makefile.am
index 1c67f8e..b0fe9cc 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -99,6 +99,7 @@
 	gstpluginloader.c	\
 	gstpoll.c		\
 	gstpreset.c             \
+	gstprotection.c         \
 	gstquark.c		\
 	gstquery.c		\
 	gstregistry.c		\
@@ -204,6 +205,7 @@
 	gstpluginfeature.h	\
 	gstpoll.h		\
 	gstpreset.h             \
+	gstprotection.h         \
 	gstquery.h		\
 	gstsample.h		\
 	gstsegment.h		\
@@ -266,23 +268,6 @@
 
 gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
-	 -:TAGS eng debug \
-         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
-	           $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
-	           -ldl \
-	 -:SUBDIR gst/parse \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
-	 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
-	 -:LIBFILTER_STATIC gstparse \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = Gst-@GST_API_VERSION@.gir
 
@@ -293,7 +278,7 @@
 gir_sources+=$(patsubst %,$(builddir)/%, $(built_source_make))
 
 Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
-	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no GI_SCANNER_DISABLE_CACHE=yes\
 		$(INTROSPECTION_SCANNER) -v --namespace Gst \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 6af5d37..7698117 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -184,11 +184,12 @@
 	gstmessage.c gstmeta.c gstmemory.c gstminiobject.c gstpad.c \
 	gstpadtemplate.c gstparamspecs.c gstpipeline.c gstplugin.c \
 	gstpluginfeature.c gstpluginloader.c gstpoll.c gstpreset.c \
-	gstquark.c gstquery.c gstregistry.c gstregistrychunks.c \
-	gstsample.c gstsegment.c gststructure.c gstsystemclock.c \
-	gsttaglist.c gsttagsetter.c gsttask.c gsttaskpool.c gsttoc.c \
-	gsttocsetter.c gsttrace.c gsttypefind.c gsttypefindfactory.c \
-	gsturi.c gstutils.c gstvalue.c gstparse.c gstregistrybinary.c
+	gstprotection.c gstquark.c gstquery.c gstregistry.c \
+	gstregistrychunks.c gstsample.c gstsegment.c gststructure.c \
+	gstsystemclock.c gsttaglist.c gsttagsetter.c gsttask.c \
+	gsttaskpool.c gsttoc.c gsttocsetter.c gsttrace.c gsttypefind.c \
+	gsttypefindfactory.c gsturi.c gstutils.c gstvalue.c gstparse.c \
+	gstregistrybinary.c
 @GST_DISABLE_TRACE_FALSE@am__objects_1 = libgstreamer_@GST_API_VERSION@_la-gsttrace.lo
 @GST_DISABLE_REGISTRY_FALSE@am__objects_2 = libgstreamer_@GST_API_VERSION@_la-gstregistrybinary.lo
 am_libgstreamer_@GST_API_VERSION@_la_OBJECTS =  \
@@ -236,6 +237,7 @@
 	libgstreamer_@GST_API_VERSION@_la-gstpluginloader.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstpoll.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstpreset.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstprotection.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstquark.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstquery.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstregistry.lo \
@@ -737,6 +739,7 @@
 	gstpluginloader.c	\
 	gstpoll.c		\
 	gstpreset.c             \
+	gstprotection.c         \
 	gstquark.c		\
 	gstquery.c		\
 	gstregistry.c		\
@@ -844,6 +847,7 @@
 	gstpluginfeature.h	\
 	gstpoll.h		\
 	gstpreset.h             \
+	gstprotection.h         \
 	gstquery.h		\
 	gstsample.h		\
 	gstsegment.h		\
@@ -1029,6 +1033,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpluginloader.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpoll.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstpreset.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquery.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstregistry.Plo@am__quote@
@@ -1383,6 +1388,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstpreset.lo `test -f 'gstpreset.c' || echo '$(srcdir)/'`gstpreset.c
 
+libgstreamer_@GST_API_VERSION@_la-gstprotection.lo: gstprotection.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstprotection.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstprotection.lo `test -f 'gstprotection.c' || echo '$(srcdir)/'`gstprotection.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstprotection.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstprotection.c' object='libgstreamer_@GST_API_VERSION@_la-gstprotection.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstreamer_@GST_API_VERSION@_la-gstprotection.lo `test -f 'gstprotection.c' || echo '$(srcdir)/'`gstprotection.c
+
 libgstreamer_@GST_API_VERSION@_la-gstquark.lo: gstquark.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstreamer_@GST_API_VERSION@_la-gstquark.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstquark.lo `test -f 'gstquark.c' || echo '$(srcdir)/'`gstquark.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstquark.Plo
@@ -1981,25 +1993,8 @@
 
 gcov: $(libgstreamer_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstreamer-@GST_API_VERSION@ \
-	 -:TAGS eng debug \
-         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstreamer_@GST_API_VERSION@_la_SOURCES) \
-	           $(nodist_libgstreamer_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstreamer_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstreamer_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstreamer_@GST_API_VERSION@_la_LIBADD) \
-	           -ldl \
-	 -:SUBDIR gst/parse \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst \
-	 -:HEADERS $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
-	 -:LIBFILTER_STATIC gstparse \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 @HAVE_INTROSPECTION_TRUE@Gst-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_API_VERSION@.la
-@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace Gst \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
diff --git a/gst/gst.h b/gst/gst.h
index e4e2a1c..8ebd76c 100644
--- a/gst/gst.h
+++ b/gst/gst.h
@@ -64,6 +64,7 @@
 #include <gst/gstplugin.h>
 #include <gst/gstpoll.h>
 #include <gst/gstpreset.h>
+#include <gst/gstprotection.h>
 #include <gst/gstquery.h>
 #include <gst/gstregistry.h>
 #include <gst/gstsample.h>
diff --git a/gst/gst_private.h b/gst/gst_private.h
index d0aefb4..044fead 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -186,6 +186,10 @@
     GstClockTime * m_num, GstClockTime * m_denom, GstClockTime * b,
     GstClockTime * xbase, gdouble * r_squared);
 
+/* For use in gstdebugutils */
+G_GNUC_INTERNAL
+GstCapsFeatures * __gst_caps_get_features_unchecked (const GstCaps * caps, guint idx);
+
 #ifndef GST_DISABLE_REGISTRY
 /* Secret variable to initialise gst without registry cache */
 GST_EXPORT gboolean _gst_disable_registry_cache;
@@ -250,6 +254,9 @@
 #define GST_CAT_POLL _priv_GST_CAT_POLL
 extern GstDebugCategory *_priv_GST_CAT_POLL;
 
+#define GST_CAT_PROTECTION _priv_GST_CAT_PROTECTION
+extern GstDebugCategory *_priv_GST_CAT_PROTECTION;
+
 extern GstClockTime _priv_gst_info_start_time;
 
 #else
@@ -289,6 +296,7 @@
 #define GST_CAT_META             NULL
 #define GST_CAT_LOCKING          NULL
 #define GST_CAT_CONTEXT          NULL
+#define GST_CAT_PROTECTION       NULL
 
 #endif
 
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 28b0436..cdd585a 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -2540,6 +2540,17 @@
   return ret;
 }
 
+static void
+reset_state (const GValue * data, gpointer user_data)
+{
+  GstElement *e = g_value_get_object (data);
+  GstState state = GPOINTER_TO_INT (user_data);
+
+  if (gst_element_set_state (e, state) == GST_STATE_CHANGE_FAILURE)
+    GST_WARNING_OBJECT (e, "Failed to switch back down to %s",
+        gst_element_state_get_name (state));
+}
+
 static GstStateChangeReturn
 gst_bin_change_state_func (GstElement * element, GstStateChange transition)
 {
@@ -2696,7 +2707,7 @@
             if (parent == GST_OBJECT_CAST (element)) {
               /* element is still in bin, really error now */
               gst_object_unref (parent);
-              goto done;
+              goto undo;
             }
             /* child removed from bin, let the resync code redo the state
              * change */
@@ -2809,6 +2820,24 @@
         "failure (de)activating src pads");
     return GST_STATE_CHANGE_FAILURE;
   }
+
+undo:
+  {
+    if (current < next) {
+      GstIterator *it = gst_bin_iterate_sorted (GST_BIN (element));
+      GstIteratorResult ret;
+
+      GST_DEBUG_OBJECT (element,
+          "Bin failed to change state, switching children back to %s",
+          gst_element_state_get_name (current));
+      do {
+        ret =
+            gst_iterator_foreach (it, &reset_state, GINT_TO_POINTER (current));
+      } while (ret == GST_ITERATOR_RESYNC);
+      gst_iterator_free (it);
+    }
+    goto done;
+  }
 }
 
 /*
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c
index 74f86d0..07d1e29 100644
--- a/gst/gstbuffer.c
+++ b/gst/gstbuffer.c
@@ -498,8 +498,12 @@
         copy_data.offset = offset;
         copy_data.size = size;
 
-        info->transform_func (dest, meta, src,
-            _gst_meta_transform_copy, &copy_data);
+        if (!info->transform_func (dest, meta, src,
+                _gst_meta_transform_copy, &copy_data)) {
+          GST_CAT_ERROR (GST_CAT_BUFFER,
+              "failed to copy meta %p of API type %s", meta,
+              g_type_name (info->api));
+        }
       }
     }
   }
diff --git a/gst/gstbufferlist.c b/gst/gstbufferlist.c
index 5319f70..3b2b9a0 100644
--- a/gst/gstbufferlist.c
+++ b/gst/gstbufferlist.c
@@ -274,7 +274,7 @@
  *
  * Returns: (transfer none) (nullable): the buffer at @idx in @group
  *     or %NULL when there is no buffer. The buffer remains valid as
- *     long as @list is valid.
+ *     long as @list is valid and buffer is not removed from the list.
  */
 GstBuffer *
 gst_buffer_list_get (GstBufferList * list, guint idx)
@@ -310,6 +310,7 @@
 
   g_return_if_fail (GST_IS_BUFFER_LIST (list));
   g_return_if_fail (buffer != NULL);
+  g_return_if_fail (gst_buffer_list_is_writable (list));
 
   if (idx == -1 && list->n_buffers < list->n_allocated) {
     list->buffers[list->n_buffers++] = buffer;
@@ -359,6 +360,7 @@
   g_return_if_fail (GST_IS_BUFFER_LIST (list));
   g_return_if_fail (idx < list->n_buffers);
   g_return_if_fail (idx + length <= list->n_buffers);
+  g_return_if_fail (gst_buffer_list_is_writable (list));
 
   gst_buffer_list_remove_range_internal (list, idx, length, TRUE);
 }
diff --git a/gst/gstbus.c b/gst/gstbus.c
index 7865079..fbe2464 100644
--- a/gst/gstbus.c
+++ b/gst/gstbus.c
@@ -448,6 +448,8 @@
   GstMessage *message;
   GList *message_list = NULL;
 
+  g_return_if_fail (GST_IS_BUS (bus));
+
   GST_OBJECT_LOCK (bus);
 
   if (flushing) {
@@ -1122,6 +1124,8 @@
   GstMessage *ret;
   gulong id;
 
+  g_return_val_if_fail (GST_IS_BUS (bus), NULL);
+
   poll_data = g_slice_new (GstBusPollData);
   poll_data->source_running = TRUE;
   poll_data->loop = g_main_loop_new (NULL, FALSE);
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index 147b32c..6acc564 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -145,6 +145,12 @@
       G_TYPE_STRING, gst_caps_transform_to_string);
 }
 
+GstCapsFeatures *
+__gst_caps_get_features_unchecked (const GstCaps * caps, guint idx)
+{
+  return gst_caps_get_features_unchecked (caps, idx);
+}
+
 static GstCaps *
 _gst_caps_copy (const GstCaps * caps)
 {
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index 4e5dcd2..b76c948 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -357,9 +357,18 @@
 
       str = g_string_sized_new (slen);
       for (i = 0; i < gst_caps_get_size (caps); i++) {
+        GstCapsFeatures *features = __gst_caps_get_features_unchecked (caps, i);
         GstStructure *structure = gst_caps_get_structure (caps, i);
 
         g_string_append (str, gst_structure_get_name (structure));
+
+        if (features && (gst_caps_features_is_any (features)
+                || !gst_caps_features_is_equal (features,
+                    GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))) {
+          g_string_append_c (str, '(');
+          priv_gst_caps_features_append_to_gstring (features, str);
+          g_string_append_c (str, ')');
+        }
         g_string_append (str, "\\l");
 
         gst_structure_foreach (structure, string_append_field, (gpointer) str);
diff --git a/gst/gstelement.c b/gst/gstelement.c
index 0a5cdb0..c681194 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -417,6 +417,9 @@
  * Gets the currently configured clock of the element. This is the clock as was
  * last set with gst_element_set_clock().
  *
+ * Elements in a pipeline will only have their clock set when the
+ * pipeline is in the PLAYING state.
+ *
  * Returns: (transfer full): the #GstClock of the element. unref after usage.
  *
  * MT safe.
@@ -1069,7 +1072,7 @@
 }
 
 /**
- * gst_element_request_pad:
+ * gst_element_request_pad: (virtual request_new_pad)
  * @element: a #GstElement to find a request pad of.
  * @templ: a #GstPadTemplate of which we want a pad of.
  * @name: (transfer none) (allow-none): the name of the request #GstPad
diff --git a/gst/gstelement.h b/gst/gstelement.h
index bdd7215..5f45988 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -624,8 +624,10 @@
   /* virtual methods for subclasses */
 
   /* request/release pads */
+  /* FIXME 2.0 harmonize naming with gst_element_request_pad */
   GstPad*               (*request_new_pad)      (GstElement *element, GstPadTemplate *templ,
                                                  const gchar* name, const GstCaps *caps);
+
   void                  (*release_pad)          (GstElement *element, GstPad *pad);
 
   /* state changes */
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index b1f737b..486b9fe 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -729,6 +729,12 @@
   if (!res && (type & GST_ELEMENT_FACTORY_TYPE_FORMATTER))
     res = (strstr (klass, "Formatter") != NULL);
 
+  if (!res && (type & GST_ELEMENT_FACTORY_TYPE_DECRYPTOR))
+    res = (strstr (klass, "Decryptor") != NULL);
+
+  if (!res && (type & GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR))
+    res = (strstr (klass, "Encryptor") != NULL);
+
   /* Filter by media type now, we only test if it
    * matched any of the types above or only checking the media
    * type was requested. */
diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h
index 4641457..117d00e 100644
--- a/gst/gstelementfactory.h
+++ b/gst/gstelementfactory.h
@@ -88,6 +88,8 @@
  * @GST_ELEMENT_FACTORY_TYPE_PARSER: Parser elements
  * @GST_ELEMENT_FACTORY_TYPE_PAYLOADER: Payloader elements
  * @GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER: Depayloader elements
+ * @GST_ELEMENT_FACTORY_TYPE_DECRYPTOR: Elements handling decryption (Since: 1.6)
+ * @GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR: Elements handling encryption (Since: 1.6)
  * @GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS: Private, do not use
  * @GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO: Elements handling video media types
  * @GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO: Elements handling audio media types
@@ -115,6 +117,8 @@
 #define  GST_ELEMENT_FACTORY_TYPE_PAYLOADER      (G_GUINT64_CONSTANT (1) << 7)
 #define  GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER    (G_GUINT64_CONSTANT (1) << 8)
 #define  GST_ELEMENT_FACTORY_TYPE_FORMATTER      (G_GUINT64_CONSTANT (1) << 9)
+#define  GST_ELEMENT_FACTORY_TYPE_DECRYPTOR      (G_GUINT64_CONSTANT (1) << 10)
+#define  GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR      (G_GUINT64_CONSTANT (1) << 11)
 
 #define  GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS   (G_GUINT64_CONSTANT (1) << 48)
 
@@ -187,7 +191,7 @@
  * Type: GstElementFactoryListType
  */
 #define GST_ELEMENT_FACTORY_TYPE_DECODABLE \
-  (GST_ELEMENT_FACTORY_TYPE_DECODER | GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER | GST_ELEMENT_FACTORY_TYPE_PARSER)
+  (GST_ELEMENT_FACTORY_TYPE_DECODER | GST_ELEMENT_FACTORY_TYPE_DEMUXER | GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER | GST_ELEMENT_FACTORY_TYPE_PARSER | GST_ELEMENT_FACTORY_TYPE_DECRYPTOR)
 
 /* Element klass defines */
 #define GST_ELEMENT_FACTORY_KLASS_DECODER               "Decoder"
@@ -200,6 +204,8 @@
 #define GST_ELEMENT_FACTORY_KLASS_PAYLOADER             "Payloader"
 #define GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER           "Depayloader"
 #define GST_ELEMENT_FACTORY_KLASS_FORMATTER             "Formatter"
+#define GST_ELEMENT_FACTORY_KLASS_DECRYPTOR             "Decryptor"
+#define GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR             "Encryptor"
 
 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO           "Video"
 #define GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO           "Audio"
diff --git a/gst/gstevent.c b/gst/gstevent.c
index 4d48b9a..725679a 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -109,6 +109,7 @@
   {GST_EVENT_SEGMENT, "segment", 0},
   {GST_EVENT_TAG, "tag", 0},
   {GST_EVENT_TOC, "toc", 0},
+  {GST_EVENT_PROTECTION, "protection", 0},
   {GST_EVENT_BUFFERSIZE, "buffersize", 0},
   {GST_EVENT_SINK_MESSAGE, "sink-message", 0},
   {GST_EVENT_EOS, "eos", 0},
@@ -1691,6 +1692,127 @@
 }
 
 /**
+ * SECTION:gstprotectionevent
+ * @short_description: Functions to support the passing of
+ * protection system specific information via events.
+ *
+ * In order for a decryption element to decrypt media
+ * protected using a specific system, it first needs all the
+ * protection system specific information necessary to acquire the decryption
+ * key(s) for that stream. The functions defined here enable this information
+ * to be passed in events from elements that extract it
+ * (e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter
+ * elements that use it.
+ *
+ * Events containing protection system specific information are created using
+ * #gst_event_new_protection, and they can be parsed by downstream elements
+ * using #gst_event_parse_protection.
+ *
+ * In Common Encryption, protection system specific information may be located
+ * within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof)
+ * boxes; it may also be contained in ContentProtection elements within MPEG
+ * DASH MPDs. The events created by #gst_event_new_protection contain data
+ * identifying from which of these locations the encapsulated protection system
+ * specific information originated. This origin information is required as
+ * some protection systems use different encodings depending upon where the
+ * information originates.
+ *
+ * The events returned by #gst_event_new_protection are implemented
+ * in such a way as to ensure that the most recently-pushed protection info
+ * event of a particular @origin and @system_id will
+ * be stuck to the output pad of the sending element.
+ *
+ * Since: 1.6
+ */
+
+/**
+ * gst_event_new_protection:
+ * @system_id: (transfer none): a string holding a UUID that uniquely
+ * identifies a protection system.
+ * @data: (transfer none): a #GstBuffer holding protection system specific
+ * information. The reference count of the buffer will be incremented by one.
+ * @origin: a string indicating where the protection
+ * information carried in the event was extracted from. The allowed values
+ * of this string will depend upon the protection scheme.
+ *
+ * Creates a new event containing information specific to a particular
+ * protection system (uniquely identified by @system_id), by which that
+ * protection system can acquire key(s) to decrypt a protected stream.
+ *
+ * Returns: a #GST_EVENT_PROTECTION event, if successful; %NULL
+ * if unsuccessful.
+ *
+ * Since: 1.6
+ */
+GstEvent *
+gst_event_new_protection (const gchar * system_id,
+    GstBuffer * data, const gchar * origin)
+{
+  gchar *event_name;
+  GstEvent *event;
+  GstStructure *s;
+
+  g_return_val_if_fail (system_id != NULL, NULL);
+  g_return_val_if_fail (data != NULL, NULL);
+
+  event_name =
+      g_strconcat ("GstProtectionEvent", origin ? "-" : "",
+      origin ? origin : "", "-", system_id, NULL);
+
+  GST_CAT_INFO (GST_CAT_EVENT, "creating protection event %s", event_name);
+
+  s = gst_structure_new (event_name, "data", GST_TYPE_BUFFER, data,
+      "system_id", G_TYPE_STRING, system_id, NULL);
+  if (origin)
+    gst_structure_set (s, "origin", G_TYPE_STRING, origin, NULL);
+  event = gst_event_new_custom (GST_EVENT_PROTECTION, s);
+
+  g_free (event_name);
+  return event;
+}
+
+/**
+ * gst_event_parse_protection:
+ * @event: a #GST_EVENT_PROTECTION event.
+ * @system_id: (out) (allow-none) (transfer none): pointer to store the UUID
+ * string uniquely identifying a content protection system.
+ * @data: (out) (allow-none) (transfer none): pointer to store a #GstBuffer
+ * holding protection system specific information.
+ * @origin: (allow-none) (transfer none): pointer to store a value that
+ * indicates where the protection information carried by @event was extracted
+ * from.
+ *
+ * Parses an event containing protection system specific information and stores
+ * the results in @system_id, @data and @origin. The data stored in @system_id,
+ * @origin and @data are valid until @event is released.
+ *
+ * Since: 1.6
+ */
+void
+gst_event_parse_protection (GstEvent * event, const gchar ** system_id,
+    GstBuffer ** data, const gchar ** origin)
+{
+  const GstStructure *s;
+
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_IS_EVENT (event));
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_PROTECTION);
+
+  s = gst_event_get_structure (event);
+
+  if (origin)
+    *origin = gst_structure_get_string (s, "origin");
+
+  if (system_id)
+    *system_id = gst_structure_get_string (s, "system_id");
+
+  if (data) {
+    const GValue *value = gst_structure_get_value (s, "data");
+    *data = gst_value_get_buffer (value);
+  }
+}
+
+/**
  * gst_event_new_segment_done:
  * @format: The format of the position being done
  * @position: The position of the segment being done
diff --git a/gst/gstevent.h b/gst/gstevent.h
index ee7e8e0..9fe9bcf 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -99,6 +99,8 @@
  * @GST_EVENT_GAP: Marks a gap in the datastream.
  * @GST_EVENT_TOC: An event which indicates that a new table of contents (TOC)
  *                 was found or updated.
+ * @GST_EVENT_PROTECTION: An event which indicates that new or updated
+ *                 encryption information has been found in the stream.
  * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
  *                 that the downstream elements should adjust their processing
  *                 rate.
@@ -147,6 +149,7 @@
   GST_EVENT_SINK_MESSAGE          = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
   GST_EVENT_EOS                   = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
   GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+  GST_EVENT_PROTECTION            = GST_EVENT_MAKE_TYPE (130, FLAG (DOWNSTREAM) | FLAG (SERIALIZED) | FLAG (STICKY) | FLAG (STICKY_MULTI)),
 
   /* non-sticky downstream serialized */
   GST_EVENT_SEGMENT_DONE          = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
@@ -178,7 +181,6 @@
 #include <gst/gststructure.h>
 #include <gst/gsttaglist.h>
 #include <gst/gstsegment.h>
-#include <gst/gstsegment.h>
 #include <gst/gstmessage.h>
 #include <gst/gstcontext.h>
 
@@ -530,6 +532,11 @@
 GstEvent*      gst_event_new_toc                (GstToc *toc, gboolean updated);
 void           gst_event_parse_toc              (GstEvent *event, GstToc **toc, gboolean *updated);
 
+/* Protection event */
+GstEvent *     gst_event_new_protection         (const gchar * system_id, GstBuffer * data, const gchar * origin);
+
+void           gst_event_parse_protection       (GstEvent * event, const gchar ** system_id,
+                                                 GstBuffer ** data, const gchar ** origin);
 
 /* buffer */
 GstEvent *      gst_event_new_buffer_size       (GstFormat format, gint64 minsize, gint64 maxsize,
diff --git a/gst/gstinfo.c b/gst/gstinfo.c
index f40a281..643ce88 100644
--- a/gst/gstinfo.c
+++ b/gst/gstinfo.c
@@ -25,7 +25,7 @@
 /**
  * SECTION:gstinfo
  * @short_description: Debugging and logging facilities
- * @see_also: #gstreamer-gstconfig, #gstreamer-Gst for command line parameters
+ * @see_also: #gst-running for command line parameters
  * and environment variables that affect the debugging output.
  *
  * GStreamer's debugging subsystem is an easy way to get information about what
@@ -176,6 +176,7 @@
 GstDebugCategory *GST_CAT_META = NULL;
 GstDebugCategory *GST_CAT_LOCKING = NULL;
 GstDebugCategory *GST_CAT_CONTEXT = NULL;
+GstDebugCategory *_priv_GST_CAT_PROTECTION = NULL;
 
 
 #endif /* !defined(GST_DISABLE_GST_DEBUG) || !defined(GST_REMOVE_DISABLED) */
@@ -390,6 +391,8 @@
   GST_CAT_META = _gst_debug_category_new ("GST_META", 0, "meta");
   GST_CAT_LOCKING = _gst_debug_category_new ("GST_LOCKING", 0, "locking");
   GST_CAT_CONTEXT = _gst_debug_category_new ("GST_CONTEXT", 0, NULL);
+  _priv_GST_CAT_PROTECTION =
+      _gst_debug_category_new ("GST_PROTECTION", 0, "protection");
 
   /* print out the valgrind message if we're in valgrind */
   _priv_gst_in_valgrind ();
@@ -1523,6 +1526,8 @@
       g_slice_free (LevelNameEntry, entry);
       g_slist_free_1 (walk);
       walk = __level_name;
+    } else {
+      walk = g_slist_next (walk);
     }
   }
   g_mutex_unlock (&__level_name_mutex);
diff --git a/gst/gstmemory.c b/gst/gstmemory.c
index 9e97d1e..3505ac2 100644
--- a/gst/gstmemory.c
+++ b/gst/gstmemory.c
@@ -197,6 +197,7 @@
 gst_memory_resize (GstMemory * mem, gssize offset, gsize size)
 {
   g_return_if_fail (mem != NULL);
+  g_return_if_fail (gst_memory_is_writable (mem));
   g_return_if_fail (offset >= 0 || mem->offset >= -offset);
   g_return_if_fail (size + mem->offset + offset <= mem->maxsize);
 
@@ -343,12 +344,12 @@
 /**
  * gst_memory_copy:
  * @mem: a #GstMemory
- * @offset: an offset to copy
- * @size: size to copy or -1 to copy all bytes from offset
+ * @offset: offset to copy from
+ * @size: size to copy, or -1 to copy to the end of the memory region
  *
  * Return a copy of @size bytes from @mem starting from @offset. This copy is
- * guaranteed to be writable. @size can be set to -1 to return a copy all bytes
- * from @offset.
+ * guaranteed to be writable. @size can be set to -1 to return a copy
+ * from @offset to the end of the memory region.
  *
  * Returns: a new #GstMemory.
  */
@@ -367,13 +368,13 @@
 /**
  * gst_memory_share:
  * @mem: a #GstMemory
- * @offset: an offset to share
- * @size: size to share or -1 to share bytes from offset
+ * @offset: offset to share from
+ * @size: size to share, or -1 to share to the end of the memory region
  *
  * Return a shared copy of @size bytes from @mem starting from @offset. No
  * memory copy is performed and the memory region is simply shared. The result
- * is guaranteed to be not-writable. @size can be set to -1 to return a share
- * all bytes from @offset.
+ * is guaranteed to be non-writable. @size can be set to -1 to return a shared
+ * copy from @offset to the end of the memory region.
  *
  * Returns: a new #GstMemory.
  */
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 12a0833..a7e1c37 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -140,6 +140,11 @@
   gint using;
   guint probe_list_cookie;
   guint probe_cookie;
+
+  /* counter of how many idle probes are running directly from the add_probe
+   * call. Used to block any data flowing in the pad while the idle callback
+   * Doesn't finish its work */
+  gint idle_running;
 };
 
 typedef struct
@@ -149,6 +154,8 @@
 } GstProbe;
 
 #define PROBE_COOKIE(h) (((GstProbe *)(h))->cookie)
+#define GST_PAD_IS_RUNNING_IDLE_PROBE(p) \
+    (((GstPad *)(p))->priv->idle_running > 0)
 
 typedef struct
 {
@@ -1387,6 +1394,7 @@
 
       /* Keep another ref, the callback could destroy the pad */
       gst_object_ref (pad);
+      pad->priv->idle_running++;
 
       /* the pad is idle now, we can signal the idle callback now */
       GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
@@ -1416,6 +1424,10 @@
           GST_DEBUG_OBJECT (pad, "probe returned %d", ret);
           break;
       }
+      pad->priv->idle_running--;
+      if (pad->priv->idle_running == 0) {
+        GST_PAD_BLOCK_BROADCAST (pad);
+      }
       GST_OBJECT_UNLOCK (pad);
 
       gst_object_unref (pad);
@@ -2355,8 +2367,12 @@
   /* prepare will also lock the two pads */
   result = gst_pad_link_prepare (srcpad, sinkpad, flags);
 
-  if (G_UNLIKELY (result != GST_PAD_LINK_OK))
+  if (G_UNLIKELY (result != GST_PAD_LINK_OK)) {
+    GST_CAT_INFO (GST_CAT_PADS, "link between %s:%s and %s:%s failed: %s",
+        GST_DEBUG_PAD_NAME (srcpad), GST_DEBUG_PAD_NAME (sinkpad),
+        gst_pad_link_get_name (result));
     goto done;
+  }
 
   /* must set peers before calling the link function */
   GST_PAD_PEER (srcpad) = sinkpad;
@@ -2884,7 +2900,7 @@
  * The EOS event will pause the task associated with @pad before it is forwarded
  * to all internally linked pads,
  *
- * The the event is sent to all pads internally linked to @pad. This function
+ * The event is sent to all pads internally linked to @pad. This function
  * takes ownership of @event.
  *
  * Returns: %TRUE if the event was sent successfully.
@@ -3270,6 +3286,7 @@
   GstPadProbeType type, flags;
   GstPadProbeCallback callback;
   GstPadProbeReturn ret;
+  gpointer original_data;
 
   /* if we have called this callback, do nothing */
   if (PROBE_COOKIE (hook) == data->cookie) {
@@ -3283,6 +3300,7 @@
 
   flags = hook->flags >> G_HOOK_FLAG_USER_SHIFT;
   type = info->type;
+  original_data = info->data;
 
   /* one of the data types for non-idle probes */
   if ((type & GST_PAD_PROBE_TYPE_IDLE) == 0
@@ -3321,6 +3339,12 @@
 
   GST_OBJECT_LOCK (pad);
 
+  if (original_data != NULL && info->data == NULL) {
+    GST_DEBUG_OBJECT (pad, "data item in pad probe info was dropped");
+    info->type = GST_PAD_PROBE_TYPE_INVALID;
+    data->dropped = TRUE;
+  }
+
   switch (ret) {
     case GST_PAD_PROBE_REMOVE:
       /* remove the probe */
@@ -3390,6 +3414,38 @@
   PROBE_FULL(pad, mask, data, offs, size, label);
 
 static GstFlowReturn
+do_pad_idle_probe_wait (GstPad * pad)
+{
+  while (GST_PAD_IS_RUNNING_IDLE_PROBE (pad)) {
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
+        "waiting idle probe to be removed");
+    GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_BLOCKING);
+    GST_PAD_BLOCK_WAIT (pad);
+    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_BLOCKING);
+    GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "We got unblocked");
+
+    if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
+      return GST_FLOW_FLUSHING;
+  }
+  return GST_FLOW_OK;
+}
+
+#define PROBE_TYPE_IS_SERIALIZED(i) \
+    ( \
+      ( \
+        (((i)->type & (GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | \
+        GST_PAD_PROBE_TYPE_EVENT_FLUSH)) && \
+        GST_EVENT_IS_SERIALIZED ((i)->data)) \
+      ) || ( \
+        (((i)->type & GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM) && \
+        GST_QUERY_IS_SERIALIZED ((i)->data)) \
+      ) || ( \
+        ((i)->type & (GST_PAD_PROBE_TYPE_BUFFER | \
+        GST_PAD_PROBE_TYPE_BUFFER_LIST))  \
+      ) \
+    )
+
+static GstFlowReturn
 do_probe_callbacks (GstPad * pad, GstPadProbeInfo * info,
     GstFlowReturn defaultval)
 {
@@ -3407,6 +3463,11 @@
   is_block =
       (info->type & GST_PAD_PROBE_TYPE_BLOCK) == GST_PAD_PROBE_TYPE_BLOCK;
 
+  if (is_block && PROBE_TYPE_IS_SERIALIZED (info)) {
+    if (do_pad_idle_probe_wait (pad) == GST_FLOW_FLUSHING)
+      goto flushing;
+  }
+
 again:
   GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad,
       "do probes cookie %u", data.cookie);
@@ -4099,7 +4160,7 @@
   GstBuffer *buffer;
   GstFlowReturn ret;
 
-  GST_INFO_OBJECT (pad, "chaining each group in list as a merged buffer");
+  GST_INFO_OBJECT (pad, "chaining each buffer in list individually");
 
   len = gst_buffer_list_length (list);
 
@@ -4265,7 +4326,8 @@
     GST_OBJECT_UNLOCK (pad);
     pad->ABI.abi.last_flowret =
         ret == GST_FLOW_CUSTOM_SUCCESS ? GST_FLOW_OK : ret;
-    gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+    if (data != NULL)
+      gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
 
     switch (ret) {
       case GST_FLOW_CUSTOM_SUCCESS:
diff --git a/gst/gstparse.c b/gst/gstparse.c
index dd22113..a85fcf0 100644
--- a/gst/gstparse.c
+++ b/gst/gstparse.c
@@ -27,7 +27,7 @@
  * @short_description: Get a pipeline from a text pipeline description
  *
  * These function allow to create a pipeline based on the syntax used in the
- * gst-launch utility (see man-page for syntax documentation).
+ * gst-launch-1.0 utility (see man-page for syntax documentation).
  *
  * Please note that these functions take several measures to create
  * somewhat dynamic pipelines. Due to that such pipelines are not always
diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c
index 7c47ae7..92d1405 100644
--- a/gst/gstpipeline.c
+++ b/gst/gstpipeline.c
@@ -628,16 +628,40 @@
 }
 
 /**
- * gst_pipeline_get_clock:
+ * gst_pipeline_get_clock: (skip)
  * @pipeline: a #GstPipeline
  *
- * Gets the current clock used by @pipeline.
+ * Gets the current clock used by @pipeline. Users of object
+ * oriented languages should use gst_pipeline_get_pipeline_clock()
+ * to avoid confusion with gst_element_get_clock() which has a different behavior.
+ *
+ * Unlike gst_element_get_clock(), this function will always return a
+ * clock, even if the pipeline is not in the PLAYING state.
  *
  * Returns: (transfer full): a #GstClock, unref after usage.
  */
 GstClock *
 gst_pipeline_get_clock (GstPipeline * pipeline)
 {
+  return gst_pipeline_get_pipeline_clock (pipeline);
+}
+
+/**
+ * gst_pipeline_get_pipeline_clock:
+ * @pipeline: a #GstPipeline
+ *
+ * Gets the current clock used by @pipeline.
+ *
+ * Unlike gst_element_get_clock(), this function will always return a
+ * clock, even if the pipeline is not in the PLAYING state.
+ *
+ * Returns: (transfer full): a #GstClock, unref after usage.
+ *
+ * Since: 1.6
+ */
+GstClock *
+gst_pipeline_get_pipeline_clock (GstPipeline * pipeline)
+{
   g_return_val_if_fail (GST_IS_PIPELINE (pipeline), NULL);
 
   return gst_pipeline_provide_clock_func (GST_ELEMENT_CAST (pipeline));
@@ -677,7 +701,7 @@
 }
 
 /**
- * gst_pipeline_set_clock:
+ * gst_pipeline_set_clock: (skip)
  * @pipeline: a #GstPipeline
  * @clock: (transfer none): the clock to set
  *
diff --git a/gst/gstpipeline.h b/gst/gstpipeline.h
index 0dae4c7..192ec2d 100644
--- a/gst/gstpipeline.h
+++ b/gst/gstpipeline.h
@@ -96,6 +96,7 @@
 void            gst_pipeline_use_clock          (GstPipeline *pipeline, GstClock *clock);
 gboolean        gst_pipeline_set_clock          (GstPipeline *pipeline, GstClock *clock);
 GstClock*       gst_pipeline_get_clock          (GstPipeline *pipeline);
+GstClock*       gst_pipeline_get_pipeline_clock (GstPipeline *pipeline);
 void            gst_pipeline_auto_clock         (GstPipeline *pipeline);
 
 void            gst_pipeline_set_delay          (GstPipeline *pipeline, GstClockTime delay);
diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
index 96d4994..dbd341d 100644
--- a/gst/gstpluginloader.c
+++ b/gst/gstpluginloader.c
@@ -480,12 +480,12 @@
     {
       gchar *basedir;
 
-      basedir = g_win32_get_package_installation_directory_of_module (_priv_gst_dll_handle);
-      helper_bin = g_build_filename (basedir,
-                                     "lib",
-                                     "gstreamer-" GST_API_VERSION,
-                                     "gst-plugin-scanner.exe",
-                                     NULL);
+      basedir =
+          g_win32_get_package_installation_directory_of_module
+          (_priv_gst_dll_handle);
+      helper_bin =
+          g_build_filename (basedir, "lib", "gstreamer-" GST_API_VERSION,
+          "gst-plugin-scanner.exe", NULL);
       g_free (basedir);
     }
 #else
@@ -544,7 +544,7 @@
 
     dup_fd = dup (0);           /* STDIN */
     if (dup_fd == -1) {
-      GST_ERROR ("Failed to start. Could no dup STDIN, errno %d", errno);
+      GST_ERROR ("Failed to start. Could not dup STDIN, errno %d", errno);
       res = FALSE;
       goto beach;
     }
@@ -553,7 +553,7 @@
 
     dup_fd = dup (1);           /* STDOUT */
     if (dup_fd == -1) {
-      GST_ERROR ("Failed to start. Could no dup STDOUT, errno %d", errno);
+      GST_ERROR ("Failed to start. Could not dup STDOUT, errno %d", errno);
       res = FALSE;
       goto beach;
     }
diff --git a/gst/gstprotection.c b/gst/gstprotection.c
new file mode 100644
index 0000000..36f36ad
--- /dev/null
+++ b/gst/gstprotection.c
@@ -0,0 +1,209 @@
+/* GStreamer
+ * Copyright (C) <2013> YouView TV Ltd.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:gstprotection
+ * @short_description: Functions and classes to support encrypted streams.
+ *
+ * The GstProtectionMeta class enables the information needed to decrypt a
+ * #GstBuffer to be attached to that buffer.
+ *
+ * Typically, a demuxer element would attach GstProtectionMeta objects
+ * to the buffers that it pushes downstream. The demuxer would parse the
+ * protection information for a video/audio frame from its input data and use
+ * this information to populate the #GstStructure @info field,
+ * which is then encapsulated in a GstProtectionMeta object and attached to
+ * the corresponding output buffer using the gst_buffer_add_protection_meta()
+ * function. The information in this attached GstProtectionMeta would be
+ * used by a downstream decrypter element to recover the original unencrypted
+ * frame.
+ *
+ * Since: 1.6
+ */
+
+#include "gst_private.h"
+#include "glib-compat-private.h"
+
+#include "gstprotection.h"
+
+#define GST_CAT_DEFAULT GST_CAT_PROTECTION
+
+static gboolean gst_protection_meta_init (GstMeta * meta, gpointer params,
+    GstBuffer * buffer);
+
+static void gst_protection_meta_free (GstMeta * meta, GstBuffer * buffer);
+
+static const gchar *gst_protection_factory_check (GstElementFactory * fact,
+    const gchar ** system_identifiers);
+
+GType
+gst_protection_meta_api_get_type (void)
+{
+  static volatile GType type;
+  static const gchar *tags[] = { NULL };
+
+  if (g_once_init_enter (&type)) {
+    GType _type = gst_meta_api_type_register ("GstProtectionMetaAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
+
+static gboolean
+gst_protection_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
+{
+  GstProtectionMeta *protection_meta = (GstProtectionMeta *) meta;
+
+  protection_meta->info = NULL;
+
+  return TRUE;
+}
+
+static void
+gst_protection_meta_free (GstMeta * meta, GstBuffer * buffer)
+{
+  GstProtectionMeta *protection_meta = (GstProtectionMeta *) meta;
+
+  if (protection_meta->info)
+    gst_structure_free (protection_meta->info);
+}
+
+const GstMetaInfo *
+gst_protection_meta_get_info (void)
+{
+  static const GstMetaInfo *protection_meta_info = NULL;
+
+  if (g_once_init_enter (&protection_meta_info)) {
+    const GstMetaInfo *meta =
+        gst_meta_register (GST_PROTECTION_META_API_TYPE, "GstProtectionMeta",
+        sizeof (GstProtectionMeta), gst_protection_meta_init,
+        gst_protection_meta_free,
+        (GstMetaTransformFunction) NULL);
+
+    g_once_init_leave (&protection_meta_info, meta);
+  }
+  return protection_meta_info;
+}
+
+/**
+ * gst_buffer_add_protection_meta:
+ * @buffer: #GstBuffer holding an encrypted sample, to which protection
+ *     metadata should be added.
+ * @info: (transfer full): a #GstStructure holding cryptographic
+ *     information relating to the sample contained in @buffer. This
+ *     function takes ownership of @info.
+ *
+ * Attaches protection metadata to a #GstBuffer.
+ *
+ * Returns: a pointer to the added #GstProtectionMeta if successful; %NULL if
+ * unsuccessful.
+ *
+ * Since: 1.6
+ */
+GstProtectionMeta *
+gst_buffer_add_protection_meta (GstBuffer * buffer, GstStructure * info)
+{
+  GstProtectionMeta *meta;
+
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
+  g_return_val_if_fail (info != NULL, NULL);
+
+  meta =
+      (GstProtectionMeta *) gst_buffer_add_meta (buffer,
+      GST_PROTECTION_META_INFO, NULL);
+
+  meta->info = info;
+
+  return meta;
+}
+
+/**
+ * gst_protection_select_system:
+ * @system_identifiers: (transfer none): A null terminated array of strings
+ * that contains the UUID values of each protection system that is to be
+ * checked.
+ *
+ * Iterates the supplied list of UUIDs and checks the GstRegistry for
+ * an element that supports one of the supplied UUIDs. If more than one
+ * element matches, the system ID of the highest ranked element is selected.
+ *
+ * Returns: (transfer none): One of the strings from @system_identifiers that
+ * indicates the highest ranked element that implements the protection system
+ * indicated by that system ID, or %NULL if no element has been found.
+ *
+ * Since: 1.6
+ */
+const gchar *
+gst_protection_select_system (const gchar ** system_identifiers)
+{
+  GList *decryptors, *walk;
+  const gchar *retval = NULL;
+
+  decryptors =
+      gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECRYPTOR,
+      GST_RANK_MARGINAL);
+
+  for (walk = decryptors; !retval && walk; walk = g_list_next (walk)) {
+    GstElementFactory *fact = (GstElementFactory *) walk->data;
+
+    retval = gst_protection_factory_check (fact, system_identifiers);
+  }
+
+  gst_plugin_feature_list_free (decryptors);
+
+  return retval;
+}
+
+static const gchar *
+gst_protection_factory_check (GstElementFactory * fact,
+    const gchar ** system_identifiers)
+{
+  const GList *template, *walk;
+  const gchar *retval = NULL;
+
+  template = gst_element_factory_get_static_pad_templates (fact);
+  for (walk = template; walk && !retval; walk = g_list_next (walk)) {
+    GstStaticPadTemplate *templ = walk->data;
+    GstCaps *caps = gst_static_pad_template_get_caps (templ);
+    guint leng = gst_caps_get_size (caps);
+
+    for (guint i = 0; !retval && i < leng; ++i) {
+      GstStructure *st;
+
+      st = gst_caps_get_structure (caps, i);
+      if (gst_structure_has_field_typed (st, PROTECTION_SYSTEM_ID_CAPS_FIELD,
+              G_TYPE_STRING)) {
+        const gchar *sys_id =
+            gst_structure_get_string (st, PROTECTION_SYSTEM_ID_CAPS_FIELD);
+        GST_DEBUG ("Found decryptor that supports protection system %s",
+            sys_id);
+        for (guint j = 0; !retval && system_identifiers[j]; ++j) {
+          GST_TRACE ("  compare with %s", system_identifiers[j]);
+          if (g_ascii_strcasecmp (system_identifiers[j], sys_id) == 0) {
+            GST_DEBUG ("  Selecting %s", system_identifiers[j]);
+            retval = system_identifiers[j];
+          }
+        }
+      }
+    }
+    gst_caps_unref (caps);
+  }
+
+  return retval;
+}
diff --git a/gst/gstprotection.h b/gst/gstprotection.h
new file mode 100644
index 0000000..9a4b86a
--- /dev/null
+++ b/gst/gstprotection.h
@@ -0,0 +1,64 @@
+/* GStreamer
+ * Copyright (C) <2015> YouView TV Ltd.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_PROTECTION_H__
+#define __GST_PROTECTION_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/* @PROTECTION_SYSTEM_ID_CAPS_FIELD: The field name in a GstCaps that is
+ * used to signal the UUID of the protection system
+ */
+#define PROTECTION_SYSTEM_ID_CAPS_FIELD "protection-system"
+
+typedef struct _GstProtectionMeta GstProtectionMeta;
+/**
+ * GstProtectionMeta:
+ * @meta: the parent #GstMeta.
+ * @info: the cryptographic information needed to decrypt the sample.
+ *
+ * Metadata type that holds information about a sample from a protection-protected
+ * track, including the information needed to decrypt it (if it is encrypted).
+ */
+struct _GstProtectionMeta
+{
+  GstMeta meta;
+
+  GstStructure *info;
+};
+
+GType gst_protection_meta_api_get_type (void);
+#define GST_PROTECTION_META_API_TYPE (gst_protection_meta_api_get_type())
+
+#define gst_buffer_get_protection_meta(b) \
+    ((GstProtectionMeta*)gst_buffer_get_meta ((b), GST_PROTECTION_META_API_TYPE))
+
+#define GST_PROTECTION_META_INFO (gst_protection_meta_get_info())
+
+const GstMetaInfo *gst_protection_meta_get_info (void);
+
+GstProtectionMeta *gst_buffer_add_protection_meta (GstBuffer * buffer,
+    GstStructure * info);
+
+const gchar *gst_protection_select_system (const gchar ** system_identifiers);
+
+G_END_DECLS
+#endif /* __GST_PROTECTION_META_H__ */
diff --git a/gst/gstsegment.c b/gst/gstsegment.c
index fc52363..01b3005 100644
--- a/gst/gstsegment.c
+++ b/gst/gstsegment.c
@@ -453,6 +453,116 @@
 }
 
 /**
+ * gst_segment_to_running_time_full:
+ * @segment: a #GstSegment structure.
+ * @format: the format of the segment.
+ * @position: the position in the segment
+ * @running_time: result running-time
+ *
+ * Translate @position to the total running time using the currently configured
+ * segment. Compared to gst_segment_to_running_time() this function can return
+ * negative running-time.
+ *
+ * This function is typically used by elements that need to synchronize buffers
+ * against the clock or eachother.
+ *
+ * @position can be any value and the result of this function for values outside
+ * of the segment is extrapolated.
+ *
+ * When 1 is returned, @position resulted in a positive running-time returned
+ * in @running_time.
+ *
+ * When this function returns -1, the returned @running_time should be negated
+ * to get the real negative running time.
+ *
+ * Returns: a 1 or -1 on success, 0 on failure.
+ *
+ * Since: 1.6
+ */
+gint
+gst_segment_to_running_time_full (const GstSegment * segment, GstFormat format,
+    guint64 position, guint64 * running_time)
+{
+  gint res = 0;
+  guint64 result;
+  guint64 start, stop, offset;
+  gdouble abs_rate;
+
+  if (G_UNLIKELY (position == -1)) {
+    GST_DEBUG ("invalid position (-1)");
+    goto done;
+  }
+
+  g_return_val_if_fail (segment != NULL, 0);
+  g_return_val_if_fail (segment->format == format, 0);
+
+  offset = segment->offset;
+
+  if (G_LIKELY (segment->rate > 0.0)) {
+    start = segment->start + offset;
+
+    /* bring to uncorrected position in segment */
+    if (position < start) {
+      /* negative value */
+      result = start - position;
+      res = -1;
+    } else {
+      result = position - start;
+      res = 1;
+    }
+  } else {
+    stop = segment->stop;
+
+    /* cannot continue if no stop position set or invalid offset */
+    g_return_val_if_fail (stop != -1, 0);
+    g_return_val_if_fail (stop >= offset, 0);
+
+    stop -= offset;
+
+    /* bring to uncorrected position in segment */
+    if (position > stop) {
+      /* negative value */
+      result = position - stop;
+      res = -1;
+    } else {
+      result = stop - position;
+      res = 1;
+    }
+  }
+
+  if (running_time) {
+    /* scale based on the rate, avoid division by and conversion to
+     * float when not needed */
+    abs_rate = ABS (segment->rate);
+    if (G_UNLIKELY (abs_rate != 1.0))
+      result /= abs_rate;
+
+    /* correct for base of the segment */
+    if (res == 1)
+      /* positive, add base */
+      *running_time = result + segment->base;
+    else if (segment->base >= result) {
+      /* negative and base is bigger, subtract from base and we have a
+       * positive value again */
+      *running_time = segment->base - result;
+      res = 1;
+    } else {
+      /* negative and base is smaller, subtract base and remainder is
+       * negative */
+      *running_time = result - segment->base;
+    }
+  }
+  return res;
+
+done:
+  {
+    if (running_time)
+      *running_time = -1;
+    return 0;
+  }
+}
+
+/**
  * gst_segment_to_running_time:
  * @segment: a #GstSegment structure.
  * @format: the format of the segment.
@@ -476,70 +586,28 @@
     guint64 position)
 {
   guint64 result;
-  guint64 start, stop;
-  gdouble abs_rate;
-
-  if (G_UNLIKELY (position == -1)) {
-    GST_DEBUG ("invalid position (-1)");
-    return -1;
-  }
 
   g_return_val_if_fail (segment != NULL, -1);
   g_return_val_if_fail (segment->format == format, -1);
 
-  start = segment->start;
-
-  if (segment->rate > 0.0)
-    start += segment->offset;
-
   /* before the segment boundary */
-  if (G_UNLIKELY (position < start)) {
+  if (G_UNLIKELY (position < segment->start)) {
     GST_DEBUG ("position(%" G_GUINT64_FORMAT ") < start(%" G_GUINT64_FORMAT
-        ")", position, start);
+        ")", position, segment->start);
+    return -1;
+  }
+  /* after the segment boundary */
+  if (G_UNLIKELY (segment->stop != -1 && position > segment->stop)) {
+    GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
+        ")", position, segment->stop);
     return -1;
   }
 
-  stop = segment->stop;
+  if (gst_segment_to_running_time_full (segment, format, position,
+          &result) == 1)
+    return result;
 
-  if (G_LIKELY (segment->rate > 0.0)) {
-    /* after of the segment boundary */
-    if (G_UNLIKELY (stop != -1 && position > stop)) {
-      GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
-          ")", position, stop);
-      return -1;
-    }
-
-    /* bring to uncorrected position in segment */
-    result = position - start;
-  } else {
-    /* cannot continue if no stop position set or outside of
-     * the segment. */
-    if (G_UNLIKELY (stop == -1)) {
-      GST_DEBUG ("invalid stop (-1)");
-      return -1;
-    }
-
-    stop -= segment->offset;
-    if (G_UNLIKELY (position > stop)) {
-      GST_DEBUG ("position(%" G_GUINT64_FORMAT ") > stop(%" G_GUINT64_FORMAT
-          ")", position, stop);
-      return -1;
-    }
-
-    /* bring to uncorrected position in segment */
-    result = stop - position;
-  }
-
-  /* scale based on the rate, avoid division by and conversion to
-   * float when not needed */
-  abs_rate = ABS (segment->rate);
-  if (G_UNLIKELY (abs_rate != 1.0))
-    result /= abs_rate;
-
-  /* correct for base of the segment */
-  result += segment->base;
-
-  return result;
+  return -1;
 }
 
 /**
@@ -757,8 +825,48 @@
       if (position == -1)
         return FALSE;
 
-      segment->offset = position;
+      segment->offset = position - segment->start;
     }
   }
   return TRUE;
 }
+
+/**
+ * gst_segment_is_equal:
+ * @s0: a #GstSegment structure.
+ * @s1: a #GstSegment structure.
+ *
+ * Checks for two segments being equal. Equality here is defined
+ * as perfect equality, including floating point values.
+ *
+ * Since: 1.6
+ *
+ * Returns: %TRUE if the segments are equal, %FALSE otherwise.
+ */
+gboolean
+gst_segment_is_equal (const GstSegment * s0, const GstSegment * s1)
+{
+  if (s0->flags != s1->flags)
+    return FALSE;
+  if (s0->rate != s1->rate)
+    return FALSE;
+  if (s0->applied_rate != s1->applied_rate)
+    return FALSE;
+  if (s0->format != s1->format)
+    return FALSE;
+  if (s0->base != s1->base)
+    return FALSE;
+  if (s0->offset != s1->offset)
+    return FALSE;
+  if (s0->start != s1->start)
+    return FALSE;
+  if (s0->stop != s1->stop)
+    return FALSE;
+  if (s0->time != s1->time)
+    return FALSE;
+  if (s0->position != s1->position)
+    return FALSE;
+  if (s0->duration != s1->duration)
+    return FALSE;
+  return TRUE;
+}
diff --git a/gst/gstsegment.h b/gst/gstsegment.h
index 4787e49..f0f7af5 100644
--- a/gst/gstsegment.h
+++ b/gst/gstsegment.h
@@ -179,7 +179,8 @@
  * @start: the start of the segment
  * @stop: the stop of the segment
  * @time: the stream time of the segment
- * @position: the position in the segment
+ * @position: the position in the segment (used internally by elements
+ *     such as sources, demuxers or parsers to track progress)
  * @duration: the duration of the segment
  *
  * A helper structure that holds the configured region of
@@ -217,6 +218,9 @@
 
 guint64      gst_segment_to_stream_time      (const GstSegment *segment, GstFormat format, guint64 position);
 guint64      gst_segment_to_running_time     (const GstSegment *segment, GstFormat format, guint64 position);
+
+gint         gst_segment_to_running_time_full (const GstSegment *segment, GstFormat format, guint64 position,
+                                               guint64 * running_time);
 guint64      gst_segment_to_position         (const GstSegment *segment, GstFormat format, guint64 running_time);
 
 gboolean     gst_segment_set_running_time    (GstSegment *segment, GstFormat format, guint64 running_time);
@@ -231,6 +235,7 @@
                                               GstFormat format, GstSeekFlags flags,
                                               GstSeekType start_type, guint64 start,
                                               GstSeekType stop_type, guint64 stop, gboolean * update);
+gboolean     gst_segment_is_equal            (const GstSegment * s0, const GstSegment * s1);
 
 G_END_DECLS
 
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index ff2af18..faa7252 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -673,7 +673,7 @@
 
 /* takes ownership of the structure */
 static GstTagList *
-gst_tag_list_new_internal (GstStructure * s)
+gst_tag_list_new_internal (GstStructure * s, GstTagScope scope)
 {
   GstTagList *tag_list;
 
@@ -686,7 +686,7 @@
       (GstMiniObjectFreeFunction) __gst_tag_list_free);
 
   GST_TAG_LIST_STRUCTURE (tag_list) = s;
-  GST_TAG_LIST_SCOPE (tag_list) = GST_TAG_SCOPE_STREAM;
+  GST_TAG_LIST_SCOPE (tag_list) = scope;
 
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_TAGS, "created taglist %p", tag_list);
@@ -717,7 +717,8 @@
   g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
 
   s = GST_TAG_LIST_STRUCTURE (list);
-  return gst_tag_list_new_internal (gst_structure_copy (s));
+  return gst_tag_list_new_internal (gst_structure_copy (s),
+      GST_TAG_LIST_SCOPE (list));
 }
 
 /**
@@ -736,7 +737,7 @@
   GstTagList *tag_list;
 
   s = gst_structure_new_id_empty (GST_QUARK (TAGLIST));
-  tag_list = gst_tag_list_new_internal (s);
+  tag_list = gst_tag_list_new_internal (s, GST_TAG_SCOPE_STREAM);
   return tag_list;
 }
 
@@ -878,7 +879,7 @@
   if (s == NULL)
     return NULL;
 
-  tag_list = gst_tag_list_new_internal (s);
+  tag_list = gst_tag_list_new_internal (s, GST_TAG_SCOPE_STREAM);
 
   return tag_list;
 }
diff --git a/gst/gsturi.c b/gst/gsturi.c
index 6346ea0..3d78562 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -927,6 +927,9 @@
  * will be canonicalised so that it doesn't contain any './' or '../' segments.
  *
  * On Windows #filename should be in UTF-8 encoding.
+ *
+ * Returns: newly-allocated URI string, or NULL on error. The caller must
+ *   free the URI string with g_free() when no longer needed.
  */
 gchar *
 gst_filename_to_uri (const gchar * filename, GError ** error)
@@ -1297,7 +1300,7 @@
 
   if (str) {
     guint pct_sep_len = 0;
-    gchar *pct_sep;
+    gchar *pct_sep = NULL;
     gchar **split_str;
 
     if (convert && !unescape) {
diff --git a/gst/gstvalue.c b/gst/gstvalue.c
index 031c02a..123e51e 100644
--- a/gst/gstvalue.c
+++ b/gst/gstvalue.c
@@ -3012,12 +3012,13 @@
   if (G_UNLIKELY (strcmp (s, "NULL") == 0)) {
     g_value_set_string (dest, NULL);
     return TRUE;
-  } else if (G_LIKELY (*s != '"')) {
+  } else if (G_LIKELY (*s != '"' || s[strlen (s) - 1] != '"')) {
     if (!g_utf8_validate (s, -1, NULL))
       return FALSE;
     g_value_set_string (dest, s);
     return TRUE;
   } else {
+    /* strings delimited with double quotes should be unwrapped */
     gchar *str = gst_string_unwrap (s);
     if (G_UNLIKELY (!str))
       return FALSE;
@@ -5838,6 +5839,7 @@
   if (G_UNLIKELY (dest == NULL || !GST_VALUE_HOLDS_BITMASK (dest)))
     return FALSE;
 
+  errno = 0;
   val = g_ascii_strtoull (s, &endptr, 16);
   if (val == G_MAXUINT64 && (errno == ERANGE || errno == EINVAL))
     return FALSE;
diff --git a/gst/parse/Makefile.am b/gst/parse/Makefile.am
index a26d471..bb873aa 100644
--- a/gst/parse/Makefile.am
+++ b/gst/parse/Makefile.am
@@ -19,14 +19,6 @@
 
 noinst_HEADERS = types.h
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:STATIC libgstparse -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstparse_la_SOURCES) $(nodist_libgstparse_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstparse_la_CFLAGS) \
-	 -:LDFLAGS $(libgstparse_la_LIBADD) \
-	> $@
-
 grammar.tab.c grammar.tab.h: grammar.y
 	$(AM_V_GEN)$(BISON_PATH) -d -v -ppriv_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
 	mv grammar.tab.c grammar.tab_tmp.c && \
diff --git a/gst/parse/Makefile.in b/gst/parse/Makefile.in
index 31c90a8..20139c8 100644
--- a/gst/parse/Makefile.in
+++ b/gst/parse/Makefile.in
@@ -810,14 +810,6 @@
 	tags tags-am uninstall uninstall-am
 
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:STATIC libgstparse -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstparse_la_SOURCES) $(nodist_libgstparse_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstparse_la_CFLAGS) \
-	 -:LDFLAGS $(libgstparse_la_LIBADD) \
-	> $@
-
 grammar.tab.c grammar.tab.h: grammar.y
 	$(AM_V_GEN)$(BISON_PATH) -d -v -ppriv_gst_parse_yy $(srcdir)/grammar.y -o grammar.tab.c && \
 	mv grammar.tab.c grammar.tab_tmp.c && \
diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
index 53ee15b..f75d9bf 100644
--- a/gst/parse/grammar.y
+++ b/gst/parse/grammar.y
@@ -390,7 +390,8 @@
   }
   pos++;
   while (g_ascii_isspace (*pos)) pos++;
-  if (*pos == '"') {
+  /* truncate a string if it is delimited with double quotes */
+  if (*pos == '"' && pos[strlen (pos) - 1] == '"') {
     pos++;
     pos[strlen (pos) - 1] = '\0';
   }
diff --git a/gst/printf/vasnprintf.c b/gst/printf/vasnprintf.c
index b40fc09..a97404c 100644
--- a/gst/printf/vasnprintf.c
+++ b/gst/printf/vasnprintf.c
@@ -239,6 +239,11 @@
     argument *a;
 
     dp = &directives->dir[i];
+
+    /* %% has no arguments, for example */
+    if (dp->arg_index < 0)
+      continue;
+
     a = &arguments->arg[dp->arg_index];
 
     if (a->type == TYPE_POINTER_EXT) {
diff --git a/gstreamer.spec b/gstreamer.spec
index f8e19eb..2818e74 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -5,7 +5,7 @@
 
 Name: 		%{gstreamer}
 Version: 	1.5.0.1
-Release: 	0.20150316.185135
+Release: 	0.20150513.125409
 Summary: 	GStreamer streaming media framework runtime
 
 Group: 		Applications/Multimedia
diff --git a/libs/Makefile.am b/libs/Makefile.am
index c351b24..062cb55 100644
--- a/libs/Makefile.am
+++ b/libs/Makefile.am
@@ -1,6 +1 @@
 SUBDIRS = gst
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer \
-	 -:SUBDIR libs/gst \
-	> $@
diff --git a/libs/Makefile.in b/libs/Makefile.in
index 40f8eca..c2e1f0a 100644
--- a/libs/Makefile.in
+++ b/libs/Makefile.in
@@ -797,11 +797,6 @@
 	ps ps-am tags tags-am uninstall uninstall-am
 
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer \
-	 -:SUBDIR libs/gst \
-	> $@
-
 # 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/libs/gst/Makefile.am b/libs/gst/Makefile.am
index f1ae69c..c89aad1 100644
--- a/libs/gst/Makefile.am
+++ b/libs/gst/Makefile.am
@@ -14,9 +14,3 @@
 
 SUBDIRS = $(SUBDIRS_ALWAYS) $(SUBDIRS_CHECK) $(SUBDIRS_HELPERS)
 DIST_SUBDIRS = $(SUBDIRS_ALWAYS) check helpers
-
-Android.mk: Makefile.am
-	echo $(PWD)
-	androgenizer -:PROJECT gstreamer \
-	 -:SUBDIR $(patsubst %, libs/gst/%, $(SUBDIRS)) \
-	> $@
diff --git a/libs/gst/Makefile.in b/libs/gst/Makefile.in
index aa83476..22e305a 100644
--- a/libs/gst/Makefile.in
+++ b/libs/gst/Makefile.in
@@ -802,12 +802,6 @@
 	ps ps-am tags tags-am uninstall uninstall-am
 
 
-Android.mk: Makefile.am
-	echo $(PWD)
-	androgenizer -:PROJECT gstreamer \
-	 -:SUBDIR $(patsubst %, libs/gst/%, $(SUBDIRS)) \
-	> $@
-
 # 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/libs/gst/base/Makefile.am b/libs/gst/base/Makefile.am
index 738e718..12bf293 100644
--- a/libs/gst/base/Makefile.am
+++ b/libs/gst/base/Makefile.am
@@ -57,18 +57,6 @@
 
 gcov: $(libgstbase_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstbase_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstbase_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstbase_@GST_API_VERSION@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/base \
-	 -:HEADERS $(libgstbase_@GST_API_VERSION@include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = GstBase-@GST_API_VERSION@.gir
 
@@ -76,7 +64,7 @@
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstbase_@GST_API_VERSION@_la_SOURCES))
 
 GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la
-	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstBase \
 		--nsversion=@GST_API_VERSION@ \
diff --git a/libs/gst/base/Makefile.in b/libs/gst/base/Makefile.in
index 183f860..ea4be4e 100644
--- a/libs/gst/base/Makefile.in
+++ b/libs/gst/base/Makefile.in
@@ -1100,20 +1100,8 @@
 
 gcov: $(libgstbase_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstbase-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstbase_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstbase_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstbase_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstbase_@GST_API_VERSION@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/base \
-	 -:HEADERS $(libgstbase_@GST_API_VERSION@include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 @HAVE_INTROSPECTION_TRUE@GstBase-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstbase-@GST_API_VERSION@.la
-@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstBase \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 435d2d1..eee3c92 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -530,16 +530,6 @@
 
   g_object_unref (parse->priv->adapter);
 
-  if (parse->priv->cache) {
-    gst_buffer_unref (parse->priv->cache);
-    parse->priv->cache = NULL;
-  }
-
-  g_list_foreach (parse->priv->pending_events, (GFunc) gst_mini_object_unref,
-      NULL);
-  g_list_free (parse->priv->pending_events);
-  parse->priv->pending_events = NULL;
-
   if (parse->priv->index) {
     gst_object_unref (parse->priv->index);
     parse->priv->index = NULL;
@@ -770,11 +760,8 @@
 }
 
 static inline void
-gst_base_parse_frame_update (GstBaseParse * parse, GstBaseParseFrame * frame,
-    GstBuffer * buf)
+gst_base_parse_update_flags (GstBaseParse * parse)
 {
-  gst_buffer_replace (&frame->buffer, buf);
-
   parse->flags = 0;
 
   /* set flags one by one for clarity */
@@ -786,6 +773,22 @@
     parse->flags |= GST_BASE_PARSE_FLAG_LOST_SYNC;
 }
 
+static inline void
+gst_base_parse_update_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
+{
+  if (G_UNLIKELY (parse->priv->discont)) {
+    GST_DEBUG_OBJECT (parse, "marking DISCONT");
+    GST_BUFFER_FLAG_SET (frame->buffer, GST_BUFFER_FLAG_DISCONT);
+  }
+
+  if (parse->priv->prev_offset != parse->priv->offset || parse->priv->new_frame) {
+    GST_LOG_OBJECT (parse, "marking as new frame");
+    frame->flags |= GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME;
+  }
+
+  frame->offset = parse->priv->prev_offset = parse->priv->offset;
+}
+
 static void
 gst_base_parse_reset (GstBaseParse * parse)
 {
@@ -1147,6 +1150,9 @@
         gst_base_parse_drain (parse);
       else
         gst_base_parse_finish_fragment (parse, FALSE);
+      /* Also forward event immediately, there might be no new data
+       * coming afterwards that would allow us to forward it later */
+      forward_immediate = TRUE;
       break;
 
     case GST_EVENT_FLUSH_START:
@@ -1175,7 +1181,8 @@
         gst_base_parse_finish_fragment (parse, TRUE);
 
       /* If we STILL have zero frames processed, fire an error */
-      if (parse->priv->framecount == 0 && !parse->priv->saw_gaps) {
+      if (parse->priv->framecount == 0 && !parse->priv->saw_gaps &&
+          !parse->priv->first_buffer) {
         GST_ELEMENT_ERROR (parse, STREAM, WRONG_TYPE,
             ("No valid frames found before end of stream"), (NULL));
       }
@@ -1926,27 +1933,17 @@
       GST_BUFFER_OFFSET (buffer), GST_BUFFER_OFFSET (buffer),
       gst_buffer_get_size (buffer));
 
-  if (parse->priv->discont) {
-    GST_DEBUG_OBJECT (parse, "marking DISCONT");
-    GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT);
-    parse->priv->discont = FALSE;
-  }
-
   GST_BUFFER_OFFSET (buffer) = parse->priv->offset;
 
+  gst_base_parse_update_flags (parse);
+
   frame = gst_base_parse_frame_new (buffer, 0, 0);
-
-  /* also ensure to update state flags */
-  gst_base_parse_frame_update (parse, frame, buffer);
   gst_buffer_unref (buffer);
+  gst_base_parse_update_frame (parse, frame);
 
-  if (parse->priv->prev_offset != parse->priv->offset || parse->priv->new_frame) {
-    GST_LOG_OBJECT (parse, "marking as new frame");
-    parse->priv->new_frame = FALSE;
-    frame->flags |= GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME;
-  }
-
-  frame->offset = parse->priv->prev_offset = parse->priv->offset;
+  /* clear flags for next frame */
+  parse->priv->discont = FALSE;
+  parse->priv->new_frame = FALSE;
 
   /* use default handler to provide initial (upstream) metadata */
   gst_base_parse_parse_frame (parse, frame);
@@ -2954,13 +2951,17 @@
       gst_base_parse_frame_free (&frame);
       return ret;
     }
-    /* upstream feeding us in reverse playback;
-     * finish previous fragment and start new upon DISCONT */
-    if (parse->segment.rate < 0.0) {
-      if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
+    if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
+      /* upstream feeding us in reverse playback;
+       * finish previous fragment and start new upon DISCONT */
+      if (parse->segment.rate < 0.0) {
         GST_DEBUG_OBJECT (parse, "buffer starts new reverse playback fragment");
         ret = gst_base_parse_finish_fragment (parse, TRUE);
         gst_base_parse_start_fragment (parse);
+      } else {
+        /* discont in the stream, drain and mark discont for next output */
+        gst_base_parse_drain (parse);
+        parse->priv->discont = TRUE;
       }
     }
     gst_adapter_push (parse->priv->adapter, buffer);
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 211a715..6ab4816 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -1706,12 +1706,6 @@
       gst_element_post_message (GST_ELEMENT (src), message);
     }
 
-    /* for deriving a stop position for the playback segment from the seek
-     * segment, we must take the duration when the stop is not set */
-    /* FIXME: This is never used below */
-    if ((stop = seeksegment.stop) == -1)
-      stop = seeksegment.duration;
-
     src->priv->segment_pending = TRUE;
     src->priv->segment_seqnum = seqnum;
   }
@@ -1800,6 +1794,12 @@
       GST_OBJECT_LOCK (src->srcpad);
       start = (GST_PAD_MODE (src->srcpad) == GST_PAD_MODE_PUSH);
       GST_OBJECT_UNLOCK (src->srcpad);
+
+      if (src->is_live) {
+        if (!src->live_running)
+          start = FALSE;
+      }
+
       if (start)
         gst_pad_start_task (src->srcpad, (GstTaskFunction) gst_base_src_loop,
             src->srcpad, NULL);
@@ -2238,7 +2238,7 @@
     if (!GST_CLOCK_TIME_IS_VALID (dts)) {
       if (do_timestamp) {
         dts = running_time;
-      } else {
+      } else if (!GST_CLOCK_TIME_IS_VALID (pts)) {
         if (GST_CLOCK_TIME_IS_VALID (basesrc->segment.start)) {
           dts = basesrc->segment.start;
         } else {
@@ -3109,6 +3109,7 @@
   GST_ELEMENT_ERROR (basesrc, RESOURCE, SETTINGS,
       ("Failed to configure the buffer pool"),
       ("Configuration is most likely invalid, please report this issue."));
+  gst_object_unref (pool);
   return FALSE;
 }
 
@@ -3859,7 +3860,7 @@
  * @src: a #GstBaseSrc
  *
  * Returns: (transfer full): the instance of the #GstBufferPool used
- * by the src; free it after use it
+ * by the src; unref it after usage.
  */
 GstBufferPool *
 gst_base_src_get_buffer_pool (GstBaseSrc * src)
@@ -3883,7 +3884,7 @@
  * Lets #GstBaseSrc sub-classes to know the memory @allocator
  * used by the base class and its @params.
  *
- * Unref the @allocator after use it.
+ * Unref the @allocator after usage.
  */
 void
 gst_base_src_get_allocator (GstBaseSrc * src,
diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
index 073d08c..d645fa4 100644
--- a/libs/gst/base/gstbasetransform.c
+++ b/libs/gst/base/gstbasetransform.c
@@ -2786,3 +2786,35 @@
   if (params)
     *params = trans->priv->params;
 }
+
+/**
+ * gst_base_transform_update_src_caps:
+ * @trans: a #GstBaseTransform
+ * @updated_caps: An updated version of the srcpad caps to be pushed
+ * downstream
+ *
+ * Updates the srcpad caps and send the caps downstream. This function
+ * can be used by subclasses when they have already negotiated their caps
+ * but found a change in them (or computed new informations). This way,
+ * they can notify downstream about that change without loosing any
+ * buffer.
+ *
+ * Returns: %TRUE if the caps could be send downstream %FALSE otherwise
+ *
+ * Since: 1.6
+ */
+gboolean
+gst_base_transform_update_src_caps (GstBaseTransform * trans,
+    GstCaps * updated_caps)
+{
+  g_return_val_if_fail (GST_IS_BASE_TRANSFORM (trans), FALSE);
+
+  if (gst_pad_push_event (GST_BASE_TRANSFORM_SRC_PAD (trans),
+          gst_event_new_caps (updated_caps))) {
+    gst_pad_mark_reconfigure (trans->srcpad);
+
+    return TRUE;
+  }
+
+  return FALSE;
+}
diff --git a/libs/gst/base/gstbasetransform.h b/libs/gst/base/gstbasetransform.h
index 3043a62..0eec6e9 100644
--- a/libs/gst/base/gstbasetransform.h
+++ b/libs/gst/base/gstbasetransform.h
@@ -293,6 +293,8 @@
 
 void		gst_base_transform_reconfigure_sink (GstBaseTransform *trans);
 void		gst_base_transform_reconfigure_src  (GstBaseTransform *trans);
+gboolean gst_base_transform_update_src_caps (GstBaseTransform *trans,
+                                             GstCaps *updated_caps);
 G_END_DECLS
 
 #endif /* __GST_BASE_TRANSFORM_H__ */
diff --git a/libs/gst/check/Makefile.am b/libs/gst/check/Makefile.am
index 8c2a1b3..9ccaaaa 100644
--- a/libs/gst/check/Makefile.am
+++ b/libs/gst/check/Makefile.am
@@ -139,7 +139,7 @@
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcheck_@GST_API_VERSION@_la_SOURCES))
 
 GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la
-	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstCheck \
 		--nsversion=@GST_API_VERSION@ \
diff --git a/libs/gst/check/Makefile.in b/libs/gst/check/Makefile.in
index cf358d2..f268197 100644
--- a/libs/gst/check/Makefile.in
+++ b/libs/gst/check/Makefile.in
@@ -1234,7 +1234,7 @@
 	done
 
 @HAVE_INTROSPECTION_TRUE@GstCheck-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcheck-@GST_API_VERSION@.la
-@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstCheck \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
diff --git a/libs/gst/check/gstcheck.h b/libs/gst/check/gstcheck.h
index 77f4596..3c1b0ff 100644
--- a/libs/gst/check/gstcheck.h
+++ b/libs/gst/check/gstcheck.h
@@ -116,6 +116,18 @@
   GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code)
 #define assert_message_error(m, d, c) fail_unless_message_error(m, d, c)
 
+#ifdef GST_CHECK_TEST_ENVIRONMENT_BEACON
+#define GST_DO_CHECK_TEST_ENVIRONMENT \
+G_STMT_START {                        \
+  if (g_getenv (GST_CHECK_TEST_ENVIRONMENT_BEACON) == NULL) \
+    fail ("Test environment not set up correctly! Expected environment " \
+       "variable '%s' to be set.", GST_CHECK_TEST_ENVIRONMENT_BEACON); \
+} G_STMT_END
+
+#else
+#define GST_DO_CHECK_TEST_ENVIRONMENT /* nothing to check */
+#endif
+
 /**
  * GST_START_TEST:
  * @__testname: test function name
@@ -131,6 +143,7 @@
 static void __testname (int __i__)\
 {\
   GST_DEBUG ("test start"); \
+  GST_DO_CHECK_TEST_ENVIRONMENT; \
   tcase_fn_start (""# __testname, __FILE__, __LINE__);
 
 #define GST_END_TEST GST_LOG ("cleaning up tasks"); \
diff --git a/libs/gst/check/libcheck/check_run.c b/libs/gst/check/libcheck/check_run.c
index c727052..38d2cf6 100644
--- a/libs/gst/check/libcheck/check_run.c
+++ b/libs/gst/check/libcheck/check_run.c
@@ -94,6 +94,11 @@
 static int alarm_received;
 static pid_t group_pid;
 
+#if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
+static struct sigaction old_action[3];
+static struct sigaction new_action[3];
+#endif /* HAVE_SIGACTION && HAVE_FORK */
+
 static void CK_ATTRIBUTE_UNUSED
 sig_handler (int sig_nr)
 {
@@ -102,6 +107,33 @@
       alarm_received = 1;
       killpg (group_pid, SIGKILL);
       break;
+    case SIGTERM:
+    case SIGINT:{
+      pid_t own_group_pid;
+      int idx;
+      int child_sig;
+
+      if (sig_nr == SIGINT) {
+        idx = 1;
+        child_sig = SIGKILL;
+      } else {                  /* if (sig_nr == SIGTERM) */
+
+        idx = 2;
+        child_sig = SIGTERM;
+      }
+
+      killpg (group_pid, child_sig);
+
+      /* Restore old signal handler... */
+      sigaction (sig_nr, &old_action[idx], NULL);
+
+      /* ... and call it. POSIX says that calling killpg(0)
+       * does not necessarily mean to call it on the callers
+       * group pid! */
+      own_group_pid = getpgrp ();
+      killpg (own_group_pid, sig_nr);
+      break;
+    }
     default:
       eprintf ("Unhandled signal: %d", __FILE__, __LINE__, sig_nr);
       break;
@@ -648,12 +680,7 @@
 srunner_run (SRunner * sr, const char *sname, const char *tcname,
     enum print_output print_mode)
 {
-#if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
-  struct sigaction old_action;
-  struct sigaction new_action;
-#endif /* HAVE_SIGACTION && HAVE_FORK */
-
-  /*  Get the selected test suite and test case from the
+  /* Get the selected test suite and test case from the
      environment.  */
   if (!tcname)
     tcname = getenv ("CK_RUN_CASE");
@@ -668,14 +695,20 @@
   }
 #if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
   memset (&new_action, 0, sizeof new_action);
-  new_action.sa_handler = sig_handler;
-  sigaction (SIGALRM, &new_action, &old_action);
+  new_action[0].sa_handler = sig_handler;
+  sigaction (SIGALRM, &new_action[0], &old_action[0]);
+  new_action[1].sa_handler = sig_handler;
+  sigaction (SIGINT, &new_action[1], &old_action[1]);
+  new_action[2].sa_handler = sig_handler;
+  sigaction (SIGTERM, &new_action[2], &old_action[2]);
 #endif /* HAVE_SIGACTION && HAVE_FORK */
   srunner_run_init (sr, print_mode);
   srunner_iterate_suites (sr, sname, tcname, print_mode);
   srunner_run_end (sr, print_mode);
 #if defined(HAVE_SIGACTION) && defined(HAVE_FORK)
-  sigaction (SIGALRM, &old_action, NULL);
+  sigaction (SIGALRM, &old_action[0], NULL);
+  sigaction (SIGINT, &old_action[1], NULL);
+  sigaction (SIGTERM, &old_action[2], NULL);
 #endif /* HAVE_SIGACTION && HAVE_FORK */
 }
 
diff --git a/libs/gst/controller/Makefile.am b/libs/gst/controller/Makefile.am
index 4050f27..922845d 100644
--- a/libs/gst/controller/Makefile.am
+++ b/libs/gst/controller/Makefile.am
@@ -29,18 +29,6 @@
 
 gcov: $(libgstcontroller_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcontroller_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/controller \
-	 -:HEADERS $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = GstController-@GST_API_VERSION@.gir
 
@@ -48,7 +36,7 @@
 gir_sources=$(patsubst %,$(srcdir)/%, $(libgstcontroller_@GST_API_VERSION@_la_SOURCES))
 
 GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la
-	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstController \
 		--nsversion=@GST_API_VERSION@ \
diff --git a/libs/gst/controller/Makefile.in b/libs/gst/controller/Makefile.in
index 52532c2..5c9c475 100644
--- a/libs/gst/controller/Makefile.in
+++ b/libs/gst/controller/Makefile.in
@@ -935,20 +935,8 @@
 
 gcov: $(libgstcontroller_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcontroller-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcontroller_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(libgstcontroller_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcontroller_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstcontroller_@GST_API_VERSION@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/controller \
-	 -:HEADERS $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 @HAVE_INTROSPECTION_TRUE@GstController-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstcontroller-@GST_API_VERSION@.la
-@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstController \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
diff --git a/libs/gst/helpers/Makefile.am b/libs/gst/helpers/Makefile.am
index 523b2df..1f1eacc 100644
--- a/libs/gst/helpers/Makefile.am
+++ b/libs/gst/helpers/Makefile.am
@@ -8,11 +8,15 @@
 bashhelpersdir = $(BASH_HELPERS_DIR)
 dist_bashhelpers_DATA = gst
 
-install-data-hook:
+install-exec-hook:
+	$(MKDIR_P) $(DESTDIR)$(BASH_HELPERS_DIR) && \
 	cd $(DESTDIR)$(bindir) && \
-	mv `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
-	$(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
-	chmod 755 $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
+	$(INSTALL) `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
+        $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT) && \
+	rm `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT)
+
+uninstall-hook:
+	rm -f $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
 endif
 
 helpers_PROGRAMS = gst-plugin-scanner
@@ -22,15 +26,10 @@
 gst_plugin_scanner_CFLAGS = $(GST_OBJ_CFLAGS)
 gst_plugin_scanner_LDADD = $(GST_OBJ_LIBS)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:EXECUTABLE gst-plugin-scanner  -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(gst_plugin_scanner_SOURCES) \
-	 -:CFLAGS $(gst_plugin_scanner_CFLAGS) \
-	 -:LDFLAGS $(gst_plugin_scanner_LDADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 # clean out the old one to make sure everything is udpated correctly
 # remove again after release
 CLEANFILES = plugin-scanner
+
+if ENABLE_BASH_COMPLETION
+CLEANFILES += gst-completion-helper-@GST_API_VERSION@
+endif
diff --git a/libs/gst/helpers/Makefile.in b/libs/gst/helpers/Makefile.in
index e9296a0..c7780a7 100644
--- a/libs/gst/helpers/Makefile.in
+++ b/libs/gst/helpers/Makefile.in
@@ -82,6 +82,7 @@
 target_triplet = @target@
 @ENABLE_BASH_COMPLETION_TRUE@bin_PROGRAMS = gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
 helpers_PROGRAMS = gst-plugin-scanner$(EXEEXT)
+@ENABLE_BASH_COMPLETION_TRUE@am__append_1 = gst-completion-helper-@GST_API_VERSION@
 subdir = libs/gst/helpers
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
 	$(top_srcdir)/depcomp $(am__dist_bashhelpers_DATA_DIST)
@@ -541,7 +542,7 @@
 
 # clean out the old one to make sure everything is udpated correctly
 # remove again after release
-CLEANFILES = plugin-scanner
+CLEANFILES = plugin-scanner $(am__append_1)
 all: all-am
 
 .SUFFIXES:
@@ -891,7 +892,8 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-@ENABLE_BASH_COMPLETION_FALSE@install-data-hook:
+@ENABLE_BASH_COMPLETION_FALSE@install-exec-hook:
+@ENABLE_BASH_COMPLETION_FALSE@uninstall-hook:
 clean: clean-am
 
 clean-am: clean-binPROGRAMS clean-generic clean-helpersPROGRAMS \
@@ -916,14 +918,14 @@
 info-am:
 
 install-data-am: install-dist_bashhelpersDATA install-helpersPROGRAMS
-	@$(NORMAL_INSTALL)
-	$(MAKE) $(AM_MAKEFLAGS) install-data-hook
+
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
 install-exec-am: install-binPROGRAMS
-
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
 install-html: install-html-am
 
 install-html-am:
@@ -964,8 +966,9 @@
 
 uninstall-am: uninstall-binPROGRAMS uninstall-dist_bashhelpersDATA \
 	uninstall-helpersPROGRAMS
-
-.MAKE: install-am install-data-am install-strip
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-exec-am install-strip uninstall-am
 
 .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
 	clean-binPROGRAMS clean-generic clean-helpersPROGRAMS \
@@ -973,8 +976,8 @@
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-binPROGRAMS install-data \
-	install-data-am install-data-hook install-dist_bashhelpersDATA \
-	install-dvi install-dvi-am install-exec install-exec-am \
+	install-data-am install-dist_bashhelpersDATA install-dvi \
+	install-dvi-am install-exec install-exec-am install-exec-hook \
 	install-helpersPROGRAMS install-html install-html-am \
 	install-info install-info-am install-man install-pdf \
 	install-pdf-am install-ps install-ps-am install-strip \
@@ -982,23 +985,19 @@
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
-	uninstall-dist_bashhelpersDATA uninstall-helpersPROGRAMS
+	uninstall-dist_bashhelpersDATA uninstall-helpersPROGRAMS \
+	uninstall-hook
 
 
-@ENABLE_BASH_COMPLETION_TRUE@install-data-hook:
+@ENABLE_BASH_COMPLETION_TRUE@install-exec-hook:
+@ENABLE_BASH_COMPLETION_TRUE@	$(MKDIR_P) $(DESTDIR)$(BASH_HELPERS_DIR) && \
 @ENABLE_BASH_COMPLETION_TRUE@	cd $(DESTDIR)$(bindir) && \
-@ENABLE_BASH_COMPLETION_TRUE@	mv `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
-@ENABLE_BASH_COMPLETION_TRUE@	$(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
-@ENABLE_BASH_COMPLETION_TRUE@	chmod 755 $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
+@ENABLE_BASH_COMPLETION_TRUE@	$(INSTALL) `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
+@ENABLE_BASH_COMPLETION_TRUE@        $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT) && \
+@ENABLE_BASH_COMPLETION_TRUE@	rm `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:EXECUTABLE gst-plugin-scanner  -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(gst_plugin_scanner_SOURCES) \
-	 -:CFLAGS $(gst_plugin_scanner_CFLAGS) \
-	 -:LDFLAGS $(gst_plugin_scanner_LDADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
+@ENABLE_BASH_COMPLETION_TRUE@uninstall-hook:
+@ENABLE_BASH_COMPLETION_TRUE@	rm -f $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
 
 # 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.
diff --git a/libs/gst/helpers/gst b/libs/gst/helpers/gst
index 76275e6..c8bcee8 100644
--- a/libs/gst/helpers/gst
+++ b/libs/gst/helpers/gst
@@ -18,13 +18,13 @@
 # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 # Boston, MA 02110-1301, USA.
 
-___gst_debug_level () { _mandatory__argument; }
-___gst_debug () { _mandatory__argument; }
-___gst_debug_color_mode () { _mandatory__argument; }
-___gst_plugin_path () { _mandatory__argument; }
-___gst_plugin_load () { _mandatory__argument; }
+___gst_debug_level () { _gst_mandatory_argument; }
+___gst_debug () { _gst_mandatory_argument; }
+___gst_debug_color_mode () { _gst_mandatory_argument; }
+___gst_plugin_path () { _gst_mandatory_argument; }
+___gst_plugin_load () { _gst_mandatory_argument; }
 
-_mandatory__argument ()
+_gst_mandatory_argument ()
 {
 	if [[ "$prev" != "$command" ]]
 	then
diff --git a/libs/gst/net/Makefile.am b/libs/gst/net/Makefile.am
index 0e61153..f78f679 100644
--- a/libs/gst/net/Makefile.am
+++ b/libs/gst/net/Makefile.am
@@ -28,18 +28,6 @@
 
 gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstnet_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(libgstnet_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstnet_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstnet_@GST_API_VERSION@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/net \
-	 -:HEADERS $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 
 if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = GstNet-@GST_API_VERSION@.gir
@@ -49,7 +37,7 @@
 gir_cincludes=--c-include="gst/net/net.h"
 
 GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
-	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 		$(INTROSPECTION_SCANNER) -v --namespace GstNet \
 		--strip-prefix=Gst \
diff --git a/libs/gst/net/Makefile.in b/libs/gst/net/Makefile.in
index 8a2129b..932caab 100644
--- a/libs/gst/net/Makefile.in
+++ b/libs/gst/net/Makefile.in
@@ -926,20 +926,8 @@
 
 gcov: $(libgstnet_@GST_API_VERSION@_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstnet-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstnet_@GST_API_VERSION@_la_SOURCES) \
-	 -:CFLAGS $(libgstnet_@GST_API_VERSION@_la_CFLAGS) \
-	 -:LDFLAGS $(libgstnet_@GST_API_VERSION@_la_LDFLAGS) \
-	           $(libgstnet_@GST_API_VERSION@_la_LIBADD) \
-	 -:HEADER_TARGET gstreamer-@GST_API_VERSION@/gst/net \
-	 -:HEADERS $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 @HAVE_INTROSPECTION_TRUE@GstNet-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstnet-@GST_API_VERSION@.la
-@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
+@HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstNet \
 @HAVE_INTROSPECTION_TRUE@		--strip-prefix=Gst \
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 17233d2..4e46e71 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -1,8 +1,3 @@
 SUBDIRS = elements
 
 DIST_SUBDIRS = elements
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer \
-	 -:SUBDIR $(patsubst %,plugins/%, $(SUBDIRS)) \
-	> $@
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index cbc6506..ea19d09 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -797,11 +797,6 @@
 	ps ps-am tags tags-am uninstall uninstall-am
 
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer \
-	 -:SUBDIR $(patsubst %,plugins/%, $(SUBDIRS)) \
-	> $@
-
 # 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/plugins/elements/Makefile.am b/plugins/elements/Makefile.am
index ee3c9fb..db4d38c 100644
--- a/plugins/elements/Makefile.am
+++ b/plugins/elements/Makefile.am
@@ -68,14 +68,3 @@
 	$(GCOV) -b -f -o $^ > $@.out
 
 gcov: $(libgstcoreelements_la_SOURCES:=.gcov)
-
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcoreelements -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcoreelements_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstcoreelements_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcoreelements_la_LDFLAGS) \
-	            $(libgstcoreelements_la_LIBADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_API_VERSION@ \
-	> $@
diff --git a/plugins/elements/Makefile.in b/plugins/elements/Makefile.in
index b83d15f..7f2af24 100644
--- a/plugins/elements/Makefile.in
+++ b/plugins/elements/Makefile.in
@@ -1102,17 +1102,6 @@
 
 gcov: $(libgstcoreelements_la_SOURCES:=.gcov)
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer -:SHARED libgstcoreelements -:TAGS eng debug \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES $(libgstcoreelements_la_SOURCES) \
-	 -:CFLAGS $(DEFS) $(libgstcoreelements_la_CFLAGS) \
-	 -:LDFLAGS $(libgstcoreelements_la_LDFLAGS) \
-	            $(libgstcoreelements_la_LIBADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	               LOCAL_MODULE_PATH:=$$\(TARGET_OUT\)/lib/gstreamer-@GST_API_VERSION@ \
-	> $@
-
 # 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/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c
index 6c7ae0d..50fe8ac 100644
--- a/plugins/elements/gstcapsfilter.c
+++ b/plugins/elements/gstcapsfilter.c
@@ -28,8 +28,11 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch videotestsrc ! video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
- * ]| Limits acceptable video from videotestsrc to be grayscale.
+ * gst-launch-1.0 videotestsrc ! capsfilter caps=video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
+ * ]| Limits acceptable video from videotestsrc to be grayscale. Equivalent to
+ * |[
+ * gst-launch-1.0 videotestsrc ! video/x-raw,format=GRAY8 ! videoconvert ! autovideosink
+ * ]| which is a short notation for the capsfilter element.
  * </refsect2>
  */
 
diff --git a/plugins/elements/gstfakesink.c b/plugins/elements/gstfakesink.c
index 9eb74c6..8a1d1da 100644
--- a/plugins/elements/gstfakesink.c
+++ b/plugins/elements/gstfakesink.c
@@ -28,7 +28,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch audiotestsrc num-buffers=1000 ! fakesink sync=false
+ * gst-launch-1.0 audiotestsrc num-buffers=1000 ! fakesink sync=false
  * ]| Render 1000 audio buffers (of default size) as fast as possible.
  * </refsect2>
  */
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index 62434bb..fbcbca9 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -32,7 +32,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch -v fakesrc num-buffers=5 ! fakesink
+ * gst-launch-1.0 -v fakesrc num-buffers=5 ! fakesink
  * ]| This pipeline will push 5 empty buffers to the fakesink element and then
  * sends an EOS.
  * </refsect2>
diff --git a/plugins/elements/gstfdsrc.c b/plugins/elements/gstfdsrc.c
index 8058328..cebca21 100644
--- a/plugins/elements/gstfdsrc.c
+++ b/plugins/elements/gstfdsrc.c
@@ -30,9 +30,9 @@
  * The above mentioned pipeline should dump data packets to the console.
  *
  * If the #GstFdSrc:timeout property is set to a value bigger than 0, fdsrc will
- * generate an element message named
- * <classname>&quot;GstFdSrcTimeout&quot;</classname>
+ * generate an element message named <classname>&quot;GstFdSrcTimeout&quot;</classname>
  * if no data was received in the given timeout.
+ *
  * The message's structure contains one field:
  * <itemizedlist>
  * <listitem>
@@ -47,7 +47,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * echo "Hello GStreamer" | gst-launch -v fdsrc ! fakesink dump=true
+ * echo "Hello GStreamer" | gst-launch-1.0 -v fdsrc ! fakesink dump=true
  * ]| A simple pipeline to read from the standard input and dump the data
  * with a fakesink as hex ascii block.
  * </refsect2>
diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c
index c13cac7..0c2706c 100644
--- a/plugins/elements/gstfilesink.c
+++ b/plugins/elements/gstfilesink.c
@@ -29,7 +29,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch v4l2src num-buffers=1 ! jpegenc ! filesink location=capture1.jpeg
+ * gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=capture1.jpeg
  * ]| Capture one frame from a v4l2 camera and save as jpeg image.
  * </refsect2>
  */
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index bfc67e3..f99245a 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -28,8 +28,8 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch filesrc location=song.ogg ! decodebin ! autoaudiosink
- * ]| Play a song.ogg from local dir.
+ * gst-launch-1.0 filesrc location=song.ogg ! decodebin ! audioconvert ! audioresample ! autoaudiosink
+ * ]| Play song.ogg audio file which must be in the current working directory.
  * </refsect2>
  */
 
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index 6c6af2b..048a90e 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -112,6 +112,8 @@
 
 static GstFlowReturn gst_funnel_sink_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buffer);
+static GstFlowReturn gst_funnel_sink_chain_list (GstPad * pad,
+    GstObject * parent, GstBufferList * list);
 static gboolean gst_funnel_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event);
 
@@ -183,6 +185,8 @@
 
   gst_pad_set_chain_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_funnel_sink_chain));
+  gst_pad_set_chain_list_function (sinkpad,
+      GST_DEBUG_FUNCPTR (gst_funnel_sink_chain_list));
   gst_pad_set_event_function (sinkpad,
       GST_DEBUG_FUNCPTR (gst_funnel_sink_event));
 
@@ -261,12 +265,13 @@
 }
 
 static GstFlowReturn
-gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+gst_funnel_sink_chain_object (GstPad * pad, GstFunnel * funnel,
+    gboolean is_list, GstMiniObject * obj)
 {
   GstFlowReturn res;
-  GstFunnel *funnel = GST_FUNNEL (parent);
 
-  GST_DEBUG_OBJECT (funnel, "received buffer %p", buffer);
+  GST_DEBUG_OBJECT (funnel, "received buffer%s %p", (is_list ? "list" : ""),
+      obj);
 
   GST_PAD_STREAM_LOCK (funnel->srcpad);
 
@@ -277,15 +282,38 @@
     gst_pad_sticky_events_foreach (pad, forward_events, funnel->srcpad);
   }
 
-  res = gst_pad_push (funnel->srcpad, buffer);
+  if (is_list)
+    res = gst_pad_push_list (funnel->srcpad, GST_BUFFER_LIST_CAST (obj));
+  else
+    res = gst_pad_push (funnel->srcpad, GST_BUFFER_CAST (obj));
 
   GST_PAD_STREAM_UNLOCK (funnel->srcpad);
 
-  GST_LOG_OBJECT (funnel, "handled buffer %s", gst_flow_get_name (res));
+  GST_LOG_OBJECT (funnel, "handled buffer%s %s", (is_list ? "list" : ""),
+      gst_flow_get_name (res));
 
   return res;
 }
 
+static GstFlowReturn
+gst_funnel_sink_chain_list (GstPad * pad, GstObject * parent,
+    GstBufferList * list)
+{
+  GstFunnel *funnel = GST_FUNNEL (parent);
+
+  return gst_funnel_sink_chain_object (pad, funnel, TRUE,
+      GST_MINI_OBJECT_CAST (list));
+}
+
+static GstFlowReturn
+gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+{
+  GstFunnel *funnel = GST_FUNNEL (parent);
+
+  return gst_funnel_sink_chain_object (pad, funnel, FALSE,
+      GST_MINI_OBJECT_CAST (buffer));
+}
+
 static gboolean
 gst_funnel_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
diff --git a/plugins/elements/gstidentity.c b/plugins/elements/gstidentity.c
index 8f564cf..177bfa0 100644
--- a/plugins/elements/gstidentity.c
+++ b/plugins/elements/gstidentity.c
@@ -112,6 +112,8 @@
     GstStateChange transition);
 static gboolean gst_identity_accept_caps (GstBaseTransform * base,
     GstPadDirection direction, GstCaps * caps);
+static gboolean gst_identity_query (GstBaseTransform * base,
+    GstPadDirection direction, GstQuery * query);
 
 static guint gst_identity_signals[LAST_SIGNAL] = { 0 };
 
@@ -125,6 +127,7 @@
   identity = GST_IDENTITY (object);
 
   g_free (identity->last_message);
+  g_cond_clear (&identity->blocked_cond);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -239,6 +242,7 @@
   gstbasetrans_class->stop = GST_DEBUG_FUNCPTR (gst_identity_stop);
   gstbasetrans_class->accept_caps =
       GST_DEBUG_FUNCPTR (gst_identity_accept_caps);
+  gstbasetrans_class->query = gst_identity_query;
 }
 
 static void
@@ -256,6 +260,7 @@
   identity->dump = DEFAULT_DUMP;
   identity->last_message = NULL;
   identity->signal_handoffs = DEFAULT_SIGNAL_HANDOFFS;
+  g_cond_init (&identity->blocked_cond);
 
   gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM_CAST (identity), TRUE);
 }
@@ -266,6 +271,48 @@
   g_object_notify_by_pspec ((GObject *) identity, pspec_last_message);
 }
 
+static GstFlowReturn
+gst_identity_do_sync (GstIdentity * identity, GstClockTime running_time)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+
+  if (identity->sync &&
+      GST_BASE_TRANSFORM_CAST (identity)->segment.format == GST_FORMAT_TIME) {
+    GstClock *clock;
+
+    GST_OBJECT_LOCK (identity);
+
+    while (identity->blocked)
+      g_cond_wait (&identity->blocked_cond, GST_OBJECT_GET_LOCK (identity));
+
+
+    if ((clock = GST_ELEMENT (identity)->clock)) {
+      GstClockReturn cret;
+      GstClockTime timestamp;
+
+      timestamp = running_time + GST_ELEMENT (identity)->base_time +
+          identity->upstream_latency;
+
+      /* save id if we need to unlock */
+      identity->clock_id = gst_clock_new_single_shot_id (clock, timestamp);
+      GST_OBJECT_UNLOCK (identity);
+
+      cret = gst_clock_id_wait (identity->clock_id, NULL);
+
+      GST_OBJECT_LOCK (identity);
+      if (identity->clock_id) {
+        gst_clock_id_unref (identity->clock_id);
+        identity->clock_id = NULL;
+      }
+      if (cret == GST_CLOCK_UNSCHEDULED)
+        ret = GST_FLOW_EOS;
+    }
+    GST_OBJECT_UNLOCK (identity);
+  }
+
+  return ret;
+}
+
 static gboolean
 gst_identity_sink_event (GstBaseTransform * trans, GstEvent * event)
 {
@@ -318,8 +365,7 @@
     }
   }
 
-  /* also transform GAP timestamp similar to buffer timestamps */
-  if (identity->single_segment && (GST_EVENT_TYPE (event) == GST_EVENT_GAP) &&
+  if (GST_EVENT_TYPE (event) == GST_EVENT_GAP &&
       trans->have_segment && trans->segment.format == GST_FORMAT_TIME) {
     GstClockTime start, dur;
 
@@ -327,8 +373,14 @@
     if (GST_CLOCK_TIME_IS_VALID (start)) {
       start = gst_segment_to_running_time (&trans->segment,
           GST_FORMAT_TIME, start);
-      gst_event_unref (event);
-      event = gst_event_new_gap (start, dur);
+
+      gst_identity_do_sync (identity, start);
+
+      /* also transform GAP timestamp similar to buffer timestamps */
+      if (identity->single_segment) {
+        gst_event_unref (event);
+        event = gst_event_new_gap (start, dur);
+      }
     }
   }
 
@@ -502,8 +554,9 @@
 {
   GstFlowReturn ret = GST_FLOW_OK;
   GstIdentity *identity = GST_IDENTITY (trans);
-  GstClockTime runtimestamp = G_GINT64_CONSTANT (0);
-  GstClockTime ts, duration;
+  GstClockTime rundts = GST_CLOCK_TIME_NONE;
+  GstClockTime runpts = GST_CLOCK_TIME_NONE;
+  GstClockTime ts, duration, runtimestamp;
   gsize size;
 
   size = gst_buffer_get_size (buf);
@@ -553,37 +606,21 @@
   if (identity->signal_handoffs)
     g_signal_emit (identity, gst_identity_signals[SIGNAL_HANDOFF], 0, buf);
 
-  if (trans->segment.format == GST_FORMAT_TIME)
-    runtimestamp = gst_segment_to_running_time (&trans->segment,
-        GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (buf));
-
-  if ((identity->sync) && (trans->segment.format == GST_FORMAT_TIME)) {
-    GstClock *clock;
-
-    GST_OBJECT_LOCK (identity);
-    if ((clock = GST_ELEMENT (identity)->clock)) {
-      GstClockReturn cret;
-      GstClockTime timestamp;
-
-      timestamp = runtimestamp + GST_ELEMENT (identity)->base_time;
-
-      /* save id if we need to unlock */
-      identity->clock_id = gst_clock_new_single_shot_id (clock, timestamp);
-      GST_OBJECT_UNLOCK (identity);
-
-      cret = gst_clock_id_wait (identity->clock_id, NULL);
-
-      GST_OBJECT_LOCK (identity);
-      if (identity->clock_id) {
-        gst_clock_id_unref (identity->clock_id);
-        identity->clock_id = NULL;
-      }
-      if (cret == GST_CLOCK_UNSCHEDULED)
-        ret = GST_FLOW_EOS;
-    }
-    GST_OBJECT_UNLOCK (identity);
+  if (trans->segment.format == GST_FORMAT_TIME) {
+    rundts = gst_segment_to_running_time (&trans->segment,
+        GST_FORMAT_TIME, GST_BUFFER_DTS (buf));
+    runpts = gst_segment_to_running_time (&trans->segment,
+        GST_FORMAT_TIME, GST_BUFFER_PTS (buf));
   }
 
+  if (GST_CLOCK_TIME_IS_VALID (rundts))
+    runtimestamp = rundts;
+  else if (GST_CLOCK_TIME_IS_VALID (runpts))
+    runtimestamp = runpts;
+  else
+    runtimestamp = 0;
+  ret = gst_identity_do_sync (identity, runtimestamp);
+
   identity->offset += size;
 
   if (identity->sleep_time && ret == GST_FLOW_OK)
@@ -591,7 +628,8 @@
 
   if (identity->single_segment && (trans->segment.format == GST_FORMAT_TIME)
       && (ret == GST_FLOW_OK)) {
-    GST_BUFFER_PTS (buf) = GST_BUFFER_DTS (buf) = runtimestamp;
+    GST_BUFFER_DTS (buf) = rundts;
+    GST_BUFFER_PTS (buf) = runpts;
     GST_BUFFER_OFFSET (buf) = GST_CLOCK_TIME_NONE;
     GST_BUFFER_OFFSET_END (buf) = GST_CLOCK_TIME_NONE;
   }
@@ -779,18 +817,69 @@
   return ret;
 }
 
+static gboolean
+gst_identity_query (GstBaseTransform * base, GstPadDirection direction,
+    GstQuery * query)
+{
+  GstIdentity *identity;
+  gboolean ret;
+
+  identity = GST_IDENTITY (base);
+
+  ret = GST_BASE_TRANSFORM_CLASS (parent_class)->query (base, direction, query);
+
+  if (GST_QUERY_TYPE (query) == GST_QUERY_LATENCY) {
+    gboolean live = FALSE;
+    GstClockTime min = 0, max = 0;
+
+    if (ret) {
+      gst_query_parse_latency (query, &live, &min, &max);
+
+      if (identity->sync && max < min) {
+        GST_ELEMENT_WARNING (base, CORE, CLOCK, (NULL),
+            ("Impossible to configure latency before identity sync=true:"
+                " max %" GST_TIME_FORMAT " < min %"
+                GST_TIME_FORMAT ". Add queues or other buffering elements.",
+                GST_TIME_ARGS (max), GST_TIME_ARGS (min)));
+      }
+    }
+
+    /* Ignore the upstream latency if it is not live */
+    GST_OBJECT_LOCK (identity);
+    if (live)
+      identity->upstream_latency = min;
+    else
+      identity->upstream_latency = 0;
+    GST_OBJECT_UNLOCK (identity);
+
+    gst_query_set_latency (query, live || identity->sync, min, max);
+    ret = TRUE;
+  }
+  return ret;
+}
+
 static GstStateChangeReturn
 gst_identity_change_state (GstElement * element, GstStateChange transition)
 {
   GstStateChangeReturn ret;
   GstIdentity *identity = GST_IDENTITY (element);
+  gboolean no_preroll = FALSE;
 
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
+      GST_OBJECT_LOCK (identity);
+      identity->blocked = TRUE;
+      GST_OBJECT_UNLOCK (identity);
+      if (identity->sync)
+        no_preroll = TRUE;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+      GST_OBJECT_LOCK (identity);
+      identity->blocked = FALSE;
+      g_cond_broadcast (&identity->blocked_cond);
+      GST_OBJECT_UNLOCK (identity);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       GST_OBJECT_LOCK (identity);
@@ -800,6 +889,8 @@
         gst_clock_id_unref (identity->clock_id);
         identity->clock_id = NULL;
       }
+      identity->blocked = FALSE;
+      g_cond_broadcast (&identity->blocked_cond);
       GST_OBJECT_UNLOCK (identity);
       break;
     default:
@@ -810,6 +901,12 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      GST_OBJECT_LOCK (identity);
+      identity->upstream_latency = 0;
+      identity->blocked = TRUE;
+      GST_OBJECT_UNLOCK (identity);
+      if (identity->sync)
+        no_preroll = TRUE;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       break;
@@ -819,5 +916,8 @@
       break;
   }
 
+  if (no_preroll && ret == GST_STATE_CHANGE_SUCCESS)
+    ret = GST_STATE_CHANGE_NO_PREROLL;
+
   return ret;
 }
diff --git a/plugins/elements/gstidentity.h b/plugins/elements/gstidentity.h
index 5d613b2..315cdbd 100644
--- a/plugins/elements/gstidentity.h
+++ b/plugins/elements/gstidentity.h
@@ -72,6 +72,9 @@
   gchar 	*last_message;
   guint64        offset;
   gboolean       signal_handoffs;
+  GstClockTime   upstream_latency;
+  GCond          blocked_cond;
+  gboolean       blocked;
 };
 
 struct _GstIdentityClass {
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index e665fcd..7fad86a 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -125,21 +125,11 @@
   PROP_PAD_ALWAYS_OK
 };
 
-enum
-{
-  /* methods */
-  SIGNAL_BLOCK,
-  SIGNAL_SWITCH,
-  LAST_SIGNAL
-};
-static guint gst_input_selector_signals[LAST_SIGNAL] = { 0 };
-
 static void gst_input_selector_active_pad_changed (GstInputSelector * sel,
     GParamSpec * pspec, gpointer user_data);
 static inline gboolean gst_input_selector_is_active_sinkpad (GstInputSelector *
     sel, GstPad * pad);
-static GstPad *gst_input_selector_activate_sinkpad (GstInputSelector * sel,
-    GstPad * pad);
+static GstPad *gst_input_selector_get_active_sinkpad (GstInputSelector * sel);
 static GstPad *gst_input_selector_get_linked_pad (GstInputSelector * sel,
     GstPad * pad, gboolean strict);
 
@@ -164,7 +154,6 @@
 {
   GstPad parent;
 
-  gboolean active;              /* when buffer have passed the pad */
   gboolean pushed;              /* when buffer was pushed downstream since activation */
   gboolean eos;                 /* when EOS has been received */
   gboolean eos_sent;            /* when EOS was sent downstream */
@@ -332,7 +321,7 @@
   gint64 ret = 0;
 
   GST_OBJECT_LOCK (pad);
-  if (pad->active) {
+  if (pad->segment.format == GST_FORMAT_TIME) {
     ret =
         gst_segment_to_running_time (&pad->segment, pad->segment.format,
         pad->segment.position);
@@ -350,7 +339,6 @@
 gst_selector_pad_reset (GstSelectorPad * pad)
 {
   GST_OBJECT_LOCK (pad);
-  pad->active = FALSE;
   pad->pushed = FALSE;
   pad->eos = FALSE;
   pad->eos_sent = FALSE;
@@ -376,7 +364,8 @@
 static void
 gst_selector_pad_free_cached_buffer (GstSelectorPadCachedBuffer * cached_buffer)
 {
-  gst_buffer_unref (cached_buffer->buffer);
+  if (cached_buffer->buffer)
+    gst_buffer_unref (cached_buffer->buffer);
   g_slice_free (GstSelectorPadCachedBuffer, cached_buffer);
 }
 
@@ -434,19 +423,6 @@
   return it;
 }
 
-/* must be called with the SELECTOR_LOCK, will block while the pad is blocked 
- * or return TRUE when flushing */
-static gboolean
-gst_input_selector_wait (GstInputSelector * self, GstSelectorPad * pad)
-{
-  while (!self->eos && self->blocked && !self->flushing && !pad->flushing) {
-    /* we can be unlocked here when we are shutting down (flushing) or when we
-     * get unblocked */
-    GST_INPUT_SELECTOR_WAIT (self);
-  }
-  return self->flushing;
-}
-
 static gboolean
 gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
@@ -465,7 +441,7 @@
   GST_INPUT_SELECTOR_LOCK (sel);
   prev_active_sinkpad =
       sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL;
-  active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+  active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
   gst_object_ref (active_sinkpad);
   GST_INPUT_SELECTOR_UNLOCK (sel);
 
@@ -480,7 +456,7 @@
   gst_object_unref (active_sinkpad);
 
   GST_INPUT_SELECTOR_LOCK (sel);
-  active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+  active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
 
   /* only forward if we are dealing with the active sinkpad */
   forward = (pad == active_sinkpad);
@@ -535,16 +511,26 @@
       selpad->eos = TRUE;
 
       if (!forward) {
-        /* blocked until active the sind pad or flush */
-        gst_input_selector_wait (sel, selpad);
         forward = TRUE;
+        /* Wait until we're the active sink pad or we're flushing */
+        while (!sel->eos && !sel->flushing && !selpad->flushing)
+          GST_INPUT_SELECTOR_WAIT (sel);
       } else {
         /* Notify all waiting pads about going EOS now */
         sel->eos = TRUE;
         GST_INPUT_SELECTOR_BROADCAST (sel);
       }
 
+      if (sel->eos_sent) {
+        gst_event_unref (event);
+        event = NULL;
+      } else {
+        /* prevent any further EOS event being pushed */
+        sel->eos_sent = TRUE;
+      }
+
       selpad->eos_sent = TRUE;
+
       GST_DEBUG_OBJECT (pad, "received EOS");
       break;
     case GST_EVENT_GAP:{
@@ -573,19 +559,21 @@
   GST_INPUT_SELECTOR_UNLOCK (sel);
   if (new_tags)
     g_object_notify (G_OBJECT (selpad), "tags");
-  if (forward) {
-    GST_DEBUG_OBJECT (pad, "forwarding event");
-    res = gst_pad_push_event (sel->srcpad, event);
-  } else {
-    /* If we aren't forwarding the event because the pad is not the
-     * active_sinkpad, then set the flag on the pad
-     * that says a segment needs sending if/when that pad is activated.
-     * For all other cases, we send the event immediately, which makes
-     * sparse streams and other segment updates work correctly downstream.
-     */
-    if (GST_EVENT_IS_STICKY (event))
-      selpad->events_pending = TRUE;
-    gst_event_unref (event);
+  if (event) {
+    if (forward) {
+      GST_DEBUG_OBJECT (pad, "forwarding event");
+      res = gst_pad_push_event (sel->srcpad, event);
+    } else {
+      /* If we aren't forwarding the event because the pad is not the
+       * active_sinkpad, then set the flag on the pad
+       * that says a segment needs sending if/when that pad is activated.
+       * For all other cases, we send the event immediately, which makes
+       * sparse streams and other segment updates work correctly downstream.
+       */
+      if (GST_EVENT_IS_STICKY (event))
+        selpad->events_pending = TRUE;
+      gst_event_unref (event);
+    }
   }
 
   return res;
@@ -612,7 +600,7 @@
        */
       if (GST_PAD_DIRECTION (pad) == GST_PAD_SINK) {
         GST_INPUT_SELECTOR_LOCK (sel);
-        active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+        active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
         GST_INPUT_SELECTOR_UNLOCK (sel);
 
         if (pad != active_sinkpad) {
@@ -672,8 +660,7 @@
   /* Wait until
    *   a) this is the active pad
    *   b) the pad or the selector is flushing
-   *   c) the selector is not blocked
-   *   d) the buffer running time is before the current running time
+   *   c) the buffer running time is before the current running time
    *      (either active-seg or clock, depending on sync-mode)
    */
 
@@ -685,8 +672,7 @@
     gint64 cur_running_time;
     GstClockTime running_time;
 
-    active_sinkpad =
-        gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad));
+    active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
     active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
 
     if (seg->format != GST_FORMAT_TIME) {
@@ -742,17 +728,12 @@
     }
 
     if (selpad != active_selpad && !sel->eos && !sel->flushing
-        && !selpad->flushing && (sel->blocked
-            || cur_running_time == GST_CLOCK_TIME_NONE
+        && !selpad->flushing && (cur_running_time == GST_CLOCK_TIME_NONE
             || running_time >= cur_running_time)) {
-      if (!sel->blocked) {
-        GST_DEBUG_OBJECT (selpad,
-            "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
-            GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
-            GST_TIME_ARGS (cur_running_time));
-      } else
-        GST_DEBUG_OBJECT (selpad, "Waiting for selector to unblock");
-
+      GST_DEBUG_OBJECT (selpad,
+          "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
+          GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
+          GST_TIME_ARGS (cur_running_time));
       GST_INPUT_SELECTOR_WAIT (sel);
     } else {
       GST_INPUT_SELECTOR_UNLOCK (sel);
@@ -857,7 +838,7 @@
     GstSelectorPad *active_selpad;
     GstSegment *active_seg;
 
-    active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+    active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
     active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
     active_seg = &active_selpad->segment;
 
@@ -959,13 +940,13 @@
       GST_TIME_ARGS (GST_BUFFER_PTS (buf)));
 
   GST_INPUT_SELECTOR_LOCK (sel);
+
   if (sel->eos) {
     GST_INPUT_SELECTOR_UNLOCK (sel);
     goto eos;
   }
 
-  /* wait or check for flushing */
-  if (gst_input_selector_wait (sel, selpad)) {
+  if (sel->flushing) {
     GST_INPUT_SELECTOR_UNLOCK (sel);
     goto flushing;
   }
@@ -974,7 +955,7 @@
 
   prev_active_sinkpad =
       sel->active_sinkpad ? gst_object_ref (sel->active_sinkpad) : NULL;
-  active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+  active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
 
   /* In sync mode wait until the active pad has advanced
    * after the running time of the current buffer */
@@ -1002,6 +983,10 @@
           gst_selector_pad_chain (pad, parent, cached_buffer->buffer);
           GST_INPUT_SELECTOR_LOCK (sel);
 
+          /* We just passed the ownership of the buffer to the chain function */
+          cached_buffer->buffer = NULL;
+          gst_selector_pad_free_cached_buffer (cached_buffer);
+
           /* we may have cleaned up the queue in the meantime because of
            * old buffers */
           if (!selpad->cached_buffers) {
@@ -1015,7 +1000,7 @@
         selpad->events_pending = TRUE;
 
         /* Might have changed while calling chain for cached buffers */
-        active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+        active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
       }
     }
 
@@ -1027,7 +1012,7 @@
     }
 
     /* Might have changed while waiting */
-    active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+    active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
   }
 
   if (sel->eos) {
@@ -1102,7 +1087,7 @@
 
   if (sel->sync_streams && sel->cache_buffers) {
     /* Might have changed while pushing */
-    active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+    active_sinkpad = gst_input_selector_get_active_sinkpad (sel);
     /* only set pad to pushed if we are still the active pad */
     if (active_sinkpad == pad)
       selpad->pushed = TRUE;
@@ -1177,7 +1162,6 @@
 
 static gboolean gst_input_selector_event (GstPad * pad, GstObject * parent,
     GstEvent * event);
-static gint64 gst_input_selector_block (GstInputSelector * self);
 
 #define _do_init \
     GST_DEBUG_CATEGORY_INIT (input_selector_debug, \
@@ -1263,20 +1247,6 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
           GST_PARAM_MUTABLE_READY));
 
-  /**
-   * GstInputSelector::block:
-   * @inputselector: the #GstInputSelector
-   *
-   * Block all sink pads in preparation for a switch. Returns the stop time of
-   * the current switch segment, as a running time, or 0 if there is no current
-   * active pad or the current active pad never received data.
-   */
-  gst_input_selector_signals[SIGNAL_BLOCK] =
-      g_signal_new ("block", G_TYPE_FROM_CLASS (klass),
-      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-      G_STRUCT_OFFSET (GstInputSelectorClass, block), NULL, NULL,
-      g_cclosure_marshal_generic, G_TYPE_INT64, 0);
-
   gst_element_class_set_static_metadata (gstelement_class, "Input selector",
       "Generic", "N-to-1 input stream selector",
       "Julien Moutte <julien@moutte.net>, "
@@ -1290,8 +1260,6 @@
   gstelement_class->request_new_pad = gst_input_selector_request_new_pad;
   gstelement_class->release_pad = gst_input_selector_release_pad;
   gstelement_class->change_state = gst_input_selector_change_state;
-
-  klass->block = GST_DEBUG_FUNCPTR (gst_input_selector_block);
 }
 
 static void
@@ -1312,7 +1280,6 @@
 
   g_mutex_init (&sel->lock);
   g_cond_init (&sel->cond);
-  sel->blocked = FALSE;
   sel->eos = FALSE;
 
   /* lets give a change for downstream to do something on
@@ -1578,14 +1545,10 @@
 
 /* Get or create the active sinkpad, must be called with SELECTOR_LOCK */
 static GstPad *
-gst_input_selector_activate_sinkpad (GstInputSelector * sel, GstPad * pad)
+gst_input_selector_get_active_sinkpad (GstInputSelector * sel)
 {
   GstPad *active_sinkpad;
-  GstSelectorPad *selpad;
 
-  selpad = GST_SELECTOR_PAD_CAST (pad);
-
-  selpad->active = TRUE;
   active_sinkpad = sel->active_sinkpad;
   if (active_sinkpad == NULL) {
     GValue item = G_VALUE_INIT;
@@ -1683,6 +1646,8 @@
     gst_object_unref (sel->active_sinkpad);
     sel->active_sinkpad = NULL;
   }
+  sel->eos_sent = FALSE;
+
   /* reset each of our sinkpads state */
   for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
     GstSelectorPad *selpad = GST_SELECTOR_PAD_CAST (walk->data);
@@ -1709,7 +1674,6 @@
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       GST_INPUT_SELECTOR_LOCK (self);
       self->eos = FALSE;
-      self->blocked = FALSE;
       self->flushing = FALSE;
       GST_INPUT_SELECTOR_UNLOCK (self);
       break;
@@ -1718,7 +1682,6 @@
        * tries to acquire the stream lock when going to ready. */
       GST_INPUT_SELECTOR_LOCK (self);
       self->eos = TRUE;
-      self->blocked = FALSE;
       self->flushing = TRUE;
       GST_INPUT_SELECTOR_BROADCAST (self);
       GST_INPUT_SELECTOR_UNLOCK (self);
@@ -1739,27 +1702,3 @@
 
   return result;
 }
-
-static gint64
-gst_input_selector_block (GstInputSelector * self)
-{
-  gint64 ret = 0;
-  GstSelectorPad *spad;
-
-  GST_INPUT_SELECTOR_LOCK (self);
-
-  if (self->blocked)
-    GST_WARNING_OBJECT (self, "switch already blocked");
-
-  self->blocked = TRUE;
-  spad = GST_SELECTOR_PAD_CAST (self->active_sinkpad);
-
-  if (spad)
-    ret = gst_selector_pad_get_running_time (spad);
-  else
-    GST_DEBUG_OBJECT (self, "no active pad while blocking");
-
-  GST_INPUT_SELECTOR_UNLOCK (self);
-
-  return ret;
-}
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index d3abad9..3dff175 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -76,15 +76,13 @@
 
   GMutex lock;
   GCond cond;
-  gboolean blocked;
   gboolean eos;
+  gboolean eos_sent;
   gboolean flushing;
 };
 
 struct _GstInputSelectorClass {
   GstElementClass parent_class;
-
-  gint64 (*block)	(GstInputSelector *self);
 };
 
 G_GNUC_INTERNAL GType gst_input_selector_get_type (void);
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index 37fa6f0..e328fc5 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -585,7 +585,6 @@
 
         GST_MULTI_QUEUE_MUTEX_LOCK (mq);
 
-        mq->buffering = TRUE;
         tmp = mq->queues;
         while (tmp) {
           GstSingleQueue *q = (GstSingleQueue *) tmp->data;
diff --git a/plugins/elements/gstoutputselector.c b/plugins/elements/gstoutputselector.c
index 8ad870c..beb4c70 100644
--- a/plugins/elements/gstoutputselector.c
+++ b/plugins/elements/gstoutputselector.c
@@ -595,9 +595,16 @@
       }
       break;
     }
+    case GST_QUERY_DRAIN:
+      if (sel->latest_buffer) {
+        gst_buffer_unref (sel->latest_buffer);
+        sel->latest_buffer = NULL;
+      }
+      /* fall through */
     default:
       res = gst_pad_query_default (pad, parent, query);
       break;
   }
+
   return res;
 }
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index 7ac1e4e..28d7e5e 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -3092,6 +3092,55 @@
       gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
       break;
     }
+    case GST_QUERY_SEEKING:
+    {
+      gint64 segment_start, segment_end;
+      GstFormat format;
+      gboolean seekable, peer_success;
+
+      peer_success = gst_pad_peer_query (queue->sinkpad, query);
+
+      gst_query_parse_seeking (query, &format, &seekable, &segment_start,
+          &segment_end);
+
+      if (peer_success && seekable) {
+        GST_DEBUG_OBJECT (queue, "peer seekable (%s) from %" G_GINT64_FORMAT
+            " to %" G_GINT64_FORMAT, gst_format_get_name (format),
+            segment_start, segment_end);
+        break;
+      }
+
+      if (format != GST_FORMAT_BYTES) {
+        GST_DEBUG_OBJECT (queue, "query in %s (not BYTES) format, cannot seek",
+            gst_format_get_name (format));
+        return FALSE;
+      }
+
+      GST_QUEUE2_MUTEX_LOCK (queue);
+      if (queue->current) {
+        if (QUEUE_IS_USING_RING_BUFFER (queue)) {
+          segment_start = queue->current->rb_offset;
+          segment_end = queue->current->rb_writing_pos;
+        } else if (QUEUE_IS_USING_TEMP_FILE (queue)) {
+          segment_start = queue->current->offset;
+          segment_end = queue->current->writing_pos;
+        } else {
+          segment_start = -1;
+          segment_end = -1;
+        }
+      }
+      GST_QUEUE2_MUTEX_UNLOCK (queue);
+
+      seekable = ! !(segment_start < segment_end);
+
+      GST_DEBUG_OBJECT (queue, "segment from %" G_GINT64_FORMAT " to %"
+          G_GINT64_FORMAT " %sseekable", segment_start, segment_end,
+          seekable ? "" : "not ");
+
+      gst_query_set_seeking (query, format, seekable, segment_start,
+          segment_end);
+      break;
+    }
     default:
       /* peer handled other queries */
       if (!gst_pad_query_default (pad, parent, query))
diff --git a/plugins/elements/gsttee.c b/plugins/elements/gsttee.c
index 81fcea7..4575a88 100644
--- a/plugins/elements/gsttee.c
+++ b/plugins/elements/gsttee.c
@@ -37,9 +37,10 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch filesrc location=song.ogg ! decodebin ! tee name=t ! queue ! autoaudiosink t. ! queue ! audioconvert ! goom ! videoconvert ! autovideosink
- * ]| Play a song.ogg from local dir and render visualisations using the goom
- * element.
+ * gst-launch-1.0 filesrc location=song.ogg ! decodebin ! tee name=t ! queue ! audioconvert ! audioresample ! autoaudiosink t. ! queue ! audioconvert ! goom ! videoconvert ! autovideosink
+ * ]| Play song.ogg audio file which must be in the current working directory
+ * and render visualisations using the goom element (this can be easier done
+ * using the playbin element, this is just an example pipeline).
  * </refsect2>
  */
 
@@ -84,6 +85,7 @@
 #define DEFAULT_PROP_SILENT		TRUE
 #define DEFAULT_PROP_LAST_MESSAGE	NULL
 #define DEFAULT_PULL_MODE		GST_TEE_PULL_MODE_NEVER
+#define DEFAULT_PROP_ALLOW_NOT_LINKED	FALSE
 
 enum
 {
@@ -94,6 +96,7 @@
   PROP_LAST_MESSAGE,
   PROP_PULL_MODE,
   PROP_ALLOC_PAD,
+  PROP_ALLOW_NOT_LINKED,
 };
 
 static GstStaticPadTemplate tee_src_template =
@@ -265,6 +268,23 @@
   g_object_class_install_property (gobject_class, PROP_ALLOC_PAD,
       pspec_alloc_pad);
 
+  /**
+   * GstTee:allow-not-linked
+   *
+   * This property makes sink pad return GST_FLOW_OK even if there are no
+   * source pads or any of them is linked.
+   *
+   * This is useful to avoid errors when you have a dynamic pipeline and during
+   * a reconnection you can have all the pads unlinked or removed.
+   *
+   * Since: 1.6
+   */
+  g_object_class_install_property (gobject_class, PROP_ALLOW_NOT_LINKED,
+      g_param_spec_boolean ("allow-not-linked", "Allow not linked",
+          "Return GTS_FLOW_OK even if there are not source pads or all are "
+          "unlinked", DEFAULT_PROP_ALLOW_NOT_LINKED,
+          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_set_static_metadata (gstelement_class,
       "Tee pipe fitting",
       "Generic",
@@ -487,6 +507,9 @@
       GST_OBJECT_UNLOCK (pad);
       break;
     }
+    case PROP_ALLOW_NOT_LINKED:
+      tee->allow_not_linked = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -520,6 +543,9 @@
     case PROP_ALLOC_PAD:
       g_value_set_object (value, tee->allocpad);
       break;
+    case PROP_ALLOW_NOT_LINKED:
+      g_value_set_boolean (value, tee->allow_not_linked);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -636,6 +662,10 @@
 
     gst_object_unref (pad);
 
+    if (ret == GST_FLOW_NOT_LINKED && tee->allow_not_linked) {
+      ret = GST_FLOW_OK;
+    }
+
     return ret;
   }
 
@@ -643,7 +673,11 @@
   g_list_foreach (pads, (GFunc) clear_pads, tee);
 
 restart:
-  cret = GST_FLOW_NOT_LINKED;
+  if (tee->allow_not_linked) {
+    cret = GST_FLOW_OK;
+  } else {
+    cret = GST_FLOW_NOT_LINKED;
+  }
   pads = GST_ELEMENT_CAST (tee)->srcpads;
   cookie = GST_ELEMENT_CAST (tee)->pads_cookie;
 
@@ -670,6 +704,7 @@
       GST_TEE_PAD_CAST (pad)->pushed = TRUE;
       GST_TEE_PAD_CAST (pad)->result = ret;
       gst_object_unref (pad);
+      pad = NULL;
     } else {
       /* already pushed, use previous return value */
       ret = GST_TEE_PAD_CAST (pad)->result;
@@ -681,7 +716,7 @@
      * the same. It could be possible that the pad we just pushed was removed
      * and the return value it not valid anymore */
     if (G_UNLIKELY (GST_ELEMENT_CAST (tee)->pads_cookie != cookie)) {
-      GST_LOG_OBJECT (pad, "pad list changed");
+      GST_LOG_OBJECT (tee, "pad list changed");
       /* the list of pads changed, restart iteration. Pads that we already
        * pushed on and are still in the new list, will not be pushed on
        * again. */
@@ -694,7 +729,7 @@
 
     /* keep all other return values, overwriting the previous one. */
     if (G_LIKELY (ret != GST_FLOW_NOT_LINKED)) {
-      GST_LOG_OBJECT (pad, "Replacing ret val %d with %d", cret, ret);
+      GST_LOG_OBJECT (tee, "Replacing ret val %d with %d", cret, ret);
       cret = ret;
     }
     pads = g_list_next (pads);
@@ -709,13 +744,23 @@
   /* ERRORS */
 no_pads:
   {
-    GST_DEBUG_OBJECT (tee, "there are no pads, return not-linked");
-    ret = GST_FLOW_NOT_LINKED;
-    goto error;
+    if (tee->allow_not_linked) {
+      GST_DEBUG_OBJECT (tee, "there are no pads, dropping %s",
+          is_list ? "buffer-list" : "buffer");
+      ret = GST_FLOW_OK;
+    } else {
+      GST_DEBUG_OBJECT (tee, "there are no pads, return not-linked");
+      ret = GST_FLOW_NOT_LINKED;
+    }
+    goto end;
   }
 error:
   {
     GST_DEBUG_OBJECT (tee, "received error %s", gst_flow_get_name (ret));
+    goto end;
+  }
+end:
+  {
     GST_OBJECT_UNLOCK (tee);
     gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
     return ret;
diff --git a/plugins/elements/gsttee.h b/plugins/elements/gsttee.h
index ed488ae..e4ce310 100644
--- a/plugins/elements/gsttee.h
+++ b/plugins/elements/gsttee.h
@@ -79,6 +79,8 @@
   GstPadMode      sink_mode;
   GstTeePullMode  pull_mode;
   GstPad         *pull_pad;
+
+  gboolean        allow_not_linked;
 };
 
 struct _GstTeeClass {
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index 6ac9133..e91fbc6 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -219,7 +219,7 @@
    * been found.
    */
   gst_type_find_element_signals[HAVE_TYPE] = g_signal_new ("have-type",
-      G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_FIRST,
+      G_TYPE_FROM_CLASS (typefind_class), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstTypeFindElementClass, have_type), NULL, NULL,
       g_cclosure_marshal_generic, G_TYPE_NONE, 2,
       G_TYPE_UINT, GST_TYPE_CAPS | G_SIGNAL_TYPE_STATIC_SCOPE);
@@ -500,17 +500,20 @@
     GstEvent * event)
 {
   GstTypeFindElement *typefind = GST_TYPE_FIND_ELEMENT (parent);
+  gboolean result;
 
   if (typefind->mode != MODE_NORMAL) {
     /* need to do more? */
-    gst_mini_object_unref (GST_MINI_OBJECT_CAST (event));
+    gst_event_unref (event);
     return FALSE;
   }
 
   /* Only handle seeks here if driving the pipeline */
   if (typefind->segment.format != GST_FORMAT_UNDEFINED &&
       GST_EVENT_TYPE (event) == GST_EVENT_SEEK) {
-    return gst_type_find_element_seek (typefind, event);
+    result = gst_type_find_element_seek (typefind, event);
+    gst_event_unref (event);
+    return result;
   } else {
     return gst_pad_push_event (typefind->sink, event);
   }
diff --git a/plugins/elements/gstvalve.c b/plugins/elements/gstvalve.c
index 6a37353..e4ef0a2 100644
--- a/plugins/elements/gstvalve.c
+++ b/plugins/elements/gstvalve.c
@@ -253,7 +253,7 @@
 {
   GstValve *valve = GST_VALVE (parent);
 
-  if (g_atomic_int_get (&valve->drop))
+  if (GST_QUERY_IS_SERIALIZED (query) && g_atomic_int_get (&valve->drop))
     return FALSE;
 
   return gst_pad_query_default (pad, parent, query);
diff --git a/po/af.gmo b/po/af.gmo
index 017b168..69afd2e 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index c64cbd2..fca8c3f 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2005-12-05 11:45+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 aa32d81..9ea0f22 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 6c34653..f688ada 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2004-03-19 18:40+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/be.gmo b/po/be.gmo
index db5a92f..6a6d857 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index 08cdacc..e5f53aa 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2006-01-18 22:26+0200\n"
 "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
 "Language-Team: Belarusian <i18n@mova.org>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index 41063e8..6f866c0 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index c67cc48..94673b5 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2011-04-26 22:40+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index 04e95b6..b177cc4 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 6b66492..1f08a25 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-11-04 19:41+0100\n"
 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 5716b3d..2f5560a 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index ba944e2..d64a4ec 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-03-09 11:07+0100\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 d13b0cd..9553625 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 2766a66..f24c520 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-07-16 13:26+0200\n"
 "Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo
index a69a5d2..c133bee 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index d403a6a..e68d6ff 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-22 20:48+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 61bcc64..1d923d1 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index d1fb6d5..e32bf58 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-11-29 11:14+0200\n"
 "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index ef56b12..2f08bba 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 2b4b4ac..28c136d 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2004-04-26 10:36-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 97b18ae..7114560 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 92e801f..78c3964 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2011-06-04 21:11+0100\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
diff --git a/po/es.gmo b/po/es.gmo
index 2a47f83..8f35996 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index de3c883..702f4a3 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2011-10-02 15:45+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index 67f6481..173670c 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 2188471..4ba8f77 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-03-25 13:10+0100\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 0ccb048..14d829f 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index fb6acc8..14bc174 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-11-17 23:10+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 8d3c6d2..d5122e5 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index ffae30b..42f64fd 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2012-12-05 19:31+0100\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index ddbbf68..985459e 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 1271bcf..f84d077 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2012-12-15 03:29+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index ae58ea2..ca58e93 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.5.0.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1040,70 +1040,70 @@
 msgid "link has no sink [source=%s@%p]"
 msgstr ""
 
-#: gst/parse/grammar.y:411
+#: gst/parse/grammar.y:412
 #, c-format
 msgid "no property \"%s\" in element \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:452
+#: gst/parse/grammar.y:453
 #, c-format
 msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:615
+#: gst/parse/grammar.y:616
 #, c-format
 msgid "could not link %s to %s"
 msgstr ""
 
-#: gst/parse/grammar.y:690
+#: gst/parse/grammar.y:691
 #, c-format
 msgid "no element \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:751
+#: gst/parse/grammar.y:752
 #, c-format
 msgid "unexpected reference \"%s\" - ignoring"
 msgstr ""
 
-#: gst/parse/grammar.y:757
+#: gst/parse/grammar.y:758
 #, c-format
 msgid "unexpected pad-reference \"%s\" - ignoring"
 msgstr ""
 
-#: gst/parse/grammar.y:796
+#: gst/parse/grammar.y:797
 #, c-format
 msgid "could not parse caps \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:824
+#: gst/parse/grammar.y:825
 #, c-format
 msgid "no sink element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:843
+#: gst/parse/grammar.y:844
 #, c-format
 msgid "no source element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:933
+#: gst/parse/grammar.y:934
 msgid "syntax error"
 msgstr ""
 
-#: gst/parse/grammar.y:947
+#: gst/parse/grammar.y:948
 msgid "bin"
 msgstr ""
 
-#: gst/parse/grammar.y:956
+#: gst/parse/grammar.y:957
 #, c-format
 msgid "specified empty bin \"%s\", not allowed"
 msgstr ""
 
-#: gst/parse/grammar.y:966
+#: gst/parse/grammar.y:967
 #, c-format
 msgid "no bin \"%s\", unpacking elements"
 msgstr ""
 
-#: gst/parse/grammar.y:997
+#: gst/parse/grammar.y:998
 msgid "empty pipeline not allowed"
 msgstr ""
 
@@ -1134,21 +1134,21 @@
 msgid "Failed to map buffer."
 msgstr ""
 
-#: plugins/elements/gstcapsfilter.c:125
+#: plugins/elements/gstcapsfilter.c:128
 msgid "Filter caps"
 msgstr ""
 
-#: plugins/elements/gstcapsfilter.c:126
+#: plugins/elements/gstcapsfilter.c:129
 msgid ""
 "Restrict the possible allowed capabilities (NULL means ANY). Setting this "
 "property takes a reference to the supplied GstCaps object."
 msgstr ""
 
-#: plugins/elements/gstcapsfilter.c:133
+#: plugins/elements/gstcapsfilter.c:136
 msgid "Caps Change Mode"
 msgstr ""
 
-#: plugins/elements/gstcapsfilter.c:134
+#: plugins/elements/gstcapsfilter.c:137
 msgid "Filter caps change behaviour"
 msgstr ""
 
@@ -1214,7 +1214,7 @@
 msgid "File \"%s\" is a socket."
 msgstr ""
 
-#: plugins/elements/gstidentity.c:605
+#: plugins/elements/gstidentity.c:643
 msgid "Failed after iterations as requested."
 msgstr ""
 
@@ -1238,7 +1238,7 @@
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:1055
+#: plugins/elements/gsttypefindelement.c:1058
 msgid "Stream contains no data."
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index c0d3fb6..2fa2e20 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index edbc76f..7fbc765 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2012-05-25 16:47+0200\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index fc66d2e..38f5cc5 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 3eb262a..32a6a81 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-23 21:08+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.gmo b/po/id.gmo
index 1f1c9fe..4773404 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 7848616..9514638 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-31 22:06+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 0999071..bbc94d7 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index ec11b7b..c2c95ed 100644
--- a/po/it.po
+++ b/po/it.po
@@ -106,7 +106,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-10-25 10:03+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 6dec707..b33b698 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 550fd93..9934c36 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2013-08-20 14:56+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index 5e65ed0..4d5b5e7 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 00decb9..d5eee95 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-07-16 00:50+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index b22cadf..5717ca6 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index eebee9a..d33a0da 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-10-24 21:36+0200\n"
 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index de82241..1d61005 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 13620cb..c9283ed 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-22 00:46+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 4033ad9..392d47d 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index c62f209..316599c 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-22 18:22+0200\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 ffcd037..222dc48 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 78cfe3d..3abfcf1 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2013-12-29 18:20-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 37c25b5..902359f 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index c5cf68a..63b9e98 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-08-16 01:10+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 68396ed..d3bfd55 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 3e0fa94..ca43808 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-22 20:12+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
diff --git a/po/rw.gmo b/po/rw.gmo
index 2de84b1..7e1c440 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index 1f35584..7def79f 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,7 +15,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
 "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
 "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 5fee22b..8616173 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 6e26dda..e9c7d58 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-01-30 10:24+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index 64fc242..84e1634 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 96bb647..318a445 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-04-09 22:38+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index 7350076..4a9fd00 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 6e260b3..96537b5 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2004-08-07 23:46+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 7f08279..3b0cee9 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 9fb17ea..b38ed6b 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-06-18 20:12+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 78668e9..0077c7a 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index afbd372..25082b9 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-07-11 02:52+0200\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 6e4f8f7..04259a5 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 622f1e3..0c166f6 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2004-04-03 03:14+0300\n"
 "Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 3f4308b..c7de10a 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 8cbae83..76d01d6 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-05-22 07:45+0300\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 e9656a8..3e14d6b 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 47960b8..5ffcf35 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-06-30 09:40+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 434e27f..bb08cd9 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 ae8e159..6a76240 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.25.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2010-02-02 18:58+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 56a5369..a82562c 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 9ea67c3..964191c 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -27,7 +27,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 1.3.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-03-16 19:04+0100\n"
+"POT-Creation-Date: 2015-05-13 13:03+0300\n"
 "PO-Revision-Date: 2014-06-08 00:22+0800\n"
 "Last-Translator: Wen Liao <wen.cf83@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
diff --git a/scripts/gst-uninstalled b/scripts/gst-uninstalled
index 7b2b911..1751d99 100755
--- a/scripts/gst-uninstalled
+++ b/scripts/gst-uninstalled
@@ -207,7 +207,7 @@
 # gst-devtools/validate
 export PATH=$GST/gst-devtools/validate/tools:$PATH
 export PKG_CONFIG_PATH=$GST/gst-devtools/validate/pkgconfig:$PKG_CONFIG_PATH
-export GST_VALIDATE_SCENARIOS_PATH=$GST/gst-devtools/validate/data:$GST_VALIDATE_SCENARIOS_PATH
+export GST_VALIDATE_SCENARIOS_PATH=$GST/gst-devtools/validate/data/scenarios:$GST_VALIDATE_SCENARIOS_PATH
 export GST_VALIDATE_APPS_DIR=$GST_VALIDATE_APPS_DIR:$GST/gst-editing-services/tests/validate/
 export GST_VALIDATE_PLUGIN_PATH=$GST_VALIDATE_PLUGIN_PATH:$GST/gst-devtools/validate/gst/plugins/
 
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 5e7e5ab..14d42e2 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -7,7 +7,7 @@
 REGISTRY_ENVIRONMENT = \
 	GST_REGISTRY=$(CHECK_REGISTRY)
 
-TESTS_ENVIRONMENT = \
+AM_TESTS_ENVIRONMENT = \
         GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
         $(REGISTRY_ENVIRONMENT)					\
         GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
@@ -75,6 +75,7 @@
 	gst/gstghostpad				\
 	gst/gstplugin				\
 	gst/gstpreset				\
+	gst/gstprotection			\
 	gst/gstquery				\
 	gst/gstregistry				\
 	gst/gsturi  				\
@@ -131,6 +132,7 @@
 	gst/gstparamspecs			\
 	gst/gstpipeline				\
 	gst/gstpoll     			\
+	gst/gstprotection     			\
 	$(PRINTF_CHECKS)			\
 	gst/gstsegment				\
 	gst/gstsystemclock			\
@@ -190,8 +192,10 @@
 EXTRA_DIST = \
 	libs/test_transform.c
 
-AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
-AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
+AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
+	-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
+AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
+	-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
 LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
 	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index b341a13..087f3e9 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -93,7 +93,8 @@
 	gst/gstiterator$(EXEEXT) gst/gstmessage$(EXEEXT) \
 	gst/gstminiobject$(EXEEXT) gst/gstobject$(EXEEXT) \
 	gst/gstpad$(EXEEXT) gst/gstparamspecs$(EXEEXT) \
-	gst/gstpipeline$(EXEEXT) gst/gstpoll$(EXEEXT) $(am__EXEEXT_3) \
+	gst/gstpipeline$(EXEEXT) gst/gstpoll$(EXEEXT) \
+	gst/gstprotection$(EXEEXT) $(am__EXEEXT_3) \
 	gst/gstsegment$(EXEEXT) gst/gstsystemclock$(EXEEXT) \
 	gst/gstclock$(EXEEXT) gst/gststructure$(EXEEXT) \
 	gst/gsttag$(EXEEXT) gst/gsttagsetter$(EXEEXT) \
@@ -174,6 +175,7 @@
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstghostpad$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstplugin$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstpreset$(EXEEXT) \
+@GST_DISABLE_REGISTRY_FALSE@	gst/gstprotection$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstquery$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstregistry$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	gst/gsturi$(EXEEXT) \
@@ -542,6 +544,12 @@
 gst_gstprintf_DEPENDENCIES =  \
 	$(top_builddir)/gst/printf/libgstprintf.la \
 	$(am__DEPENDENCIES_2)
+gst_gstprotection_SOURCES = gst/gstprotection.c
+gst_gstprotection_OBJECTS = gst/gstprotection.$(OBJEXT)
+gst_gstprotection_LDADD = $(LDADD)
+gst_gstprotection_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
 gst_gstquery_SOURCES = gst/gstquery.c
 gst_gstquery_OBJECTS = gst/gstquery.$(OBJEXT)
 gst_gstquery_LDADD = $(LDADD)
@@ -864,13 +872,13 @@
 	gst/gstmemory.c gst/gstmessage.c gst/gstmeta.c \
 	gst/gstminiobject.c gst/gstobject.c gst/gstpad.c \
 	gst/gstparamspecs.c gst/gstpipeline.c gst/gstplugin.c \
-	gst/gstpoll.c gst/gstpreset.c gst/gstprintf.c gst/gstquery.c \
-	gst/gstregistry.c gst/gstsegment.c gst/gststructure.c \
-	gst/gstsystemclock.c gst/gsttag.c gst/gsttagsetter.c \
-	gst/gsttask.c gst/gsttoc.c gst/gsttocsetter.c gst/gsturi.c \
-	gst/gstutils.c gst/gstvalue.c libs/adapter.c libs/baseparse.c \
-	libs/basesink.c libs/basesrc.c libs/bitreader.c \
-	libs/bitreader-noinline.c libs/bytereader.c \
+	gst/gstpoll.c gst/gstpreset.c gst/gstprintf.c \
+	gst/gstprotection.c gst/gstquery.c gst/gstregistry.c \
+	gst/gstsegment.c gst/gststructure.c gst/gstsystemclock.c \
+	gst/gsttag.c gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
+	gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
+	libs/adapter.c libs/baseparse.c libs/basesink.c libs/basesrc.c \
+	libs/bitreader.c libs/bitreader-noinline.c libs/bytereader.c \
 	libs/bytereader-noinline.c libs/bytewriter.c \
 	libs/bytewriter-noinline.c libs/collectpads.c \
 	libs/controller.c libs/flowcombiner.c \
@@ -899,13 +907,13 @@
 	gst/gstmessage.c gst/gstmeta.c gst/gstminiobject.c \
 	gst/gstobject.c gst/gstpad.c gst/gstparamspecs.c \
 	gst/gstpipeline.c gst/gstplugin.c gst/gstpoll.c \
-	gst/gstpreset.c gst/gstprintf.c gst/gstquery.c \
-	gst/gstregistry.c gst/gstsegment.c gst/gststructure.c \
-	gst/gstsystemclock.c gst/gsttag.c gst/gsttagsetter.c \
-	gst/gsttask.c gst/gsttoc.c gst/gsttocsetter.c gst/gsturi.c \
-	gst/gstutils.c gst/gstvalue.c libs/adapter.c libs/baseparse.c \
-	libs/basesink.c libs/basesrc.c libs/bitreader.c \
-	libs/bitreader-noinline.c libs/bytereader.c \
+	gst/gstpreset.c gst/gstprintf.c gst/gstprotection.c \
+	gst/gstquery.c gst/gstregistry.c gst/gstsegment.c \
+	gst/gststructure.c gst/gstsystemclock.c gst/gsttag.c \
+	gst/gsttagsetter.c gst/gsttask.c gst/gsttoc.c \
+	gst/gsttocsetter.c gst/gsturi.c gst/gstutils.c gst/gstvalue.c \
+	libs/adapter.c libs/baseparse.c libs/basesink.c libs/basesrc.c \
+	libs/bitreader.c libs/bitreader-noinline.c libs/bytereader.c \
 	libs/bytereader-noinline.c libs/bytewriter.c \
 	libs/bytewriter-noinline.c libs/collectpads.c \
 	libs/controller.c libs/flowcombiner.c \
@@ -1436,7 +1444,7 @@
 REGISTRY_ENVIRONMENT = \
 	GST_REGISTRY=$(CHECK_REGISTRY)
 
-TESTS_ENVIRONMENT = \
+AM_TESTS_ENVIRONMENT = \
         GST_STATE_IGNORE_ELEMENTS="$(STATE_IGNORE_ELEMENTS)"	\
         $(REGISTRY_ENVIRONMENT)					\
         GST_PLUGIN_SCANNER_1_0=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
@@ -1474,6 +1482,7 @@
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstghostpad				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstplugin				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstpreset				\
+@GST_DISABLE_REGISTRY_FALSE@	gst/gstprotection			\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstquery				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gstregistry				\
 @GST_DISABLE_REGISTRY_FALSE@	gst/gsturi  				\
@@ -1534,8 +1543,12 @@
 EXTRA_DIST = \
 	libs/test_transform.c
 
-AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
-AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
+AM_CFLAGS = $(GST_OBJ_CFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
+	-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
+
+AM_CXXFLAGS = $(GST_OBJ_CXXFLAGS) -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS \
+	-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_STATE_IGNORE_ELEMENTS\""
+
 LDADD = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
 	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
@@ -1989,6 +2002,12 @@
 gst/gstprintf$(EXEEXT): $(gst_gstprintf_OBJECTS) $(gst_gstprintf_DEPENDENCIES) $(EXTRA_gst_gstprintf_DEPENDENCIES) gst/$(am__dirstamp)
 	@rm -f gst/gstprintf$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gst_gstprintf_OBJECTS) $(gst_gstprintf_LDADD) $(LIBS)
+gst/gstprotection.$(OBJEXT): gst/$(am__dirstamp) \
+	gst/$(DEPDIR)/$(am__dirstamp)
+
+gst/gstprotection$(EXEEXT): $(gst_gstprotection_OBJECTS) $(gst_gstprotection_DEPENDENCIES) $(EXTRA_gst_gstprotection_DEPENDENCIES) gst/$(am__dirstamp)
+	@rm -f gst/gstprotection$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(gst_gstprotection_OBJECTS) $(gst_gstprotection_LDADD) $(LIBS)
 gst/gstquery.$(OBJEXT): gst/$(am__dirstamp) \
 	gst/$(DEPDIR)/$(am__dirstamp)
 
@@ -2331,6 +2350,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstpoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstpreset.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstprintf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstprotection.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstquery.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstregistry.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@gst/$(DEPDIR)/gstsegment.Po@am__quote@
@@ -2817,6 +2837,13 @@
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+gst/gstprotection.log: gst/gstprotection$(EXEEXT)
+	@p='gst/gstprotection$(EXEEXT)'; \
+	b='gst/gstprotection'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 gst/gstprintf.log: gst/gstprintf$(EXEEXT)
 	@p='gst/gstprintf$(EXEEXT)'; \
 	b='gst/gstprintf'; \
@@ -3529,38 +3556,38 @@
 # run any given test by running make test.check
 # if the test fails, run it again at at least debug level 2
 %.check: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$* ||							\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	GST_DEBUG=$$GST_DEBUG,*:2				\
 	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # just like 'check', but don't run it again if it fails (useful for debugging)
 %.check-norepeat: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$*
 
 # run any given test in a loop
 %.torture: %
 	@for i in `seq 1 $(LOOPS)`; do				\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$*; done
 
 # run any given test in an infinite loop
 %.forever: %
 	@while true; do						\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=20					\
 	$* || break; done
 
 # valgrind any given test by running make test.valgrind
 %.valgrind: %
 	@valgrind_log=$(subst /,-,$*-valgrind.log);		\
-	$(TESTS_ENVIRONMENT)					\
+	$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=360					\
 	G_SLICE=always-malloc					\
 	$(LIBTOOL) --mode=execute				\
@@ -3578,7 +3605,7 @@
 
 # valgrind any given test and generate suppressions for it
 %.valgrind.gen-suppressions: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_DEFAULT_TIMEOUT=360					\
 	G_SLICE=always-malloc					\
 	$(LIBTOOL) --mode=execute				\
@@ -3608,7 +3635,7 @@
 
 # gdb any given test by running make test.gdb
 %.gdb: %
-	@$(TESTS_ENVIRONMENT)					\
+	@$(AM_TESTS_ENVIRONMENT)					\
 	CK_FORK=no						\
 	$(LIBTOOL) --mode=execute				\
 	gdb $*
@@ -3712,7 +3739,7 @@
 	fi
 inspect:
 	@echo "Inspecting features ..."
-	@for e in `$(TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 	\
+	@for e in `$(AM_TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 	\
 	  | cut -d: -f2`;						\
 	  do echo Inspecting $$e;					\
 	     $(GST_INSPECT) $$e > /dev/null 2>&1; done
diff --git a/tests/check/elements/filesink.c b/tests/check/elements/filesink.c
index afe06ee..cc42c8a 100644
--- a/tests/check/elements/filesink.c
+++ b/tests/check/elements/filesink.c
@@ -95,6 +95,75 @@
       g_rand_free (rand);                                                 \
     } G_STMT_END
 
+/* Push Buffer with num_mem_blocks memory block each of size num_bytes*/
+#define PUSH_BUFFER_WITH_MULTIPLE_MEM_BLOCKS(num_mem_blocks, num_bytes)      \
+    G_STMT_START {                                                           \
+      GstBuffer *buf = gst_buffer_new();                                     \
+      guint i;                                                               \
+      for (i = 0; i < num_mem_blocks; ++i){                                  \
+        GstMapInfo info;                                                     \
+        GstMemory* mem_block = gst_allocator_alloc(NULL,num_bytes,NULL);     \
+        GRand *rand = g_rand_new_with_seed (num_bytes);                      \
+        guint j;                                                             \
+        fail_unless (gst_memory_map (mem_block, &info, GST_MAP_WRITE));      \
+        for (j = 0; j < num_bytes; ++j)                                      \
+           ((guint8 *)info.data)[j] = (g_rand_int (rand) >> 24) & 0xff;      \
+        gst_memory_unmap (mem_block, &info);                                 \
+        gst_buffer_append_memory(buf,mem_block);                             \
+        g_rand_free (rand);                                                  \
+      }                                                                      \
+      fail_unless_equals_int (gst_pad_push (mysrcpad, buf), GST_FLOW_OK);    \
+    } G_STMT_END
+
+/* Push Buffer List with num_buffers buffers each containing num_mem_blocks
+ * memory blocks of size num_bytes */
+#define PUSH_BUFFER_LIST_WITH_MULTI_MEM_BLOCKS_BUFFERS(num_buffers, num_mem_blocks, num_bytes) \
+    G_STMT_START {                                                             \
+      guint i;                                                                 \
+      GstBufferList* buf_list = gst_buffer_list_new();                         \
+      for(i = 0; i < num_buffers; ++i){                                        \
+        GstBuffer *buf = gst_buffer_new();                                     \
+        guint j;                                                               \
+        for (j = 0; j < num_mem_blocks; ++j){                                  \
+          GstMapInfo info;                                                     \
+          GstMemory* mem_block = gst_allocator_alloc(NULL,num_bytes,NULL);     \
+          GRand *rand = g_rand_new_with_seed (num_bytes);                      \
+          guint k;                                                             \
+          fail_unless (gst_memory_map (mem_block, &info, GST_MAP_WRITE));      \
+          for (k = 0; k < num_bytes; ++k)                                      \
+            ((guint8 *)info.data)[k] = (g_rand_int (rand) >> 24) & 0xff;       \
+          gst_memory_unmap (mem_block, &info);                                 \
+          gst_buffer_append_memory(buf,mem_block);                             \
+          g_rand_free (rand);                                                  \
+        }                                                                      \
+        gst_buffer_list_add(buf_list,buf);                                     \
+      }                                                                        \
+      fail_unless_equals_int (gst_pad_push_list (mysrcpad, buf_list), GST_FLOW_OK); \
+    } G_STMT_END
+
+/* Push buffer_list containing num_buffers number of buffers with size
+ *   num_bytes bytes
+ * Example: PUSH_BUFFER_LIST(2,10) will push the buffer list containing
+ *   2 buffers with size 10 bytes each */
+#define PUSH_BUFFER_LIST(num_buffers, num_bytes)                          \
+    G_STMT_START {                                                        \
+      guint i;                                                            \
+      GstBufferList* buf_list = gst_buffer_list_new();                    \
+      for(i = 0; i < num_buffers; ++i){                                   \
+        GstBuffer *buf = gst_buffer_new_and_alloc(num_bytes);             \
+        GRand *rand = g_rand_new_with_seed (num_bytes);                   \
+        GstMapInfo info;                                                  \
+        guint j;                                                          \
+        fail_unless (gst_buffer_map (buf, &info, GST_MAP_WRITE));         \
+        for (j = 0; j < num_bytes; ++j)                                   \
+          ((guint8 *)info.data)[j] = (g_rand_int (rand) >> 24) & 0xff;    \
+        gst_buffer_unmap (buf, &info);                                    \
+        gst_buffer_list_add(buf_list,buf);                                \
+        g_rand_free (rand);                                               \
+      }                                                                   \
+      fail_unless_equals_int (gst_pad_push_list (mysrcpad, buf_list), GST_FLOW_OK); \
+    } G_STMT_END
+
 #define CHECK_WRITTEN_BYTES(offset,written,file_size)                      \
     G_STMT_START {                                                        \
       gchar *data = NULL;                                                 \
@@ -196,6 +265,31 @@
   PUSH_BYTES (8800);
   CHECK_QUERY_POSITION (filesink, GST_FORMAT_BYTES, 8900);
 
+  /* Push buffer list with 2 buffers each of size 50 bytes */
+  PUSH_BUFFER_LIST (2, 50);
+  CHECK_QUERY_POSITION (filesink, GST_FORMAT_BYTES, 9000);
+  /* Push buffer list with 3 buffers each of size 10 bytes */
+  PUSH_BUFFER_LIST (3, 10);
+  CHECK_QUERY_POSITION (filesink, GST_FORMAT_BYTES, 9030);
+  /* Check bytes written using push buffer list */
+  CHECK_WRITTEN_BYTES (8900, 50, 9030);
+  CHECK_WRITTEN_BYTES (8950, 50, 9030);
+  CHECK_WRITTEN_BYTES (9000, 10, 9030);
+  CHECK_WRITTEN_BYTES (9010, 10, 9030);
+  CHECK_WRITTEN_BYTES (9020, 10, 9030);
+
+  /* Push buffer with 2 memory blocks each of size 20 bytes */
+  PUSH_BUFFER_WITH_MULTIPLE_MEM_BLOCKS (2, 20);
+  CHECK_WRITTEN_BYTES (9030, 20, 9070);
+  CHECK_WRITTEN_BYTES (9050, 20, 9070);
+
+  /* Push buffer list with 2 buffers each containing 2 memory blocks each of size 20 bytes */
+  PUSH_BUFFER_LIST_WITH_MULTI_MEM_BLOCKS_BUFFERS (2, 2, 20);
+  CHECK_WRITTEN_BYTES (9070, 20, 9150);
+  CHECK_WRITTEN_BYTES (9090, 20, 9150);
+  CHECK_WRITTEN_BYTES (9110, 20, 9150);
+  CHECK_WRITTEN_BYTES (9130, 20, 9150);
+
   segment.start = 8800;
   if (gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment))) {
     GST_LOG ("seek ok");
@@ -362,6 +456,11 @@
   fail_unless_equals_string (location, "file:///foo/b%3Fr");
   g_free (location);
 
+  g_object_set (G_OBJECT (filesink), "location", "\".donotexist", NULL);
+  g_object_get (G_OBJECT (filesink), "location", &location, NULL);
+  fail_unless_equals_string (location, "\".donotexist");
+  g_free (location);
+
   /* should fail with other hostnames */
   fail_if (gst_uri_handler_set_uri (GST_URI_HANDLER (filesink),
           "file://hostname/foo/foo", NULL));
diff --git a/tests/check/elements/multiqueue.c b/tests/check/elements/multiqueue.c
index 22cb57c..4b2777c 100644
--- a/tests/check/elements/multiqueue.c
+++ b/tests/check/elements/multiqueue.c
@@ -323,6 +323,9 @@
 
   GMutex *mutex;
   GCond *cond;
+
+  /* used by initial_events_nodelay */
+  gint event_count;
 };
 
 static GstFlowReturn
@@ -949,6 +952,113 @@
 
 GST_END_TEST;
 
+static gboolean
+event_func_signal (GstPad * sinkpad, GstObject * parent, GstEvent * event)
+{
+  struct PadData *pad_data;
+
+  GST_LOG_OBJECT (sinkpad, "%s event", GST_EVENT_TYPE_NAME (event));
+
+  pad_data = gst_pad_get_element_private (sinkpad);
+
+  g_mutex_lock (pad_data->mutex);
+  ++pad_data->event_count;
+  g_cond_broadcast (pad_data->cond);
+  g_mutex_unlock (pad_data->mutex);
+
+  gst_event_unref (event);
+  return TRUE;
+}
+
+GST_START_TEST (test_initial_events_nodelay)
+{
+  struct PadData pad_data = { 0, };
+  GstElement *pipe;
+  GstElement *mq;
+  GstPad *inputpad;
+  GstPad *sinkpad;
+  GstSegment segment;
+  GstCaps *caps;
+  GMutex mutex;
+  GCond cond;
+
+  g_mutex_init (&mutex);
+  g_cond_init (&cond);
+
+  pipe = gst_pipeline_new ("testbin");
+
+  mq = gst_element_factory_make ("multiqueue", NULL);
+  fail_unless (mq != NULL);
+  gst_bin_add (GST_BIN (pipe), mq);
+
+  {
+    GstPad *mq_srcpad, *mq_sinkpad;
+
+    inputpad = gst_pad_new ("dummysrc", GST_PAD_SRC);
+
+    mq_sinkpad = gst_element_get_request_pad (mq, "sink_%u");
+    fail_unless (mq_sinkpad != NULL);
+    fail_unless (gst_pad_link (inputpad, mq_sinkpad) == GST_PAD_LINK_OK);
+
+    gst_pad_set_active (inputpad, TRUE);
+
+    mq_srcpad = mq_sinkpad_to_srcpad (mq, mq_sinkpad);
+
+    sinkpad = gst_pad_new ("dummysink", GST_PAD_SINK);
+    gst_pad_set_event_function (sinkpad, event_func_signal);
+
+    pad_data.event_count = 0;
+    pad_data.cond = &cond;
+    pad_data.mutex = &mutex;
+    gst_pad_set_element_private (sinkpad, &pad_data);
+
+    fail_unless (gst_pad_link (mq_srcpad, sinkpad) == GST_PAD_LINK_OK);
+    gst_pad_set_active (sinkpad, TRUE);
+
+    gst_object_unref (mq_sinkpad);
+    gst_object_unref (mq_srcpad);
+  }
+
+  /* Run the test: push events through multiqueue */
+  gst_element_set_state (pipe, GST_STATE_PLAYING);
+
+  gst_pad_push_event (inputpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
+  gst_pad_push_event (inputpad, gst_event_new_caps (caps));
+  gst_caps_unref (caps);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  gst_pad_push_event (inputpad, gst_event_new_segment (&segment));
+
+  g_mutex_lock (&mutex);
+  while (pad_data.event_count < 3) {
+    GST_LOG ("%d events so far, waiting for more", pad_data.event_count);
+    g_cond_wait (&cond, &mutex);
+  }
+  g_mutex_unlock (&mutex);
+
+  /* Clean up */
+  {
+    GstPad *mq_input = gst_pad_get_peer (inputpad);
+
+    gst_pad_unlink (inputpad, mq_input);
+    gst_element_release_request_pad (mq, mq_input);
+    gst_object_unref (mq_input);
+    gst_object_unref (inputpad);
+
+    gst_object_unref (sinkpad);
+  }
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+
+  g_cond_clear (&cond);
+  g_mutex_clear (&mutex);
+}
+
+GST_END_TEST;
+
 static Suite *
 multiqueue_suite (void)
 {
@@ -971,6 +1081,7 @@
   tcase_add_test (tc_chain, test_limit_changes);
 
   tcase_add_test (tc_chain, test_buffering_with_none_pts);
+  tcase_add_test (tc_chain, test_initial_events_nodelay);
 
   return s;
 }
diff --git a/tests/check/elements/queue.c b/tests/check/elements/queue.c
index 1e9e9ca..8619909 100644
--- a/tests/check/elements/queue.c
+++ b/tests/check/elements/queue.c
@@ -45,6 +45,9 @@
 static GCond underrun_cond;
 static gint underrun_count;
 
+static GMutex events_lock;
+static GCond events_cond;
+static gint events_count;
 static GList *events;
 
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
@@ -76,22 +79,20 @@
 static gboolean
 event_func (GstPad * pad, GstObject * parent, GstEvent * event)
 {
-  GST_DEBUG ("%s event", gst_event_type_get_name (GST_EVENT_TYPE (event)));
+  GST_DEBUG ("%s event", GST_EVENT_TYPE_NAME (event));
+
+  g_mutex_lock (&events_lock);
+
   events = g_list_append (events, event);
+  ++events_count;
+
+  g_cond_broadcast (&events_cond);
+  g_mutex_unlock (&events_lock);
 
   return TRUE;
 }
 
 static void
-drop_events (void)
-{
-  while (events != NULL) {
-    gst_event_unref (GST_EVENT (events->data));
-    events = g_list_delete_link (events, events);
-  }
-}
-
-static void
 block_src (void)
 {
   qsrcpad = gst_element_get_static_pad (queue, "src");
@@ -123,6 +124,10 @@
 
   underrun_count = 0;
 
+
+  g_mutex_init (&events_lock);
+  g_cond_init (&events_cond);
+  events_count = 0;
   events = NULL;
 }
 
@@ -133,7 +138,13 @@
 
   gst_check_drop_buffers ();
 
-  drop_events ();
+  while (events != NULL) {
+    gst_event_unref (GST_EVENT (events->data));
+    events = g_list_delete_link (events, events);
+  }
+  events_count = 0;
+  g_mutex_clear (&events_lock);
+  g_cond_clear (&events_cond);
 
   if (mysinkpad != NULL) {
     gst_pad_set_active (mysinkpad, FALSE);
@@ -1088,6 +1099,53 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_initial_events_nodelay)
+{
+  GstSegment segment;
+  GstEvent *event;
+  GstCaps *caps;
+  gboolean ret;
+
+  mysinkpad = gst_check_setup_sink_pad (queue, &sinktemplate);
+  gst_pad_set_event_function (mysinkpad, event_func);
+  gst_pad_set_active (mysinkpad, TRUE);
+
+  GST_DEBUG ("starting");
+
+  fail_unless (gst_element_set_state (queue,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
+
+  caps = gst_caps_new_empty_simple ("foo/x-bar");
+  ret = gst_pad_push_event (mysrcpad, gst_event_new_caps (caps));
+  gst_caps_unref (caps);
+  fail_unless (ret == TRUE);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  ret = gst_pad_push_event (mysrcpad, gst_event_new_segment (&segment));
+  fail_unless (ret == TRUE);
+
+  g_mutex_lock (&events_lock);
+  while (events_count < 3) {
+    g_cond_wait (&events_cond, &events_lock);
+  }
+  g_mutex_unlock (&events_lock);
+
+  fail_unless_equals_int (g_list_length (events), 3);
+  event = g_list_nth_data (events, 0);
+  fail_unless_equals_int (GST_EVENT_TYPE (event), GST_EVENT_STREAM_START);
+  event = g_list_nth_data (events, 1);
+  fail_unless_equals_int (GST_EVENT_TYPE (event), GST_EVENT_CAPS);
+  event = g_list_nth_data (events, 2);
+  fail_unless_equals_int (GST_EVENT_TYPE (event), GST_EVENT_SEGMENT);
+
+  gst_element_set_state (queue, GST_STATE_NULL);
+}
+
+GST_END_TEST;
+
 static Suite *
 queue_suite (void)
 {
@@ -1109,6 +1167,7 @@
 #endif
   tcase_add_test (tc_chain, test_sticky_not_linked);
   tcase_add_test (tc_chain, test_time_level_buffer_list);
+  tcase_add_test (tc_chain, test_initial_events_nodelay);
 
   return s;
 }
diff --git a/tests/check/elements/selector.c b/tests/check/elements/selector.c
index 34179e5..1bb2d02 100644
--- a/tests/check/elements/selector.c
+++ b/tests/check/elements/selector.c
@@ -368,7 +368,7 @@
 
 /* Push buffers to input pad and check the 
    amount of buffers arrived to output pads */
-GST_START_TEST (test_output_selector_buffer_count);
+GST_START_TEST (test_output_selector_buffer_count)
 {
   gint i, j;
 
@@ -383,7 +383,7 @@
 
 /* Push buffers to input pads and check the 
    amount of buffers arrived to output pad */
-GST_START_TEST (test_input_selector_buffer_count);
+GST_START_TEST (test_input_selector_buffer_count)
 {
   gint i, j;
 
@@ -396,8 +396,233 @@
 
 GST_END_TEST;
 
+static GstElement *selector;
+static GstPad *output_pad;
+static GstPad *stream1_pad;
+static GstPad *stream2_pad;
 
-GST_START_TEST (test_output_selector_no_srcpad_negotiation);
+static gboolean eos_received;
+static gulong eos_probe;
+static GMutex eos_probe_lock;
+static GCond eos_probe_cond;
+
+enum InputSelectorResult
+{
+  INPUT_SELECTOR_FORWARD,
+  INPUT_SELECTOR_DROP
+};
+
+static GstPadProbeReturn
+eos_pushed_probe (GstPad * pad, GstPadProbeInfo * info, gpointer udata)
+{
+  g_mutex_lock (&eos_probe_lock);
+  if (GST_EVENT_TYPE (info->data) == GST_EVENT_EOS) {
+    eos_received = TRUE;
+    g_cond_broadcast (&eos_probe_cond);
+  }
+  g_mutex_unlock (&eos_probe_lock);
+
+  return GST_PAD_PROBE_OK;
+}
+
+static void
+setup_input_selector_with_2_streams (gint active_stream)
+{
+  eos_received = FALSE;
+  g_mutex_init (&eos_probe_lock);
+  g_cond_init (&eos_probe_cond);
+
+  selector = gst_check_setup_element ("input-selector");
+  output_pad = gst_check_setup_sink_pad (selector, &sinktemplate);
+
+  gst_pad_set_active (output_pad, TRUE);
+  stream1_pad = setup_input_pad (selector);
+  stream2_pad = setup_input_pad (selector);
+
+  if (active_stream == 1) {
+    g_object_set (selector, "active-pad", GST_PAD_PEER (stream1_pad), NULL);
+  } else {
+    g_object_set (selector, "active-pad", GST_PAD_PEER (stream2_pad), NULL);
+  }
+
+  eos_probe =
+      gst_pad_add_probe (output_pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+      eos_pushed_probe, NULL, NULL);
+
+  fail_unless (gst_element_set_state (selector,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+      "could not set to playing");
+
+  gst_check_setup_events_with_stream_id (stream1_pad, selector, NULL,
+      GST_FORMAT_TIME, "stream-1-id");
+  gst_check_setup_events_with_stream_id (stream2_pad, selector, NULL,
+      GST_FORMAT_TIME, "stream-2-id");
+}
+
+static void
+teardown_input_selector_with_2_streams (void)
+{
+  fail_unless (gst_element_set_state (selector,
+          GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
+
+  gst_pad_remove_probe (output_pad, eos_probe);
+
+  gst_pad_set_active (output_pad, FALSE);
+  gst_check_teardown_sink_pad (selector);
+  gst_check_teardown_element (selector);
+
+  g_mutex_clear (&eos_probe_lock);
+  g_cond_clear (&eos_probe_cond);
+}
+
+static void
+input_selector_push_buffer (gint stream, enum InputSelectorResult res)
+{
+  GstBuffer *buf;
+  GstPad *pad = stream == 1 ? stream1_pad : stream2_pad;
+
+  buf = gst_buffer_new ();
+  fail_unless (buffers == NULL);
+  fail_unless (gst_pad_push (pad, buf) == GST_FLOW_OK);
+
+  if (res == INPUT_SELECTOR_DROP) {
+    fail_unless (buffers == NULL);
+  } else {
+    fail_unless (buffers != NULL);
+    fail_unless (buffers->data == buf);
+    g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
+    buffers = NULL;
+  }
+}
+
+static gpointer
+input_selector_do_push_eos (GstPad * pad)
+{
+  gst_pad_push_event (pad, gst_event_new_eos ());
+  return NULL;
+}
+
+static void
+input_selector_check_eos (gint present)
+{
+  GstEvent *eos;
+
+  eos = gst_pad_get_sticky_event (output_pad, GST_EVENT_EOS, 0);
+  if (present) {
+    fail_unless (eos != NULL);
+    gst_event_unref (eos);
+  } else {
+    fail_unless (eos == NULL);
+  }
+}
+
+static void
+input_selector_push_eos (gint stream, gboolean active)
+{
+  GstPad *pad = stream == 1 ? stream1_pad : stream2_pad;
+
+  if (active) {
+    fail_unless (gst_pad_push_event (pad, gst_event_new_eos ()));
+  } else {
+    /* The non-active pads will block when receving eos, so we need to do it
+     * from a separate thread. This makes this test racy, but it should only
+     * cause false positives, not false negatives */
+    GThread *t = g_thread_new ("selector-test-push-eos",
+        (GThreadFunc) input_selector_do_push_eos, pad);
+
+    /* Sleep half a second to allow the other thread to execute, this is not
+     * a definitive solution but there is no way to know when the
+     * EOS has reached input-selector and blocked there, so this is just
+     * to reduce the possibility of this test being racy (false positives)
+     */
+    g_usleep (0.5 * G_USEC_PER_SEC);
+    g_thread_unref (t);
+  }
+
+  input_selector_check_eos (active);
+}
+
+GST_START_TEST (test_input_selector_empty_stream)
+{
+  setup_input_selector_with_2_streams (2);
+
+  /* stream1 is the empty stream, stream2 has data */
+
+  /* empty stream is just an EOS and it should not be forwarded */
+  input_selector_push_eos (1, FALSE);
+
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_eos (2, TRUE);
+
+  teardown_input_selector_with_2_streams ();
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_input_selector_shorter_stream)
+{
+  setup_input_selector_with_2_streams (2);
+
+  /* stream1 is shorter than stream2 */
+
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (1, INPUT_SELECTOR_DROP);
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+
+  /* EOS from inactive stream should not go through */
+  input_selector_push_eos (1, FALSE);
+
+  /* buffers from active stream can still flow */
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+
+  /* EOS from active stream should go through */
+  input_selector_push_eos (2, TRUE);
+
+  teardown_input_selector_with_2_streams ();
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_input_selector_switch_to_eos_stream)
+{
+  setup_input_selector_with_2_streams (2);
+
+  /* stream1 receives eos before stream2 and then we switch to it */
+
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (1, INPUT_SELECTOR_DROP);
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (1, INPUT_SELECTOR_DROP);
+
+  /* EOS from inactive stream should not go through */
+  input_selector_push_eos (1, FALSE);
+
+  /* buffers from active stream can still flow */
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+  input_selector_push_buffer (2, INPUT_SELECTOR_FORWARD);
+
+  /* now switch to stream1 */
+  g_object_set (selector, "active-pad", GST_PAD_PEER (stream1_pad), NULL);
+
+  /* wait for eos (it runs from a separate thread) */
+  g_mutex_lock (&eos_probe_lock);
+  while (!eos_received) {
+    g_cond_wait (&eos_probe_cond, &eos_probe_lock);
+  }
+  g_mutex_unlock (&eos_probe_lock);
+
+  teardown_input_selector_with_2_streams ();
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_output_selector_no_srcpad_negotiation)
 {
   GstElement *sel;
   GstCaps *caps;
@@ -478,7 +703,7 @@
   output_pads = NULL;
 }
 
-GST_START_TEST (test_output_selector_getcaps_none);
+GST_START_TEST (test_output_selector_getcaps_none)
 {
   GList *walker;
 
@@ -513,7 +738,7 @@
 GST_END_TEST;
 
 
-GST_START_TEST (test_output_selector_getcaps_all);
+GST_START_TEST (test_output_selector_getcaps_all)
 {
   GList *walker;
   GstCaps *expected;
@@ -553,7 +778,7 @@
 GST_END_TEST;
 
 
-GST_START_TEST (test_output_selector_getcaps_active);
+GST_START_TEST (test_output_selector_getcaps_active)
 {
   GList *walker;
   GstCaps *expected;
@@ -605,6 +830,9 @@
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_output_selector_buffer_count);
   tcase_add_test (tc_chain, test_input_selector_buffer_count);
+  tcase_add_test (tc_chain, test_input_selector_empty_stream);
+  tcase_add_test (tc_chain, test_input_selector_shorter_stream);
+  tcase_add_test (tc_chain, test_input_selector_switch_to_eos_stream);
   tcase_add_test (tc_chain, test_output_selector_no_srcpad_negotiation);
 
   tc_chain = tcase_create ("output-selector-negotiation");
diff --git a/tests/check/elements/tee.c b/tests/check/elements/tee.c
index 7491215..3cdd0f6 100644
--- a/tests/check/elements/tee.c
+++ b/tests/check/elements/tee.c
@@ -625,6 +625,79 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_allow_not_linked)
+{
+  GstElement *tee;
+  GstPad *src1, *src2;
+  GstBuffer *buffer;
+  GstPad *srcpad;
+  GstCaps *caps;
+  GstSegment segment;
+
+  static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+      GST_PAD_SRC,
+      GST_PAD_ALWAYS,
+      GST_STATIC_CAPS_ANY);
+
+  caps = gst_caps_new_empty_simple ("test/test");
+
+  tee = gst_check_setup_element ("tee");
+  fail_unless (tee);
+  g_object_set (tee, "allow-not-linked", TRUE, NULL);
+
+  srcpad = gst_check_setup_src_pad (tee, &srctemplate);
+  gst_pad_set_active (srcpad, TRUE);
+
+  gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
+  gst_pad_set_caps (srcpad, caps);
+  gst_caps_unref (caps);
+  gst_pad_push_event (srcpad, gst_event_new_segment (&segment));
+
+  fail_unless (gst_element_set_state (tee,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS);
+
+  buffer = gst_buffer_new ();
+  fail_unless (buffer);
+
+  fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK);
+
+  src1 = gst_element_get_request_pad (tee, "src_%u");
+
+  fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK);
+
+  src2 = gst_element_get_request_pad (tee, "src_%u");
+
+  fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK);
+
+  g_object_set (tee, "allow-not-linked", FALSE, NULL);
+
+  fail_unless (gst_pad_push (srcpad,
+          gst_buffer_ref (buffer)) == GST_FLOW_NOT_LINKED);
+
+  gst_element_release_request_pad (tee, src1);
+
+  fail_unless (gst_pad_push (srcpad,
+          gst_buffer_ref (buffer)) == GST_FLOW_NOT_LINKED);
+
+  gst_element_release_request_pad (tee, src2);
+  g_object_unref (src1);
+  g_object_unref (src2);
+
+  fail_unless (gst_pad_push (srcpad,
+          gst_buffer_ref (buffer)) == GST_FLOW_NOT_LINKED);
+
+  gst_pad_set_active (srcpad, FALSE);
+  gst_check_teardown_src_pad (tee);
+  gst_check_teardown_element (tee);
+
+  fail_if (buffer->mini_object.refcount != 1);
+  gst_buffer_unref (buffer);
+}
+
+GST_END_TEST;
+
 static Suite *
 tee_suite (void)
 {
@@ -642,6 +715,7 @@
   tcase_add_test (tc_chain, test_internal_links);
   tcase_add_test (tc_chain, test_flow_aggregation);
   tcase_add_test (tc_chain, test_request_pads);
+  tcase_add_test (tc_chain, test_allow_not_linked);
 
   return s;
 }
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 251f433..4dfdec7 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -40,7 +40,8 @@
 
   GST_DEBUG ("getting elements for package %s", PACKAGE);
   STATE_IGNORE_ELEMENTS = g_getenv ("GST_STATE_IGNORE_ELEMENTS");
-  if (!g_getenv ("GST_NO_STATE_IGNORE_ELEMENTS") && STATE_IGNORE_ELEMENTS) {
+  fail_unless (STATE_IGNORE_ELEMENTS != NULL, "Test environment not set up!");
+  if (!g_getenv ("GST_NO_STATE_IGNORE_ELEMENTS")) {
     GST_DEBUG ("Will ignore element factories: '%s'", STATE_IGNORE_ELEMENTS);
     ignorelist = g_strsplit (STATE_IGNORE_ELEMENTS, " ", 0);
   }
@@ -205,6 +206,66 @@
 
 GST_END_TEST;
 
+static gboolean
+element_state_is (GstElement * e, GstState s)
+{
+  GstStateChangeReturn ret;
+  GstState state;
+
+  ret = gst_element_get_state (e, &state, NULL, GST_CLOCK_TIME_NONE);
+  return (ret == GST_STATE_CHANGE_SUCCESS && state == s);
+}
+
+GST_START_TEST (test_state_changes_up_failure)
+{
+  GstElement *bin;
+  GstElement *mid[3];
+  int n;
+
+  /* we want at least one before and one after */
+  g_assert (G_N_ELEMENTS (mid) >= 3);
+
+  /* make a bin */
+  bin = gst_element_factory_make ("bin", NULL);
+
+  /* add children */
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n) {
+    const char *element = n != 1 ? "identity" : "fakesink";
+    mid[n] = gst_element_factory_make (element, NULL);
+    gst_bin_add (GST_BIN (bin), mid[n]);
+    if (n == 1)
+      g_object_set (mid[n], "async", FALSE, NULL);
+  }
+
+  /* This one should work */
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n)
+    fail_unless (element_state_is (mid[n], GST_STATE_NULL));
+  gst_element_set_state (bin, GST_STATE_READY);
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n)
+    fail_unless (element_state_is (mid[n], GST_STATE_READY));
+  gst_element_set_state (bin, GST_STATE_NULL);
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n)
+    fail_unless (element_state_is (mid[n], GST_STATE_NULL));
+
+  /* make the middle element fail to switch up */
+  g_object_set (mid[1], "state-error", 1 /* null-to-ready */ , NULL);
+
+  /* This one should not */
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n)
+    fail_unless (element_state_is (mid[n], GST_STATE_NULL));
+  gst_element_set_state (bin, GST_STATE_READY);
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n)
+    fail_unless (element_state_is (mid[n], GST_STATE_NULL));
+  gst_element_set_state (bin, GST_STATE_NULL);
+  for (n = 0; n < G_N_ELEMENTS (mid); ++n)
+    fail_unless (element_state_is (mid[n], GST_STATE_NULL));
+
+  /* cleanup */
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
 
 static Suite *
 states_suite (void)
@@ -217,6 +278,7 @@
   tcase_add_test (tc_chain, test_state_changes_up_and_down_seq);
   tcase_add_test (tc_chain, test_state_changes_up_seq);
   tcase_add_test (tc_chain, test_state_changes_down_seq);
+  tcase_add_test (tc_chain, test_state_changes_up_failure);
 
   return s;
 }
diff --git a/tests/check/gst/gstclock.c b/tests/check/gst/gstclock.c
index ab0fbd0..e72bbc9 100644
--- a/tests/check/gst/gstclock.c
+++ b/tests/check/gst/gstclock.c
@@ -78,7 +78,7 @@
 
   /* create master and slave */
   master = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
-  slave = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
+  slave = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockSlave", NULL);
   GST_OBJECT_FLAG_SET (slave, GST_CLOCK_FLAG_CAN_SET_MASTER);
 
   fail_unless_equals_int (GST_OBJECT_REFCOUNT (master), 1);
diff --git a/tests/check/gst/gstevent.c b/tests/check/gst/gstevent.c
index 7aae693..0983a69 100644
--- a/tests/check/gst/gstevent.c
+++ b/tests/check/gst/gstevent.c
@@ -235,6 +235,42 @@
     gst_event_unref (event);
   }
 
+  /* Protection */
+  {
+    GstBuffer *data;
+    GstMemory *mem;
+    const gchar *parsed_origin;
+    const gchar *parsed_id;
+    GstBuffer *parsed_data;
+    const gchar clearkey_sys_id[] = "78f32170-d883-11e0-9572-0800200c9a66";
+
+    data = gst_buffer_new ();
+    mem = gst_allocator_alloc (NULL, 40, NULL);
+    gst_buffer_insert_memory (data, -1, mem);
+    for (gsize offset = 0; offset < 40; offset += 4) {
+      gst_buffer_fill (data, offset, "pssi", 4);
+    }
+    ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 1);
+    event = gst_event_new_protection (clearkey_sys_id, data, "test");
+    fail_if (event == NULL);
+    ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 2);
+    fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_PROTECTION);
+    fail_unless (GST_EVENT_IS_DOWNSTREAM (event));
+    fail_unless (GST_EVENT_IS_SERIALIZED (event));
+    gst_event_parse_protection (event, &parsed_id, &parsed_data,
+        &parsed_origin);
+    fail_if (parsed_id == NULL);
+    fail_unless (g_strcmp0 (clearkey_sys_id, parsed_id) == 0);
+    fail_if (parsed_data == NULL);
+    fail_if (parsed_data != data);
+    ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 2);
+    fail_if (parsed_origin == NULL);
+    fail_unless (g_strcmp0 ("test", parsed_origin) == 0);
+    gst_event_unref (event);
+    ASSERT_MINI_OBJECT_REFCOUNT (data, "data", 1);
+    gst_buffer_unref (data);
+  }
+
   /* Custom event types */
   {
     structure = gst_structure_new_empty ("application/x-custom");
diff --git a/tests/check/gst/gstinfo.c b/tests/check/gst/gstinfo.c
index 595b908..f808d8e 100644
--- a/tests/check/gst/gstinfo.c
+++ b/tests/check/gst/gstinfo.c
@@ -39,7 +39,7 @@
   dbg_msg = gst_debug_message_get (message);
   fail_unless (dbg_msg != NULL);
 
-  if (save_messages)
+  if (save_messages && g_str_equal (category->name, "check"))
     messages = g_list_append (messages, g_strdup (dbg_msg));
 
   /* g_print ("%s\n", dbg_msg); */
@@ -330,6 +330,60 @@
 }
 
 GST_END_TEST;
+
+GST_START_TEST (info_set_and_unset_single)
+{
+  GstDebugLevel orig = gst_debug_get_default_threshold ();
+  GstDebugLevel cat1, cat2;
+  GstDebugCategory *states;
+
+  GST_DEBUG_CATEGORY_GET (states, "GST_STATES");
+  fail_unless (states != NULL);
+
+  gst_debug_set_default_threshold (GST_LEVEL_WARNING);
+
+  gst_debug_set_threshold_for_name ("GST_STATES", GST_LEVEL_DEBUG);
+  cat1 = gst_debug_category_get_threshold (states);
+  gst_debug_unset_threshold_for_name ("GST_STATES");
+  cat2 = gst_debug_category_get_threshold (states);
+
+  gst_debug_set_default_threshold (orig);
+  fail_unless (cat1 = GST_LEVEL_DEBUG);
+  fail_unless (cat2 = GST_LEVEL_WARNING);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (info_set_and_unset_multiple)
+{
+  GstDebugLevel orig = gst_debug_get_default_threshold ();
+  GstDebugLevel cat1, cat2, cat3;
+  GstDebugCategory *states;
+  GstDebugCategory *caps;
+
+  GST_DEBUG_CATEGORY_GET (states, "GST_STATES");
+  GST_DEBUG_CATEGORY_GET (caps, "GST_CAPS");
+  fail_unless (states != NULL);
+  fail_unless (caps != NULL);
+
+  gst_debug_set_default_threshold (GST_LEVEL_WARNING);
+
+  gst_debug_set_threshold_for_name ("GST_STATES", GST_LEVEL_DEBUG);
+  gst_debug_set_threshold_for_name ("GST_CAPS", GST_LEVEL_DEBUG);
+  cat1 = gst_debug_category_get_threshold (states);
+  gst_debug_unset_threshold_for_name ("GST_STATES");
+  gst_debug_unset_threshold_for_name ("GST_CAPS");
+  cat2 = gst_debug_category_get_threshold (states);
+  cat3 = gst_debug_category_get_threshold (caps);
+
+  gst_debug_set_default_threshold (orig);
+
+  fail_unless (cat1 = GST_LEVEL_DEBUG);
+  fail_unless (cat2 = GST_LEVEL_WARNING);
+  fail_unless (cat3 = GST_LEVEL_WARNING);
+}
+
+GST_END_TEST;
 #endif
 
 GST_START_TEST (info_fourcc)
@@ -367,6 +421,8 @@
   tcase_add_test (tc_chain, info_fixme);
   tcase_add_test (tc_chain, info_old_printf_extensions);
   tcase_add_test (tc_chain, info_register_same_debug_category_twice);
+  tcase_add_test (tc_chain, info_set_and_unset_single);
+  tcase_add_test (tc_chain, info_set_and_unset_multiple);
 #endif
 
   return s;
diff --git a/tests/check/gst/gstmemory.c b/tests/check/gst/gstmemory.c
index 486f6fe..56b3020 100644
--- a/tests/check/gst/gstmemory.c
+++ b/tests/check/gst/gstmemory.c
@@ -508,6 +508,48 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_alloc_params)
+{
+  GstMemory *mem;
+  GstMapInfo info;
+  gsize size, offset, maxalloc;
+  GstAllocationParams params;
+  guint8 arr[10];
+
+  memset (arr, 0, 10);
+
+  gst_allocation_params_init (&params);
+  params.padding = 10;
+  params.prefix = 10;
+  params.flags = GST_MEMORY_FLAG_ZERO_PREFIXED | GST_MEMORY_FLAG_ZERO_PADDED;
+  mem = gst_allocator_alloc (NULL, 100, &params);
+
+  /*Checking size and offset */
+  size = gst_memory_get_sizes (mem, &offset, &maxalloc);
+  fail_unless (size == 100);
+  fail_unless (offset == 10);
+  fail_unless (maxalloc >= 120);
+
+  fail_unless (GST_MEMORY_FLAG_IS_SET (mem, GST_MEMORY_FLAG_ZERO_PREFIXED));
+  fail_unless (GST_MEMORY_FLAG_IS_SET (mem, GST_MEMORY_FLAG_ZERO_PADDED));
+
+  fail_unless (gst_memory_map (mem, &info, GST_MAP_READ));
+  fail_unless (info.data != NULL);
+  fail_unless (info.size == 100);
+
+  /*Checking prefix */
+  fail_unless (memcmp (info.data - 10, arr, 10) == 0);
+
+  /*Checking padding */
+  fail_unless (memcmp (info.data + 100, arr, 10) == 0);
+
+
+  gst_memory_unmap (mem, &info);
+  gst_memory_unref (mem);
+}
+
+GST_END_TEST;
+
 
 static Suite *
 gst_memory_suite (void)
@@ -526,6 +568,7 @@
   tcase_add_test (tc_chain, test_map);
   tcase_add_test (tc_chain, test_map_nested);
   tcase_add_test (tc_chain, test_map_resize);
+  tcase_add_test (tc_chain, test_alloc_params);
 
   return s;
 }
diff --git a/tests/check/gst/gstpad.c b/tests/check/gst/gstpad.c
index 625fec0..1d86537 100644
--- a/tests/check/gst/gstpad.c
+++ b/tests/check/gst/gstpad.c
@@ -791,7 +791,9 @@
 
   fail_unless (gst_buffer_map (buf, &info, GST_MAP_READ));
   res = memcmp (info.data, str, size) == 0;
-  GST_DEBUG ("%s <-> %s: %d", (gchar *) info.data, str, res);
+  GST_MEMDUMP ("buffer  data", info.data, size);
+  GST_MEMDUMP ("compare data", (guint8 *) str, size);
+  GST_DEBUG ("buffers match: %s", res ? "yes" : "no");
   gst_buffer_unmap (buf, &info);
 
   return res;
@@ -1144,6 +1146,89 @@
 
 GST_END_TEST;
 
+static gboolean idle_probe_running;
+
+static GstFlowReturn
+idletest_sink_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
+{
+  if (idle_probe_running)
+    fail ("Should not be reached");
+  gst_buffer_unref (buf);
+  return GST_FLOW_OK;
+}
+
+static GstPadProbeReturn
+idle_probe_wait (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  /* it is ok to have a probe called multiple times but it is not
+   * acceptable in our scenario */
+  fail_if (idle_probe_running);
+
+  idle_probe_running = TRUE;
+  while (idle_probe_running) {
+    g_usleep (10000);
+  }
+
+  return GST_PAD_PROBE_REMOVE;
+}
+
+static gpointer
+add_idle_probe_async (GstPad * pad)
+{
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_IDLE, idle_probe_wait, NULL, NULL);
+
+  return NULL;
+}
+
+GST_START_TEST (test_pad_blocking_with_probe_type_idle)
+{
+  GstPad *srcpad, *sinkpad;
+  GThread *idle_thread, *thread;
+
+  srcpad = gst_pad_new ("src", GST_PAD_SRC);
+  fail_unless (srcpad != NULL);
+  sinkpad = gst_pad_new ("sink", GST_PAD_SINK);
+  fail_unless (sinkpad != NULL);
+
+  gst_pad_set_chain_function (sinkpad, idletest_sink_pad_chain);
+
+  fail_unless (gst_pad_link (srcpad, sinkpad) == GST_PAD_LINK_OK);
+
+  gst_pad_set_active (sinkpad, TRUE);
+  gst_pad_set_active (srcpad, TRUE);
+
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (srcpad,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
+  idle_probe_running = FALSE;
+  idle_thread =
+      g_thread_try_new ("gst-check", (GThreadFunc) add_idle_probe_async, srcpad,
+      NULL);
+
+  /* wait for the idle function to signal it is being called */
+  while (!idle_probe_running) {
+    g_usleep (10000);
+  }
+
+  thread = g_thread_try_new ("gst-check", (GThreadFunc) push_buffer_async,
+      srcpad, NULL);
+
+  while (!gst_pad_is_blocking (srcpad)) {
+    g_usleep (10000);
+  }
+
+  idle_probe_running = FALSE;
+
+  g_thread_join (idle_thread);
+  g_thread_join (thread);
+  gst_object_unref (srcpad);
+  gst_object_unref (sinkpad);
+}
+
+GST_END_TEST;
+
 static gboolean pad_probe_remove_notifiy_called = FALSE;
 
 static GstPadProbeReturn
@@ -1191,6 +1276,83 @@
 
 GST_END_TEST;
 
+typedef struct
+{
+  gulong probe_id;
+  GstPad *probe_pad;
+  GThread *thread;
+} BlockReplaceProbeHelper;
+
+static gpointer
+unblock_probe_thread (gpointer user_data)
+{
+  BlockReplaceProbeHelper *helper = user_data;
+
+  GST_INFO_OBJECT (helper->probe_pad, "removing probe to unblock pad");
+  gst_pad_remove_probe (helper->probe_pad, helper->probe_id);
+  return NULL;
+}
+
+static GstPadProbeReturn
+block_and_replace_buffer_probe_cb (GstPad * pad, GstPadProbeInfo * info,
+    gpointer user_data)
+{
+  BlockReplaceProbeHelper *helper = user_data;
+
+  GST_INFO_OBJECT (pad, "about to block pad, replacing buffer");
+
+  /* we want to block, but also drop this buffer */
+  gst_buffer_unref (GST_BUFFER (info->data));
+  info->data = NULL;
+
+  helper->thread =
+      g_thread_new ("gst-pad-test-thread", unblock_probe_thread, helper);
+
+  return GST_PAD_PROBE_OK;
+}
+
+GST_START_TEST (test_pad_probe_block_and_drop_buffer)
+{
+  BlockReplaceProbeHelper helper;
+  GstFlowReturn flow;
+  GstPad *src, *sink;
+
+  src = gst_pad_new ("src", GST_PAD_SRC);
+  gst_pad_set_active (src, TRUE);
+  sink = gst_pad_new ("sink", GST_PAD_SINK);
+  gst_pad_set_chain_function (sink, gst_check_chain_func);
+  gst_pad_set_active (sink, TRUE);
+
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_stream_start ("test")) == TRUE);
+  fail_unless (gst_pad_push_event (src,
+          gst_event_new_segment (&dummy_segment)) == TRUE);
+
+  fail_unless_equals_int (gst_pad_link (src, sink), GST_PAD_LINK_OK);
+
+  helper.probe_id = gst_pad_add_probe (src,
+      GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER,
+      block_and_replace_buffer_probe_cb, &helper, NULL);
+  helper.probe_pad = src;
+
+  /* push a buffer so the events are propagated downstream */
+  flow = gst_pad_push (src, gst_buffer_new ());
+
+  g_thread_join (helper.thread);
+
+  fail_unless_equals_int (flow, GST_FLOW_OK);
+
+  /* no buffer should have made it through to the sink pad, and especially
+   * not a NULL pointer buffer */
+  fail_if (buffers && buffers->data == NULL);
+  fail_unless (buffers == NULL);
+
+  gst_object_unref (src);
+  gst_object_unref (sink);
+}
+
+GST_END_TEST;
+
 static GstPadProbeReturn
 probe_block_a (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
 {
@@ -2083,8 +2245,10 @@
   tcase_add_test (tc_chain, test_block_async);
   tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_block);
   tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_blocking);
+  tcase_add_test (tc_chain, test_pad_blocking_with_probe_type_idle);
   tcase_add_test (tc_chain, test_pad_probe_remove);
   tcase_add_test (tc_chain, test_pad_probe_block_add_remove);
+  tcase_add_test (tc_chain, test_pad_probe_block_and_drop_buffer);
   tcase_add_test (tc_chain, test_pad_probe_flush_events);
   tcase_add_test (tc_chain, test_queue_src_caps_notify_linked);
   tcase_add_test (tc_chain, test_queue_src_caps_notify_not_linked);
diff --git a/tests/check/gst/gstprintf.c b/tests/check/gst/gstprintf.c
index 724de35..7fca649 100644
--- a/tests/check/gst/gstprintf.c
+++ b/tests/check/gst/gstprintf.c
@@ -118,6 +118,18 @@
 
 GST_END_TEST;
 
+GST_START_TEST (printf_percent)
+{
+  gchar *str;
+
+  /* standard int/uint */
+  str = test_printf ("%u%%", 99);
+  fail_unless_equals_string (str, "99%");
+  g_free (str);
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_printf_suite (void)
 {
@@ -128,6 +140,7 @@
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, printf_I32_I64);
+  tcase_add_test (tc_chain, printf_percent);
 
   return s;
 }
diff --git a/tests/check/gst/gstprotection.c b/tests/check/gst/gstprotection.c
new file mode 100644
index 0000000..5a4fa2f
--- /dev/null
+++ b/tests/check/gst/gstprotection.c
@@ -0,0 +1,306 @@
+/* GStreamer
+ *
+ * Unit tests for protection library.
+ *
+ * Copyright (C) <2015> YouView TV Ltd.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/gstprotection.h>
+
+#ifndef GST_PACKAGE_NAME
+#define GST_PACKAGE_NAME "gstreamer"
+#endif
+
+#ifndef GST_PACKAGE_ORIGIN
+#define GST_PACKAGE_ORIGIN "https://developer.gnome.org/gstreamer/"
+#endif
+
+static GType gst_protection_test_get_type (void);
+
+#define GST_TYPE_PROTECTION_TEST            (gst_protection_test_get_type ())
+#define GST_PROTECTION_TEST(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PROTECTION_TEST, GstProtectionTest))
+#define GST_PROTECTION_TEST_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PROTECTION_TEST, GstProtectionTestClass))
+#define GST_IS_PROTECTION_TEST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PROTECTION_TEST))
+#define GST_IS_PROTECTION_TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PROTECTION_TEST))
+#define GST_PROTECTION_TEST_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PROTECTION_TEST, GstProtectionTestClass))
+#define GST_PROTECTION_TEST_NAME            "protection-test"
+
+#define CLEARKEY_SYSTEM_ID "78f32170-d883-11e0-9572-0800200c9a66"
+
+typedef struct _GstProtectionTest
+{
+  GstElement parent;
+
+  gint test;
+} GstProtectionTest;
+
+typedef struct _GstProtectionTestClass
+{
+  GstElementClass parent_class;
+} GstProtectionTestClass;
+
+typedef struct _PluginInitContext
+{
+  const gchar *name;
+  guint rank;
+  GType type;
+} PluginInitContext;
+
+static GstStaticPadTemplate gst_decrypt_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS
+    ("application/x-cenc, original-media-type=(string)video/x-h264, "
+        PROTECTION_SYSTEM_ID_CAPS_FIELD "=(string)" CLEARKEY_SYSTEM_ID)
+    );
+
+static void
+gst_protection_test_class_init (GObjectClass * klass)
+{
+}
+
+static void
+gst_protection_test_base_init (GstProtectionTestClass * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_decrypt_sink_template));
+
+  gst_element_class_set_metadata (element_class,
+      "Decryptor element for unit tests",
+      GST_ELEMENT_FACTORY_KLASS_DECRYPTOR,
+      "Use in unit tests", "Alex Ashley <alex.ashley@youview.com>");
+}
+
+static GType
+gst_protection_test_get_type (void)
+{
+  static volatile gsize protection_test_type = 0;
+
+  if (g_once_init_enter (&protection_test_type)) {
+    GType type;
+    const GTypeInfo info = {
+      sizeof (GstProtectionTestClass),
+      (GBaseInitFunc) gst_protection_test_base_init,    /* base_init */
+      NULL,                     /* base_finalize */
+      (GClassInitFunc) gst_protection_test_class_init,  /* class_init */
+      NULL,                     /* class_finalize */
+      NULL,                     /* class_data */
+      sizeof (GstProtectionTest),
+      0,                        /* n_preallocs */
+      NULL,                     /* instance_init */
+      NULL                      /* value_table */
+    };
+    type =
+        g_type_register_static (GST_TYPE_ELEMENT, "GstProtectionTest", &info,
+        0);
+    g_once_init_leave (&protection_test_type, type);
+  }
+  return protection_test_type;
+}
+
+static gboolean
+protection_plugin_init_func (GstPlugin * plugin, gpointer user_data)
+{
+  PluginInitContext *context = (PluginInitContext *) user_data;
+  gboolean ret;
+
+  ret =
+      gst_element_register (plugin, context->name, context->rank,
+      context->type);
+  return ret;
+}
+
+static gboolean
+protection_create_plugin (GstRegistry * registry, const gchar * name,
+    GType type)
+{
+  gboolean ret;
+  PluginInitContext context;
+
+  context.name = name;
+  context.rank = GST_RANK_MARGINAL;
+  context.type = type;
+  ret = gst_plugin_register_static_full (GST_VERSION_MAJOR,     /* version */
+      GST_VERSION_MINOR,        /* version */
+      name,                     /* name */
+      "Protection unit test",   /* description */
+      protection_plugin_init_func,      /* init function */
+      "0.0.0",                  /* version string */
+      GST_LICENSE_UNKNOWN,      /* license */
+      __FILE__,                 /* source */
+      GST_PACKAGE_NAME,         /* package */
+      GST_PACKAGE_ORIGIN,       /* origin */
+      &context                  /* user_data */
+      );
+  return ret;
+}
+
+static void
+test_setup (void)
+{
+  GstRegistry *registry;
+
+  registry = gst_registry_get ();
+  protection_create_plugin (registry, GST_PROTECTION_TEST_NAME,
+      GST_TYPE_PROTECTION_TEST);
+}
+
+static void
+test_teardown (void)
+{
+}
+
+
+GST_START_TEST (test_decryptor_element_class)
+{
+  GstElement *elem;
+  const gchar *selected_id;
+  const gchar *sys_ids[] = {
+    CLEARKEY_SYSTEM_ID,
+    "69f908af-4816-46ea-910c-cd5dcccb0a3a",
+    "5e629af5-38da-4063-8977-97ffbd9902d4",
+    NULL
+  };
+
+#ifdef DEBUG_PLUGINS
+  GList *list, *walk;
+
+  list = gst_registry_get_plugin_list (gst_registry_get ());
+  for (walk = list; walk; walk = g_list_next (walk)) {
+    GstPlugin *plugin = (GstPlugin *) walk->data;
+    g_print ("Element %s\n", gst_plugin_get_name (plugin));
+  }
+#endif
+
+  elem = gst_element_factory_make (GST_PROTECTION_TEST_NAME, NULL);
+  fail_unless (GST_IS_ELEMENT (elem));
+
+  selected_id = gst_protection_select_system (sys_ids);
+  fail_if (selected_id == NULL);
+
+  selected_id = gst_protection_select_system (&sys_ids[1]);
+  fail_unless (selected_id == NULL);
+
+  selected_id = gst_protection_select_system (&sys_ids[3]);
+  fail_unless (selected_id == NULL);
+
+  gst_object_unref (elem);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_protection_metadata)
+{
+  GstBuffer *buf = NULL;
+  GstBuffer *iv, *kid;
+  GstBuffer *fetched_iv = NULL, *fetched_key_id = NULL;
+  GstStructure *meta_info;
+  GstProtectionMeta *meta = NULL;
+  const GstMetaInfo *info = NULL;
+  const GValue *value;
+
+  /* Check correct type info is returned */
+  info = gst_protection_meta_get_info ();
+  fail_unless (info != NULL);
+  fail_unless (info->api == GST_PROTECTION_META_API_TYPE);
+
+  iv = gst_buffer_new_allocate (NULL, 16, NULL);
+  gst_buffer_memset (iv, 0, 'i', 16);
+  ASSERT_MINI_OBJECT_REFCOUNT (iv, "iv", 1);
+  kid = gst_buffer_new_allocate (NULL, 16, NULL);
+  gst_buffer_memset (kid, 0, 'k', 16);
+  ASSERT_MINI_OBJECT_REFCOUNT (kid, "kid", 1);
+  meta_info = gst_structure_new ("application/x-cenc",
+      "encrypted", G_TYPE_BOOLEAN, TRUE,
+      "iv", GST_TYPE_BUFFER, iv,
+      "iv_size", G_TYPE_UINT, 16, "kid", GST_TYPE_BUFFER, kid, NULL);
+  ASSERT_MINI_OBJECT_REFCOUNT (kid, "kid", 2);
+  ASSERT_MINI_OBJECT_REFCOUNT (iv, "iv", 2);
+
+  buf = gst_buffer_new_allocate (NULL, 1024, NULL);
+  /* Test attaching protection metadata to buffer */
+  meta = gst_buffer_add_protection_meta (buf, meta_info);
+  fail_unless (meta != NULL);
+  /* gst_buffer_new_allocate takes ownership of info GstStructure */
+  ASSERT_MINI_OBJECT_REFCOUNT (buf, "Buffer", 1);
+
+  /* Test detaching protection metadata from buffer, and check that
+   * contained data is correct */
+  meta = NULL;
+  meta = gst_buffer_get_protection_meta (buf);
+  fail_unless (meta != NULL);
+  ASSERT_MINI_OBJECT_REFCOUNT (buf, "Buffer", 1);
+  value = gst_structure_get_value (meta->info, "iv");
+  fail_unless (value != NULL);
+  fetched_iv = gst_value_get_buffer (value);
+  fail_unless (fetched_iv != NULL);
+  fail_unless (gst_buffer_get_size (fetched_iv) == 16);
+  value = gst_structure_get_value (meta->info, "kid");
+  fail_unless (value != NULL);
+  fetched_key_id = gst_value_get_buffer (value);
+  fail_unless (fetched_key_id != NULL);
+  fail_unless (gst_buffer_get_size (fetched_key_id) == 16);
+
+  gst_buffer_remove_meta (buf, (GstMeta *) meta);
+
+  /* Check that refcounts are decremented after metadata is freed */
+  ASSERT_MINI_OBJECT_REFCOUNT (buf, "Buffer", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (iv, "IV", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (kid, "KID", 1);
+
+  gst_buffer_unref (buf);
+  gst_buffer_unref (iv);
+  gst_buffer_unref (kid);
+}
+
+GST_END_TEST;
+
+static Suite *
+protection_suite (void)
+{
+  Suite *s = suite_create ("protection library");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_decryptor_element_class);
+  tcase_add_test (tc_chain, test_protection_metadata);
+  tcase_add_unchecked_fixture (tc_chain, test_setup, test_teardown);
+
+  return s;
+}
+
+int
+main (int argc, char **argv)
+{
+  int nf;
+
+  Suite *s = protection_suite ();
+  SRunner *sr = srunner_create (s);
+
+  gst_check_init (&argc, &argv);
+
+  srunner_run_all (sr, CK_NORMAL);
+  nf = srunner_ntests_failed (sr);
+  srunner_free (sr);
+
+  return nf;
+}
diff --git a/tests/check/gst/gstsegment.c b/tests/check/gst/gstsegment.c
index 94eb2b2..8678915 100644
--- a/tests/check/gst/gstsegment.c
+++ b/tests/check/gst/gstsegment.c
@@ -30,6 +30,8 @@
 
   st = gst_segment_to_stream_time (segment, segment->format, position);
   rt = gst_segment_to_running_time (segment, segment->format, position);
+  GST_DEBUG ("position %" G_GUINT64_FORMAT ", st %" G_GUINT64_FORMAT ", rt %"
+      G_GUINT64_FORMAT, position, stream_time, running_time);
 
   fail_unless_equals_int64 (st, stream_time);
   fail_unless_equals_int64 (rt, running_time);
@@ -689,10 +691,106 @@
   fail_unless (segment.base == 0);
   fail_unless (segment.offset == 200);
   check_times (&segment, 200, 200, 0);
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  segment.start = 20;
+  segment.position = 50;
+  segment.stop = 220;
+  segment.time = 0;
+
+  check_times (&segment, 40, 20, 20);
+  check_times (&segment, 240, -1, -1);
+
+  fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
+          0) == TRUE);
+  fail_unless (segment.start == 20);
+  fail_unless (segment.stop == 220);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 0);
+  fail_unless (segment.offset == 0);
+  check_times (&segment, 40, 20, 20);
+
+  fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
+          100) == TRUE);
+  fail_unless (segment.start == 20);
+  fail_unless (segment.stop == 220);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 100);
+  fail_unless (segment.offset == 0);
+  check_times (&segment, 40, 20, 120);
+
+  fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
+          -50) == TRUE);
+  fail_unless (segment.start == 20);
+  fail_unless (segment.stop == 220);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 50);
+  fail_unless (segment.offset == 0);
+  check_times (&segment, 40, 20, 70);
+
+  fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
+          -100) == TRUE);
+  fail_unless (segment.start == 20);
+  fail_unless (segment.stop == 220);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 0);
+  fail_unless (segment.offset == 50);
+  check_times (&segment, 40, 20, -1);
+  check_times (&segment, 220, 200, 150);
 }
 
 GST_END_TEST;
 
+GST_START_TEST (segment_full)
+{
+  GstSegment segment;
+  guint64 rt;
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  segment.start = 50;
+  segment.position = 150;
+  segment.stop = 200;
+  segment.time = 0;
+
+  check_times (&segment, 100, 50, 50);
+  check_times (&segment, 220, -1, -1);
+
+  fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME,
+          50, &rt) == 1);
+  fail_unless (rt == 0);
+  fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME,
+          200, &rt) == 1);
+  fail_unless (rt == 150);
+  fail_unless (!gst_segment_clip (&segment, GST_FORMAT_TIME, 40, 40, NULL,
+          NULL));
+  fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME, 40,
+          &rt) == -1);
+  fail_unless (!gst_segment_clip (&segment, GST_FORMAT_TIME, 49, 49, NULL,
+          NULL));
+  fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME, 49,
+          &rt) == -1);
+  fail_unless (!gst_segment_clip (&segment, GST_FORMAT_TIME, 201, 201, NULL,
+          NULL));
+  fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME, 201,
+          &rt) == 1);
+
+  fail_unless (gst_segment_offset_running_time (&segment, GST_FORMAT_TIME,
+          -50) == TRUE);
+  fail_unless (segment.offset == 50);
+
+  fail_unless (gst_segment_to_running_time_full (&segment, GST_FORMAT_TIME,
+          50, &rt) == -1);
+  GST_DEBUG ("%" G_GUINT64_FORMAT, rt);
+  fail_unless (rt == 50);
+}
+
+GST_END_TEST;
 
 static Suite *
 gst_segment_suite (void)
@@ -710,6 +808,7 @@
   tcase_add_test (tc_chain, segment_copy);
   tcase_add_test (tc_chain, segment_seek_noupdate);
   tcase_add_test (tc_chain, segment_offset);
+  tcase_add_test (tc_chain, segment_full);
 
   return s;
 }
diff --git a/tests/check/gst/gstvalue.c b/tests/check/gst/gstvalue.c
index 7b913f5..3be87c4 100644
--- a/tests/check/gst/gstvalue.c
+++ b/tests/check/gst/gstvalue.c
@@ -542,21 +542,18 @@
     "\"foo\\%\"", "foo%"}, {
     "\"0123456789_-+/:.\"", "0123456789_-+/:."}, {
     "\"Hello\\ World\"", "Hello World"}, {
+    "\"Hello\\ World", "\"Hello\\ World"}, {
+    "\"\\", "\"\\"}, {
+    "\"\\0", "\"\\0"}, {
     "", ""},                    /* empty strings */
     {
     "\"\"", ""},                /* quoted empty string -> empty string */
         /* Expected FAILURES: */
     {
-    "\"", NULL},                /* missing second quote */
-    {
-    "\"Hello\\ World", NULL},   /* missing second quote */
-    {
-    "\"\\", NULL},              /* quote at end, missing second quote */
-    {
-    "\"\\0", NULL},             /* missing second quote */
-    {
     "\"\\0\"", NULL},           /* unfinished escaped character */
     {
+    "\"", NULL},                /* solitary quote */
+    {
     "\" \"", NULL},             /* spaces must be escaped */
 #if 0
         /* FIXME 0.9: this test should fail, but it doesn't */
diff --git a/tests/check/libs/baseparse.c b/tests/check/libs/baseparse.c
index 4491c41..b9a8da0 100644
--- a/tests/check/libs/baseparse.c
+++ b/tests/check/libs/baseparse.c
@@ -28,6 +28,7 @@
 
 static GstPad *mysrcpad, *mysinkpad;
 static GstElement *parsetest;
+static GstBus *bus;
 
 #define TEST_VIDEO_WIDTH 640
 #define TEST_VIDEO_HEIGHT 480
@@ -134,11 +135,17 @@
   parsetest = g_object_new (GST_PARSER_TESTER_TYPE, NULL);
   mysrcpad = gst_check_setup_src_pad (parsetest, &srctemplate);
   mysinkpad = gst_check_setup_sink_pad (parsetest, &sinktemplate);
+  bus = gst_bus_new ();
+  gst_element_set_bus (parsetest, bus);
 }
 
 static void
 cleanup_parsertest (void)
 {
+  /* release the bus first to get rid of all refcounts */
+  gst_element_set_bus (parsetest, NULL);
+  gst_object_unref (bus);
+
   gst_pad_set_active (mysrcpad, FALSE);
   gst_pad_set_active (mysinkpad, FALSE);
   gst_check_teardown_src_pad (parsetest);
@@ -184,6 +191,17 @@
 }
 
 static void
+check_no_error_received (void)
+{
+  GstMessage *msg;
+
+  msg = gst_bus_pop_filtered (bus, GST_MESSAGE_ERROR);
+  fail_unless (msg == NULL);
+  if (msg)
+    gst_message_unref (msg);
+}
+
+static void
 run_parser_playback_test (GList * input, gint expected_output, gdouble rate)
 {
   GstBuffer *buffer;
@@ -238,6 +256,8 @@
   g_list_free_full (buffers, (GDestroyNotify) gst_buffer_unref);
   buffers = NULL;
 
+  check_no_error_received ();
+
   cleanup_parsertest ();
 }
 
@@ -287,6 +307,15 @@
 
 GST_END_TEST;
 
+GST_START_TEST (parser_empty_stream)
+{
+  setup_parsertester ();
+
+  run_parser_playback_test (NULL, 0, 1.0);
+}
+
+GST_END_TEST;
+
 
 static Suite *
 gst_baseparse_suite (void)
@@ -296,6 +325,7 @@
 
   suite_add_tcase (s, tc);
   tcase_add_test (tc, parser_playback);
+  tcase_add_test (tc, parser_empty_stream);
   tcase_add_test (tc, parser_reverse_playback_on_passthrough);
 
   return s;
diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am
index fce72a1..f3cfd8d 100644
--- a/tests/examples/Makefile.am
+++ b/tests/examples/Makefile.am
@@ -1,9 +1,3 @@
-if GST_DISABLE_PARSE
-GST_PARSE_DIRS = 
-else
-GST_PARSE_DIRS = launch
-endif
-
 # adapter test needs sys/times.h and unistd.h
 if HAVE_SYS_TIMES_H_AND_UNISTD_H
   ADAPTER_TEST_DIR = adapter
@@ -16,35 +10,15 @@
 	helloworld \
 	manual     \
 	memory   \
-	metadata   \
 	netclock \
-	queue      \
 	stepping \
 	streamiddemux \
-	streams \
-	typefind
-
-#appreader
-#cutter
-#events
-#helloworld2
-#launch
-#manual
-#mixer
-#pingpong
-#plugins
-#pwg
-#queue2
-#queue3
-#queue4
-#retag
-#thread
+	streams
 
 SUBDIRS = 				\
 	$(always_dirs)			\
-	$(ADAPTER_TEST_DIR)		\
-	$(GST_PARSE_DIRS)
+	$(ADAPTER_TEST_DIR)
 
-DIST_SUBDIRS = $(always_dirs) adapter launch
+DIST_SUBDIRS = $(always_dirs) adapter
 
 include $(top_srcdir)/common/parallel-subdirs.mak
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 9a59d14..1b256b2 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -490,8 +490,6 @@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-@GST_DISABLE_PARSE_FALSE@GST_PARSE_DIRS = launch
-@GST_DISABLE_PARSE_TRUE@GST_PARSE_DIRS = 
 @HAVE_SYS_TIMES_H_AND_UNISTD_H_FALSE@ADAPTER_TEST_DIR = 
 
 # adapter test needs sys/times.h and unistd.h
@@ -501,36 +499,16 @@
 	helloworld \
 	manual     \
 	memory   \
-	metadata   \
 	netclock \
-	queue      \
 	stepping \
 	streamiddemux \
-	streams \
-	typefind
+	streams
 
-
-#appreader
-#cutter
-#events
-#helloworld2
-#launch
-#manual
-#mixer
-#pingpong
-#plugins
-#pwg
-#queue2
-#queue3
-#queue4
-#retag
-#thread
 SUBDIRS = \
 	$(always_dirs)			\
-	$(ADAPTER_TEST_DIR)		\
-	$(GST_PARSE_DIRS)
+	$(ADAPTER_TEST_DIR)
 
-DIST_SUBDIRS = $(always_dirs) adapter launch
+DIST_SUBDIRS = $(always_dirs) adapter
 all: all-recursive
 
 .SUFFIXES:
diff --git a/tests/examples/controller/Makefile.am b/tests/examples/controller/Makefile.am
index 06d39ed..fd50697 100644
--- a/tests/examples/controller/Makefile.am
+++ b/tests/examples/controller/Makefile.am
@@ -5,15 +5,3 @@
 LDADD = \
 	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
 	$(GST_OBJ_LIBS)
-
-Android.mk: Makefile.am audio-example.c
-	androgenizer \
-	-:PROJECT audio-example -:EXECUTABLE audio-example \
-	 -:TAGS eng debug \
-         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES audio-example.c \
-	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(AM_CFLAGS) \
-	 -:LDFLAGS -lgstcontroller-@GST_API_VERSION@ \
-	     $(GST_OBJ_LIBS) -ldl \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
diff --git a/tests/examples/controller/Makefile.in b/tests/examples/controller/Makefile.in
index 9e36b95..79b265e 100644
--- a/tests/examples/controller/Makefile.in
+++ b/tests/examples/controller/Makefile.in
@@ -795,18 +795,6 @@
 	tags tags-am uninstall uninstall-am
 
 
-Android.mk: Makefile.am audio-example.c
-	androgenizer \
-	-:PROJECT audio-example -:EXECUTABLE audio-example \
-	 -:TAGS eng debug \
-         -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:SOURCES audio-example.c \
-	 -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(AM_CFLAGS) \
-	 -:LDFLAGS -lgstcontroller-@GST_API_VERSION@ \
-	     $(GST_OBJ_LIBS) -ldl \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/tests/examples/launch/Makefile.am b/tests/examples/launch/Makefile.am
deleted file mode 100644
index bee5789..0000000
--- a/tests/examples/launch/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-noinst_PROGRAMS = mp3parselaunch
-
-mp3parselaunch_LDADD = $(GST_OBJ_LIBS)
-mp3parselaunch_CFLAGS = $(GST_OBJ_CFLAGS)
-
-#noinst_SCRIPTS = mp3play
-#EXTRA_DIST = mp3play
diff --git a/tests/examples/launch/Makefile.in b/tests/examples/launch/Makefile.in
deleted file mode 100644
index 95a5210..0000000
--- a/tests/examples/launch/Makefile.in
+++ /dev/null
@@ -1,795 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-noinst_PROGRAMS = mp3parselaunch$(EXEEXT)
-subdir = tests/examples/launch
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-docbook.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/ax_pthread.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-doc.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-parser.m4 \
-	$(top_srcdir)/common/m4/gst-platform.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/introspection.m4 \
-	$(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/inttypes_h.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/longlong.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)/m4/stdint_h.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-mp3parselaunch_SOURCES = mp3parselaunch.c
-mp3parselaunch_OBJECTS = mp3parselaunch-mp3parselaunch.$(OBJEXT)
-am__DEPENDENCIES_1 =
-mp3parselaunch_DEPENDENCIES = $(am__DEPENDENCIES_1)
-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 = 
-mp3parselaunch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(mp3parselaunch_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
-	$@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-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 = mp3parselaunch.c
-DIST_SOURCES = mp3parselaunch.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
-BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
-BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
-BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
-BISON_PATH = @BISON_PATH@
-CAT_ENTRY_END = @CAT_ENTRY_END@
-CAT_ENTRY_START = @CAT_ENTRY_START@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
-CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
-CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
-CHECK_VERSION = @CHECK_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DOCBOOK_ROOT = @DOCBOOK_ROOT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FLEX_PATH = @FLEX_PATH@
-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@
-GMP_LIBS = @GMP_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSL_LIBS = @GSL_LIBS@
-GST_AGE = @GST_AGE@
-GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
-GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_ALL_LIBS = @GST_ALL_LIBS@
-GST_API_VERSION = @GST_API_VERSION@
-GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
-GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
-GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
-GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
-GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
-GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
-GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
-GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
-GST_OBJ_LIBS = @GST_OBJ_LIBS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
-GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
-GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
-GST_REVISION = @GST_REVISION@
-GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
-GST_VERSION_MICRO = @GST_VERSION_MICRO@
-GST_VERSION_MINOR = @GST_VERSION_MINOR@
-GST_VERSION_NANO = @GST_VERSION_NANO@
-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_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
-HAVE_DVIPS = @HAVE_DVIPS@
-HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
-HAVE_FORK = @HAVE_FORK@
-HAVE_GMP = @HAVE_GMP@
-HAVE_GSL = @HAVE_GSL@
-HAVE_JADETEX = @HAVE_JADETEX@
-HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
-HAVE_PNMTOPS = @HAVE_PNMTOPS@
-HAVE_PS2PDF = @HAVE_PS2PDF@
-HAVE_XMLLINT = @HAVE_XMLLINT@
-HAVE_XSLTPROC = @HAVE_XSLTPROC@
-HOST_CPU = @HOST_CPU@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDIR = @LIBDIR@
-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@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-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@
-PERL_PATH = @PERL_PATH@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PRINTF_CFLAGS = @PRINTF_CFLAGS@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PTHREAD_CC = @PTHREAD_CC@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-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@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XML_CATALOG = @XML_CATALOG@
-XSLTPROC = @XSLTPROC@
-XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
-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@
-ax_pthread_config = @ax_pthread_config@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-mp3parselaunch_LDADD = $(GST_OBJ_LIBS)
-mp3parselaunch_CFLAGS = $(GST_OBJ_CFLAGS)
-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 tests/examples/launch/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu tests/examples/launch/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-mp3parselaunch$(EXEEXT): $(mp3parselaunch_OBJECTS) $(mp3parselaunch_DEPENDENCIES) $(EXTRA_mp3parselaunch_DEPENDENCIES) 
-	@rm -f mp3parselaunch$(EXEEXT)
-	$(AM_V_CCLD)$(mp3parselaunch_LINK) $(mp3parselaunch_OBJECTS) $(mp3parselaunch_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mp3parselaunch-mp3parselaunch.Po@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 $@ $<
-
-mp3parselaunch-mp3parselaunch.o: mp3parselaunch.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -MT mp3parselaunch-mp3parselaunch.o -MD -MP -MF $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo $(DEPDIR)/mp3parselaunch-mp3parselaunch.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.o `test -f 'mp3parselaunch.c' || echo '$(srcdir)/'`mp3parselaunch.c
-
-mp3parselaunch-mp3parselaunch.obj: mp3parselaunch.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -MT mp3parselaunch-mp3parselaunch.obj -MD -MP -MF $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/mp3parselaunch-mp3parselaunch.Tpo $(DEPDIR)/mp3parselaunch-mp3parselaunch.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mp3parselaunch.c' object='mp3parselaunch-mp3parselaunch.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mp3parselaunch_CFLAGS) $(CFLAGS) -c -o mp3parselaunch-mp3parselaunch.obj `if test -f 'mp3parselaunch.c'; then $(CYGPATH_W) 'mp3parselaunch.c'; else $(CYGPATH_W) '$(srcdir)/mp3parselaunch.c'; fi`
-
-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 $(PROGRAMS)
-installdirs:
-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-noinstPROGRAMS \
-	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-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:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
-	ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am
-
-
-#noinst_SCRIPTS = mp3play
-#EXTRA_DIST = mp3play
-
-# 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/tests/examples/launch/mp3parselaunch.c b/tests/examples/launch/mp3parselaunch.c
deleted file mode 100644
index e77c1bd..0000000
--- a/tests/examples/launch/mp3parselaunch.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <gst/gst.h>
-
-static void
-event_loop (GstElement * pipe)
-{
-  GstBus *bus;
-  GstMessage *message = NULL;
-  gboolean running = TRUE;
-
-  bus = gst_element_get_bus (GST_ELEMENT (pipe));
-
-  while (running) {
-    message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
-
-    g_assert (message != NULL);
-
-    switch (message->type) {
-      case GST_MESSAGE_EOS:
-        running = FALSE;
-        break;
-      case GST_MESSAGE_WARNING:{
-        GError *gerror;
-        gchar *debug;
-
-        gst_message_parse_warning (message, &gerror, &debug);
-        gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-        g_error_free (gerror);
-        g_free (debug);
-        break;
-      }
-      case GST_MESSAGE_ERROR:{
-        GError *gerror;
-        gchar *debug;
-
-        gst_message_parse_error (message, &gerror, &debug);
-        gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-        g_error_free (gerror);
-        g_free (debug);
-        running = FALSE;
-        break;
-      }
-      default:
-        break;
-    }
-    gst_message_unref (message);
-  }
-  gst_object_unref (bus);
-}
-
-int
-main (int argc, char *argv[])
-{
-  GstElement *bin;
-  GstElement *filesrc;
-  GError *error = NULL;
-
-  gst_init (&argc, &argv);
-
-  if (argc != 2) {
-    g_print ("usage: %s <mp3 file>\n", argv[0]);
-    exit (-1);
-  }
-
-  bin = (GstElement *)
-      gst_parse_launch ("filesrc name=my_filesrc ! mad ! osssink", &error);
-  if (!bin) {
-    fprintf (stderr, "Parse error: %s", error->message);
-    exit (-1);
-  }
-
-  filesrc = gst_bin_get_by_name (GST_BIN (bin), "my_filesrc");
-  g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
-  gst_object_unref (filesrc);
-
-  /* start playing */
-  gst_element_set_state (bin, GST_STATE_PLAYING);
-
-  /* Run event loop listening for bus messages until EOS or ERROR */
-  event_loop (bin);
-
-  /* stop the bin */
-  gst_element_set_state (bin, GST_STATE_NULL);
-
-  exit (0);
-}
diff --git a/tests/examples/manual/Makefile.am b/tests/examples/manual/Makefile.am
index c9d439c..0e4da6b 100644
--- a/tests/examples/manual/Makefile.am
+++ b/tests/examples/manual/Makefile.am
@@ -12,7 +12,7 @@
 REGISTRY_ENVIRONMENT = \
         GST_REGISTRY=$(CHECK_REGISTRY)
 
-TESTS_ENVIRONMENT = \
+AM_TESTS_ENVIRONMENT = \
         $(REGISTRY_ENVIRONMENT)                                 \
         GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
         GST_PLUGIN_SYSTEM_PATH=                                 \
diff --git a/tests/examples/manual/Makefile.in b/tests/examples/manual/Makefile.in
index ba7233d..1cc8617 100644
--- a/tests/examples/manual/Makefile.in
+++ b/tests/examples/manual/Makefile.in
@@ -853,7 +853,7 @@
 REGISTRY_ENVIRONMENT = \
         GST_REGISTRY=$(CHECK_REGISTRY)
 
-TESTS_ENVIRONMENT = \
+AM_TESTS_ENVIRONMENT = \
         $(REGISTRY_ENVIRONMENT)                                 \
         GST_PLUGIN_SCANNER=$(top_builddir)/libs/gst/helpers/gst-plugin-scanner \
         GST_PLUGIN_SYSTEM_PATH=                                 \
diff --git a/tests/examples/metadata/Makefile.am b/tests/examples/metadata/Makefile.am
deleted file mode 100644
index 61d2eb8..0000000
--- a/tests/examples/metadata/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-noinst_PROGRAMS = read-metadata
-
-read_metadata_LDADD = $(GST_OBJ_LIBS)
-read_metadata_CFLAGS = $(GST_OBJ_CFLAGS)
diff --git a/tests/examples/metadata/Makefile.in b/tests/examples/metadata/Makefile.in
deleted file mode 100644
index 953c539..0000000
--- a/tests/examples/metadata/Makefile.in
+++ /dev/null
@@ -1,791 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-noinst_PROGRAMS = read-metadata$(EXEEXT)
-subdir = tests/examples/metadata
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-docbook.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/ax_pthread.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-doc.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-parser.m4 \
-	$(top_srcdir)/common/m4/gst-platform.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/introspection.m4 \
-	$(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/inttypes_h.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/longlong.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)/m4/stdint_h.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-read_metadata_SOURCES = read-metadata.c
-read_metadata_OBJECTS = read_metadata-read-metadata.$(OBJEXT)
-am__DEPENDENCIES_1 =
-read_metadata_DEPENDENCIES = $(am__DEPENDENCIES_1)
-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 = 
-read_metadata_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(read_metadata_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-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 = read-metadata.c
-DIST_SOURCES = read-metadata.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
-BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
-BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
-BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
-BISON_PATH = @BISON_PATH@
-CAT_ENTRY_END = @CAT_ENTRY_END@
-CAT_ENTRY_START = @CAT_ENTRY_START@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
-CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
-CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
-CHECK_VERSION = @CHECK_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DOCBOOK_ROOT = @DOCBOOK_ROOT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FLEX_PATH = @FLEX_PATH@
-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@
-GMP_LIBS = @GMP_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSL_LIBS = @GSL_LIBS@
-GST_AGE = @GST_AGE@
-GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
-GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_ALL_LIBS = @GST_ALL_LIBS@
-GST_API_VERSION = @GST_API_VERSION@
-GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
-GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
-GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
-GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
-GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
-GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
-GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
-GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
-GST_OBJ_LIBS = @GST_OBJ_LIBS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
-GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
-GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
-GST_REVISION = @GST_REVISION@
-GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
-GST_VERSION_MICRO = @GST_VERSION_MICRO@
-GST_VERSION_MINOR = @GST_VERSION_MINOR@
-GST_VERSION_NANO = @GST_VERSION_NANO@
-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_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
-HAVE_DVIPS = @HAVE_DVIPS@
-HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
-HAVE_FORK = @HAVE_FORK@
-HAVE_GMP = @HAVE_GMP@
-HAVE_GSL = @HAVE_GSL@
-HAVE_JADETEX = @HAVE_JADETEX@
-HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
-HAVE_PNMTOPS = @HAVE_PNMTOPS@
-HAVE_PS2PDF = @HAVE_PS2PDF@
-HAVE_XMLLINT = @HAVE_XMLLINT@
-HAVE_XSLTPROC = @HAVE_XSLTPROC@
-HOST_CPU = @HOST_CPU@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDIR = @LIBDIR@
-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@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-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@
-PERL_PATH = @PERL_PATH@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PRINTF_CFLAGS = @PRINTF_CFLAGS@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PTHREAD_CC = @PTHREAD_CC@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-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@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XML_CATALOG = @XML_CATALOG@
-XSLTPROC = @XSLTPROC@
-XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
-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@
-ax_pthread_config = @ax_pthread_config@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-read_metadata_LDADD = $(GST_OBJ_LIBS)
-read_metadata_CFLAGS = $(GST_OBJ_CFLAGS)
-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 tests/examples/metadata/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu tests/examples/metadata/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-read-metadata$(EXEEXT): $(read_metadata_OBJECTS) $(read_metadata_DEPENDENCIES) $(EXTRA_read_metadata_DEPENDENCIES) 
-	@rm -f read-metadata$(EXEEXT)
-	$(AM_V_CCLD)$(read_metadata_LINK) $(read_metadata_OBJECTS) $(read_metadata_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read_metadata-read-metadata.Po@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 $@ $<
-
-read_metadata-read-metadata.o: read-metadata.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -MT read_metadata-read-metadata.o -MD -MP -MF $(DEPDIR)/read_metadata-read-metadata.Tpo -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/read_metadata-read-metadata.Tpo $(DEPDIR)/read_metadata-read-metadata.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='read-metadata.c' object='read_metadata-read-metadata.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.o `test -f 'read-metadata.c' || echo '$(srcdir)/'`read-metadata.c
-
-read_metadata-read-metadata.obj: read-metadata.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -MT read_metadata-read-metadata.obj -MD -MP -MF $(DEPDIR)/read_metadata-read-metadata.Tpo -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/read_metadata-read-metadata.Tpo $(DEPDIR)/read_metadata-read-metadata.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='read-metadata.c' object='read_metadata-read-metadata.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(read_metadata_CFLAGS) $(CFLAGS) -c -o read_metadata-read-metadata.obj `if test -f 'read-metadata.c'; then $(CYGPATH_W) 'read-metadata.c'; else $(CYGPATH_W) '$(srcdir)/read-metadata.c'; fi`
-
-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 $(PROGRAMS)
-installdirs:
-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-noinstPROGRAMS \
-	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-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:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
-	ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/examples/metadata/read-metadata.c b/tests/examples/metadata/read-metadata.c
deleted file mode 100644
index a872289..0000000
--- a/tests/examples/metadata/read-metadata.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/* GStreamer
- * Copyright (C) 2003 Thomas Vander Stichele <thomas@apestaart.org>
- *               2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
- *               2005 Andy Wingo <wingo@pobox.com>
- *               2005 Jan Schmidt <thaytan@mad.scientist.com>
- *
- * gst-metadata.c: Use GStreamer to display metadata within files.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include <string.h>
-#include <stdlib.h>
-#include <locale.h>
-#include <gst/gst.h>
-
-static char *filename = NULL;
-static GstElement *pipeline = NULL;
-static GstElement *source = NULL;
-
-#define NEW_PIPE_PER_FILE
-
-static gboolean
-message_loop (GstElement * element, GstTagList ** tags)
-{
-  GstBus *bus;
-  gboolean done = FALSE;
-
-  bus = gst_element_get_bus (element);
-  g_return_val_if_fail (bus != NULL, FALSE);
-  g_return_val_if_fail (tags != NULL, FALSE);
-
-  while (!done) {
-    GstMessage *message;
-
-    message = gst_bus_pop (bus);
-    if (message == NULL)
-      /* All messages read, we're done */
-      break;
-
-    switch (GST_MESSAGE_TYPE (message)) {
-      case GST_MESSAGE_ERROR:
-      case GST_MESSAGE_EOS:
-        gst_message_unref (message);
-        return TRUE;
-      case GST_MESSAGE_TAG:
-      {
-        GstTagList *new_tags, *old_tags;
-
-        gst_message_parse_tag (message, &new_tags);
-        if (*tags) {
-          old_tags = *tags;
-          *tags = gst_tag_list_merge (old_tags, new_tags, GST_TAG_MERGE_KEEP);
-          gst_tag_list_unref (old_tags);
-        } else
-          *tags = new_tags;
-        break;
-      }
-      default:
-        break;
-    }
-    gst_message_unref (message);
-  }
-  gst_object_unref (bus);
-  return TRUE;
-}
-
-static void
-make_pipeline (void)
-{
-  GstElement *decodebin;
-
-  if (pipeline != NULL)
-    gst_object_unref (pipeline);
-
-  pipeline = gst_pipeline_new (NULL);
-
-  source = gst_element_factory_make ("filesrc", "source");
-  g_assert (GST_IS_ELEMENT (source));
-  decodebin = gst_element_factory_make ("decodebin", "decodebin");
-  g_assert (GST_IS_ELEMENT (decodebin));
-
-  gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL);
-  gst_element_link (source, decodebin);
-}
-
-static void
-print_tag (const GstTagList * list, const gchar * tag, gpointer unused)
-{
-  gint i, count;
-
-  count = gst_tag_list_get_tag_size (list, tag);
-
-  for (i = 0; i < count; i++) {
-    gchar *str;
-
-    if (gst_tag_get_type (tag) == G_TYPE_STRING) {
-      if (!gst_tag_list_get_string_index (list, tag, i, &str))
-        g_assert_not_reached ();
-    } else {
-      str =
-          g_strdup_value_contents (gst_tag_list_get_value_index (list, tag, i));
-    }
-
-    if (i == 0) {
-      g_print ("  %15s: %s\n", gst_tag_get_nick (tag), str);
-    } else {
-      g_print ("                 : %s\n", str);
-    }
-
-    g_free (str);
-  }
-}
-
-int
-main (int argc, char *argv[])
-{
-  guint i = 1;
-
-  setlocale (LC_ALL, "");
-
-  gst_init (&argc, &argv);
-
-  if (argc < 2) {
-    g_print ("Please give filenames to read metadata from\n\n");
-    return 1;
-  }
-
-  make_pipeline ();
-  while (i < argc) {
-    GstStateChangeReturn sret;
-    GstState state;
-    GstTagList *tags = NULL;
-
-    filename = argv[i];
-    g_object_set (source, "location", filename, NULL);
-
-    GST_DEBUG ("Starting reading for %s", filename);
-
-    /* Decodebin will only commit to PAUSED if it actually finds a type;
-     * otherwise the state change fails */
-    sret = gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PAUSED);
-
-    if (GST_STATE_CHANGE_ASYNC == sret) {
-      if (GST_STATE_CHANGE_SUCCESS !=
-          gst_element_get_state (GST_ELEMENT (pipeline), &state, NULL,
-              5 * GST_SECOND)) {
-        g_print ("State change failed for %s. Aborting\n", filename);
-        break;
-      }
-    } else if (sret != GST_STATE_CHANGE_SUCCESS) {
-      g_print ("%s - Could not read file\n", filename);
-      goto next_file;
-    }
-
-    if (!message_loop (GST_ELEMENT (pipeline), &tags)) {
-      g_print ("Failed in message reading for %s\n", argv[i]);
-    }
-
-    if (tags) {
-      g_print ("Metadata for %s:\n", argv[i]);
-      gst_tag_list_foreach (tags, print_tag, NULL);
-      gst_tag_list_unref (tags);
-      tags = NULL;
-    } else
-      g_print ("No metadata found for %s\n", argv[i]);
-
-    sret = gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
-#ifdef NEW_PIPE_PER_FILE
-    if (sret != GST_STATE_CHANGE_SUCCESS) {
-      g_print ("State change failed. Aborting\n");
-      break;
-    }
-#else
-    if (GST_STATE_CHANGE_ASYNC == sret) {
-      if (GST_STATE_CHANGE_FAILURE ==
-          gst_element_get_state (GST_ELEMENT (pipeline), &state, NULL,
-              GST_CLOCK_TIME_NONE)) {
-        g_print ("State change failed. Aborting");
-        break;
-      }
-    } else if (sret != GST_STATE_CHANGE_SUCCESS) {
-      g_print ("State change failed. Aborting\n");
-      break;
-    }
-#endif
-
-  next_file:
-    i++;
-
-#ifdef NEW_PIPE_PER_FILE
-    make_pipeline ();
-#endif
-  }
-
-  if (pipeline)
-    gst_object_unref (pipeline);
-  return 0;
-}
diff --git a/tests/examples/queue/Makefile.am b/tests/examples/queue/Makefile.am
deleted file mode 100644
index 9d66839..0000000
--- a/tests/examples/queue/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-noinst_PROGRAMS = queue
-
-queue_LDADD = $(GST_OBJ_LIBS)
-queue_CFLAGS = $(GST_OBJ_CFLAGS)
-
diff --git a/tests/examples/queue/Makefile.in b/tests/examples/queue/Makefile.in
deleted file mode 100644
index 8ba3beb..0000000
--- a/tests/examples/queue/Makefile.in
+++ /dev/null
@@ -1,791 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-noinst_PROGRAMS = queue$(EXEEXT)
-subdir = tests/examples/queue
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-docbook.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/ax_pthread.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-doc.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-parser.m4 \
-	$(top_srcdir)/common/m4/gst-platform.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/introspection.m4 \
-	$(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/inttypes_h.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/longlong.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)/m4/stdint_h.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-queue_SOURCES = queue.c
-queue_OBJECTS = queue-queue.$(OBJEXT)
-am__DEPENDENCIES_1 =
-queue_DEPENDENCIES = $(am__DEPENDENCIES_1)
-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 = 
-queue_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(queue_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-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 = queue.c
-DIST_SOURCES = queue.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
-BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
-BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
-BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
-BISON_PATH = @BISON_PATH@
-CAT_ENTRY_END = @CAT_ENTRY_END@
-CAT_ENTRY_START = @CAT_ENTRY_START@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
-CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
-CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
-CHECK_VERSION = @CHECK_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DOCBOOK_ROOT = @DOCBOOK_ROOT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FLEX_PATH = @FLEX_PATH@
-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@
-GMP_LIBS = @GMP_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSL_LIBS = @GSL_LIBS@
-GST_AGE = @GST_AGE@
-GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
-GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_ALL_LIBS = @GST_ALL_LIBS@
-GST_API_VERSION = @GST_API_VERSION@
-GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
-GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
-GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
-GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
-GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
-GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
-GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
-GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
-GST_OBJ_LIBS = @GST_OBJ_LIBS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
-GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
-GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
-GST_REVISION = @GST_REVISION@
-GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
-GST_VERSION_MICRO = @GST_VERSION_MICRO@
-GST_VERSION_MINOR = @GST_VERSION_MINOR@
-GST_VERSION_NANO = @GST_VERSION_NANO@
-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_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
-HAVE_DVIPS = @HAVE_DVIPS@
-HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
-HAVE_FORK = @HAVE_FORK@
-HAVE_GMP = @HAVE_GMP@
-HAVE_GSL = @HAVE_GSL@
-HAVE_JADETEX = @HAVE_JADETEX@
-HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
-HAVE_PNMTOPS = @HAVE_PNMTOPS@
-HAVE_PS2PDF = @HAVE_PS2PDF@
-HAVE_XMLLINT = @HAVE_XMLLINT@
-HAVE_XSLTPROC = @HAVE_XSLTPROC@
-HOST_CPU = @HOST_CPU@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDIR = @LIBDIR@
-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@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-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@
-PERL_PATH = @PERL_PATH@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PRINTF_CFLAGS = @PRINTF_CFLAGS@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PTHREAD_CC = @PTHREAD_CC@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-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@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XML_CATALOG = @XML_CATALOG@
-XSLTPROC = @XSLTPROC@
-XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
-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@
-ax_pthread_config = @ax_pthread_config@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-queue_LDADD = $(GST_OBJ_LIBS)
-queue_CFLAGS = $(GST_OBJ_CFLAGS)
-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 tests/examples/queue/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu tests/examples/queue/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-queue$(EXEEXT): $(queue_OBJECTS) $(queue_DEPENDENCIES) $(EXTRA_queue_DEPENDENCIES) 
-	@rm -f queue$(EXEEXT)
-	$(AM_V_CCLD)$(queue_LINK) $(queue_OBJECTS) $(queue_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue-queue.Po@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 $@ $<
-
-queue-queue.o: queue.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -MT queue-queue.o -MD -MP -MF $(DEPDIR)/queue-queue.Tpo -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue-queue.Tpo $(DEPDIR)/queue-queue.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='queue.c' object='queue-queue.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.o `test -f 'queue.c' || echo '$(srcdir)/'`queue.c
-
-queue-queue.obj: queue.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -MT queue-queue.obj -MD -MP -MF $(DEPDIR)/queue-queue.Tpo -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queue-queue.Tpo $(DEPDIR)/queue-queue.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='queue.c' object='queue-queue.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(queue_CFLAGS) $(CFLAGS) -c -o queue-queue.obj `if test -f 'queue.c'; then $(CYGPATH_W) 'queue.c'; else $(CYGPATH_W) '$(srcdir)/queue.c'; fi`
-
-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 $(PROGRAMS)
-installdirs:
-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-noinstPROGRAMS \
-	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-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:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
-	ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/examples/queue/queue.c b/tests/examples/queue/queue.c
deleted file mode 100644
index 27ca94e..0000000
--- a/tests/examples/queue/queue.c
+++ /dev/null
@@ -1,106 +0,0 @@
-#include <stdlib.h>
-#include <gst/gst.h>
-
-/* This example uses the queue element to create a buffer between 2 elements.
- * The scheduler automatically uses 2 threads, 1 to feed and another to consume
- * data from the queue buffer
- */
-
-/* Event loop to listen to events posted on the GstBus from the pipeline. Exits
- * on EOS or ERROR events
- */
-static void
-event_loop (GstElement * pipe)
-{
-  GstBus *bus;
-  GstMessage *message = NULL;
-  gboolean running = TRUE;
-
-  bus = gst_element_get_bus (GST_ELEMENT (pipe));
-
-  while (running) {
-    message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
-
-    g_assert (message != NULL);
-
-    switch (message->type) {
-      case GST_MESSAGE_EOS:
-        running = FALSE;
-        break;
-      case GST_MESSAGE_WARNING:{
-        GError *gerror;
-        gchar *debug;
-
-        gst_message_parse_warning (message, &gerror, &debug);
-        gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-        g_error_free (gerror);
-        g_free (debug);
-        break;
-      }
-      case GST_MESSAGE_ERROR:{
-        GError *gerror;
-        gchar *debug;
-
-        gst_message_parse_error (message, &gerror, &debug);
-        gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-        g_error_free (gerror);
-        g_free (debug);
-        running = FALSE;
-        break;
-      }
-      default:
-        break;
-    }
-    gst_message_unref (message);
-  }
-  gst_object_unref (bus);
-}
-
-int
-main (int argc, char *argv[])
-{
-  GstElement *filesrc, *audiosink, *decode, *queue;
-  GstElement *pipeline;
-
-  gst_init (&argc, &argv);
-
-  if (argc != 2) {
-    g_print ("usage: %s <filename>\n", argv[0]);
-    exit (-1);
-  }
-
-  /* create a new pipeline to hold the elements */
-  pipeline = gst_pipeline_new ("pipeline");
-  g_assert (pipeline != NULL);
-
-  /* create a disk reader */
-  filesrc = gst_element_factory_make ("filesrc", "disk_source");
-  g_assert (filesrc != NULL);
-  g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
-
-  decode = gst_element_factory_make ("mad", "decode");
-  g_assert (decode != NULL);
-
-  queue = gst_element_factory_make ("queue", "queue");
-  g_assert (queue != NULL);
-
-  /* and an audio sink */
-  audiosink = gst_element_factory_make ("alsasink", "play_audio");
-  g_assert (audiosink != NULL);
-
-  /* add objects to the main pipeline */
-  gst_bin_add_many (GST_BIN (pipeline), filesrc, decode, queue, audiosink,
-      NULL);
-
-  gst_element_link_many (filesrc, decode, queue, audiosink, NULL);
-
-  /* start playing */
-  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
-
-  /* Listen for EOS */
-  event_loop (pipeline);
-
-  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
-
-  exit (0);
-}
diff --git a/tests/examples/typefind/Makefile.am b/tests/examples/typefind/Makefile.am
deleted file mode 100644
index cc99802..0000000
--- a/tests/examples/typefind/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-noinst_PROGRAMS = typefind
-
-typefind_LDADD = $(GST_OBJ_LIBS)
-typefind_CFLAGS = $(GST_OBJ_CFLAGS)
-
diff --git a/tests/examples/typefind/Makefile.in b/tests/examples/typefind/Makefile.in
deleted file mode 100644
index 8909f27..0000000
--- a/tests/examples/typefind/Makefile.in
+++ /dev/null
@@ -1,791 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-noinst_PROGRAMS = typefind$(EXEEXT)
-subdir = tests/examples/typefind
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
-	$(top_srcdir)/common/m4/as-auto-alt.m4 \
-	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
-	$(top_srcdir)/common/m4/as-docbook.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/ax_pthread.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-doc.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-parser.m4 \
-	$(top_srcdir)/common/m4/gst-platform.m4 \
-	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
-	$(top_srcdir)/common/m4/gst-plugindir.m4 \
-	$(top_srcdir)/common/m4/gst.m4 \
-	$(top_srcdir)/common/m4/gtk-doc.m4 \
-	$(top_srcdir)/common/m4/introspection.m4 \
-	$(top_srcdir)/common/m4/pkg.m4 \
-	$(top_srcdir)/m4/check-checks.m4 $(top_srcdir)/m4/gettext.m4 \
-	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
-	$(top_srcdir)/m4/inttypes_h.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/longlong.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)/m4/stdint_h.m4 \
-	$(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-typefind_SOURCES = typefind.c
-typefind_OBJECTS = typefind-typefind.$(OBJEXT)
-am__DEPENDENCIES_1 =
-typefind_DEPENDENCIES = $(am__DEPENDENCIES_1)
-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 = 
-typefind_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(typefind_CFLAGS) \
-	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-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 = typefind.c
-DIST_SOURCES = typefind.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AS = @AS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BASH_COMPLETION_CFLAGS = @BASH_COMPLETION_CFLAGS@
-BASH_COMPLETION_DIR = @BASH_COMPLETION_DIR@
-BASH_COMPLETION_LIBS = @BASH_COMPLETION_LIBS@
-BASH_HELPERS_DIR = @BASH_HELPERS_DIR@
-BISON_PATH = @BISON_PATH@
-CAT_ENTRY_END = @CAT_ENTRY_END@
-CAT_ENTRY_START = @CAT_ENTRY_START@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_MAJOR_VERSION = @CHECK_MAJOR_VERSION@
-CHECK_MICRO_VERSION = @CHECK_MICRO_VERSION@
-CHECK_MINOR_VERSION = @CHECK_MINOR_VERSION@
-CHECK_VERSION = @CHECK_VERSION@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIR = @DATADIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
-DLLTOOL = @DLLTOOL@
-DOCBOOK_ROOT = @DOCBOOK_ROOT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_SUBUNIT = @ENABLE_SUBUNIT@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXEEXT = @EXEEXT@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-FLEX_PATH = @FLEX_PATH@
-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@
-GMP_LIBS = @GMP_LIBS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GREP = @GREP@
-GSL_LIBS = @GSL_LIBS@
-GST_AGE = @GST_AGE@
-GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
-GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
-GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
-GST_ALL_LIBS = @GST_ALL_LIBS@
-GST_API_VERSION = @GST_API_VERSION@
-GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
-GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
-GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
-GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
-GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
-GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
-GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
-GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
-GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
-GST_LIBVERSION = @GST_LIBVERSION@
-GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
-GST_LICENSE = @GST_LICENSE@
-GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
-GST_OBJ_CFLAGS = @GST_OBJ_CFLAGS@
-GST_OBJ_CXXFLAGS = @GST_OBJ_CXXFLAGS@
-GST_OBJ_LIBS = @GST_OBJ_LIBS@
-GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
-GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
-GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
-GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
-GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
-GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
-GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
-GST_REVISION = @GST_REVISION@
-GST_VERSION_MAJOR = @GST_VERSION_MAJOR@
-GST_VERSION_MICRO = @GST_VERSION_MICRO@
-GST_VERSION_MINOR = @GST_VERSION_MINOR@
-GST_VERSION_NANO = @GST_VERSION_NANO@
-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_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
-HAVE_DVIPS = @HAVE_DVIPS@
-HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
-HAVE_FORK = @HAVE_FORK@
-HAVE_GMP = @HAVE_GMP@
-HAVE_GSL = @HAVE_GSL@
-HAVE_JADETEX = @HAVE_JADETEX@
-HAVE_PNGTOPNM = @HAVE_PNGTOPNM@
-HAVE_PNMTOPS = @HAVE_PNMTOPS@
-HAVE_PS2PDF = @HAVE_PS2PDF@
-HAVE_XMLLINT = @HAVE_XMLLINT@
-HAVE_XSLTPROC = @HAVE_XSLTPROC@
-HOST_CPU = @HOST_CPU@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDIR = @LIBDIR@
-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@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-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@
-PERL_PATH = @PERL_PATH@
-PKG_CONFIG = @PKG_CONFIG@
-PLUGINDIR = @PLUGINDIR@
-POSUB = @POSUB@
-PRINTF_CFLAGS = @PRINTF_CFLAGS@
-PROFILE_CFLAGS = @PROFILE_CFLAGS@
-PTHREAD_CC = @PTHREAD_CC@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-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@
-STRIP = @STRIP@
-USE_NLS = @USE_NLS@
-VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
-VALGRIND_LIBS = @VALGRIND_LIBS@
-VALGRIND_PATH = @VALGRIND_PATH@
-VERSION = @VERSION@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-WIN32_LIBS = @WIN32_LIBS@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-XML_CATALOG = @XML_CATALOG@
-XSLTPROC = @XSLTPROC@
-XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
-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@
-ax_pthread_config = @ax_pthread_config@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-plugindir = @plugindir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-typefind_LDADD = $(GST_OBJ_LIBS)
-typefind_CFLAGS = $(GST_OBJ_CFLAGS)
-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 tests/examples/typefind/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu tests/examples/typefind/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-typefind$(EXEEXT): $(typefind_OBJECTS) $(typefind_DEPENDENCIES) $(EXTRA_typefind_DEPENDENCIES) 
-	@rm -f typefind$(EXEEXT)
-	$(AM_V_CCLD)$(typefind_LINK) $(typefind_OBJECTS) $(typefind_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/typefind-typefind.Po@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 $@ $<
-
-typefind-typefind.o: typefind.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -MT typefind-typefind.o -MD -MP -MF $(DEPDIR)/typefind-typefind.Tpo -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/typefind-typefind.Tpo $(DEPDIR)/typefind-typefind.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='typefind.c' object='typefind-typefind.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.o `test -f 'typefind.c' || echo '$(srcdir)/'`typefind.c
-
-typefind-typefind.obj: typefind.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -MT typefind-typefind.obj -MD -MP -MF $(DEPDIR)/typefind-typefind.Tpo -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/typefind-typefind.Tpo $(DEPDIR)/typefind-typefind.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='typefind.c' object='typefind-typefind.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(typefind_CFLAGS) $(CFLAGS) -c -o typefind-typefind.obj `if test -f 'typefind.c'; then $(CYGPATH_W) 'typefind.c'; else $(CYGPATH_W) '$(srcdir)/typefind.c'; fi`
-
-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 $(PROGRAMS)
-installdirs:
-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-noinstPROGRAMS \
-	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-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:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
-	ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/examples/typefind/typefind.c b/tests/examples/typefind/typefind.c
deleted file mode 100644
index d9576a4..0000000
--- a/tests/examples/typefind/typefind.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* GStreamer typefind element example
- * Copyright (C) <2005> Stefan Kost
- * Copyright (C) <2006> Tim-Philipp Müller
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include <gst/gst.h>
-
-#include <stdlib.h>
-
-static void
-type_found (GstElement * typefind, guint probability, const GstCaps * caps,
-    gpointer user_data)
-{
-  gchar *xml, *caps_str;
-
-  caps_str = gst_caps_to_string (caps);
-  xml = g_markup_printf_escaped ("<?xml version=\"1.0\"?>\n<Capabilities>\n"
-      " <Caps1>%s</Caps1>\n</Capabilities>", caps_str);
-  g_free (caps_str);
-
-  g_print ("%s\n", xml);
-  g_free (xml);
-}
-
-static void
-event_loop (GstElement * pipe)
-{
-  GstBus *bus;
-  GstMessage *message = NULL;
-  gboolean running = TRUE;
-
-  bus = gst_element_get_bus (GST_ELEMENT (pipe));
-
-  while (running) {
-    message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
-
-    g_assert (message != NULL);
-
-    switch (message->type) {
-      case GST_MESSAGE_EOS:
-        running = FALSE;
-        break;
-      case GST_MESSAGE_WARNING:{
-        GError *gerror;
-        gchar *debug;
-
-        gst_message_parse_warning (message, &gerror, &debug);
-        gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-        g_error_free (gerror);
-        g_free (debug);
-        break;
-      }
-      case GST_MESSAGE_ERROR:{
-        GError *gerror;
-        gchar *debug;
-
-        gst_message_parse_error (message, &gerror, &debug);
-        gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-        g_error_free (gerror);
-        g_free (debug);
-        running = FALSE;
-        break;
-      }
-      default:
-        break;
-    }
-    gst_message_unref (message);
-  }
-  gst_object_unref (bus);
-}
-
-int
-main (int argc, char *argv[])
-{
-  GstElement *pipeline, *filesrc, *typefind, *sink;
-
-  gst_init (&argc, &argv);
-
-  if (argc != 2) {
-    g_print ("usage: %s <filename>\n", argv[0]);
-    exit (-1);
-  }
-
-  /* create a new pipeline to hold the elements */
-  pipeline = gst_pipeline_new ("pipeline");
-  g_assert (pipeline != NULL);
-
-  /* create a file reader */
-  filesrc = gst_element_factory_make ("filesrc", "file_source");
-  g_assert (filesrc != NULL);
-  g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
-
-  typefind = gst_element_factory_make ("typefind", "typefind");
-  g_assert (typefind != NULL);
-
-  sink = gst_element_factory_make ("fakesink", "sink");
-  g_assert (sink != NULL);
-
-  /* add objects to the main pipeline */
-  gst_bin_add (GST_BIN (pipeline), filesrc);
-  gst_bin_add (GST_BIN (pipeline), typefind);
-  gst_bin_add (GST_BIN (pipeline), sink);
-
-  g_signal_connect (G_OBJECT (typefind), "have-type",
-      G_CALLBACK (type_found), NULL);
-
-  gst_element_link_many (filesrc, typefind, sink, NULL);
-
-  /* start playing */
-  gst_element_set_state (pipeline, GST_STATE_PLAYING);
-
-  /* Run event loop listening for bus messages until EOS or ERROR */
-  event_loop (pipeline);
-
-  /* stop the bin */
-  gst_element_set_state (pipeline, GST_STATE_NULL);
-  gst_object_unref (pipeline);
-
-  exit (0);
-}
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 08bdace..46f814d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -19,21 +19,6 @@
 gst_launch_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
 endif
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:EXECUTABLE gst-inspect-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:SOURCES $(gst_inspect_@GST_API_VERSION@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) \
-	 -:LDFLAGS $(gst_inspect_@GST_API_VERSION@_LDADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	 -:EXECUTABLE gst-launch-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:SOURCES $(gst_launch_@GST_API_VERSION@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_launch_@GST_API_VERSION@_CFLAGS) \
-	 -:LDFLAGS $(gst_launch_@GST_API_VERSION@_LDADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 manpages = \
 	gst-inspect-@GST_API_VERSION@.1 \
 	gst-typefind-@GST_API_VERSION@.1
diff --git a/tools/Makefile.in b/tools/Makefile.in
index eeb12e9..f9716ae 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -999,21 +999,6 @@
 	uninstall-binPROGRAMS uninstall-man uninstall-man1
 
 
-Android.mk: Makefile.am
-	androgenizer -:PROJECT gstreamer \
-	 -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-	 -:EXECUTABLE gst-inspect-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:SOURCES $(gst_inspect_@GST_API_VERSION@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_inspect_@GST_API_VERSION@_CFLAGS) \
-	 -:LDFLAGS $(gst_inspect_@GST_API_VERSION@_LDADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	 -:EXECUTABLE gst-launch-@GST_API_VERSION@ -:TAGS eng debug \
-	 -:SOURCES $(gst_launch_@GST_API_VERSION@_SOURCES) \
-	 -:CFLAGS $(DEFS) $(gst_launch_@GST_API_VERSION@_CFLAGS) \
-	 -:LDFLAGS $(gst_launch_@GST_API_VERSION@_LDADD) \
-	 -:PASSTHROUGH LOCAL_ARM_MODE:=arm \
-	> $@
-
 %-@GST_API_VERSION@.1: %.1.in
 	$(AM_V_GEN)sed \
 		-e s,gst-inspect,gst-inspect-@GST_API_VERSION@,g \
diff --git a/win32/common/libgstbase.def b/win32/common/libgstbase.def
index 1767f67..2b067b9 100644
--- a/win32/common/libgstbase.def
+++ b/win32/common/libgstbase.def
@@ -103,6 +103,7 @@
 	gst_base_transform_set_prefer_passthrough
 	gst_base_transform_set_qos_enabled
 	gst_base_transform_update_qos
+	gst_base_transform_update_src_caps
 	gst_bit_reader_free
 	gst_bit_reader_get_bits_uint16
 	gst_bit_reader_get_bits_uint32
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index 22acb9d..63486b6 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -112,6 +112,7 @@
 	gst_bin_sync_children_states
 	gst_bitmask_get_type
 	gst_buffer_add_meta
+	gst_buffer_add_protection_meta
 	gst_buffer_append
 	gst_buffer_append_memory
 	gst_buffer_append_region
@@ -559,6 +560,7 @@
 	gst_event_new_gap
 	gst_event_new_latency
 	gst_event_new_navigation
+	gst_event_new_protection
 	gst_event_new_qos
 	gst_event_new_reconfigure
 	gst_event_new_seek
@@ -576,6 +578,7 @@
 	gst_event_parse_gap
 	gst_event_parse_group_id
 	gst_event_parse_latency
+	gst_event_parse_protection
 	gst_event_parse_qos
 	gst_event_parse_seek
 	gst_event_parse_segment
@@ -912,6 +915,7 @@
 	gst_pipeline_get_bus
 	gst_pipeline_get_clock
 	gst_pipeline_get_delay
+	gst_pipeline_get_pipeline_clock
 	gst_pipeline_get_type
 	gst_pipeline_new
 	gst_pipeline_set_auto_flush_bus
@@ -987,6 +991,9 @@
 	gst_preset_set_app_dir
 	gst_preset_set_meta
 	gst_progress_type_get_type
+	gst_protection_meta_api_get_type
+	gst_protection_meta_get_info
+	gst_protection_select_system
 	gst_proxy_pad_chain_default
 	gst_proxy_pad_chain_list_default
 	gst_proxy_pad_get_internal
@@ -1122,11 +1129,13 @@
 	gst_segment_free
 	gst_segment_get_type
 	gst_segment_init
+	gst_segment_is_equal
 	gst_segment_new
 	gst_segment_offset_running_time
 	gst_segment_set_running_time
 	gst_segment_to_position
 	gst_segment_to_running_time
+	gst_segment_to_running_time_full
 	gst_segment_to_stream_time
 	gst_segtrap_is_enabled
 	gst_segtrap_set_enabled
