diff --git a/Makefile.am b/Makefile.am
index 671aec1..c8fe12a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,12 +7,16 @@
 aclocal_DATA = gst-element-check-@GST_API_VERSION@.m4
 
 SUBDIRS = pkgconfig \
-	gst libs plugins tools tests \
+	gst libs plugins tests \
 	docs \
 	po \
 	m4 \
 	common
 
+if BUILD_TOOLS
+SUBDIRS += tools
+endif
+
 # These are all the possible subdirs
 DIST_SUBDIRS = pkgconfig \
 	gst libs plugins tools tests \
diff --git a/Makefile.in b/Makefile.in
index 4c28bc0..3ec513f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -63,6 +63,7 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
+@BUILD_TOOLS_TRUE@am__append_1 = tools
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
 	$(srcdir)/gst-element-check.m4.in $(srcdir)/gstreamer.spec.in \
@@ -274,7 +275,9 @@
 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@
@@ -492,13 +495,8 @@
 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 tools tests \
-	docs \
-	po \
-	m4 \
-	common
-
+SUBDIRS = pkgconfig gst libs plugins tests docs po m4 common \
+	$(am__append_1)
 
 # These are all the possible subdirs
 DIST_SUBDIRS = pkgconfig \
@@ -932,7 +930,7 @@
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	chmod -R a-w $(distdir); chmod u+w $(distdir)
 	mkdir $(distdir)/_build
 	mkdir $(distdir)/_inst
 	chmod a-w $(distdir)
diff --git a/aclocal.m4 b/aclocal.m4
index 75ce02c..f989769 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
@@ -38,7 +38,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.5], [],
+m4_if([$1], [1.11.6], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -54,7 +54,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.5])dnl
+[AM_AUTOMAKE_VERSION([1.11.6])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/common/Makefile.in b/common/Makefile.in
index 2e793ef..27dd5e0 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -207,7 +207,9 @@
 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@
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index d2580d9..ac9f419 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -167,7 +167,9 @@
 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@
diff --git a/common/m4/gst-arch.m4 b/common/m4/gst-arch.m4
index ff0954a..077a20b 100644
--- a/common/m4/gst-arch.m4
+++ b/common/m4/gst-arch.m4
@@ -5,9 +5,6 @@
 
 AC_DEFUN([AG_GST_ARCH],
 [
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use host_ variables
-  AC_REQUIRE([AC_CANONICAL_TARGET]) dnl we use target_ variables
-
   dnl Determine CPU
   case "x${target_cpu}" in
     xi?86 | xk? | xi?86_64)
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index b141bee..3f3d565 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -68,6 +68,44 @@
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_ASSERT"
   fi
 
+  dnl Find location of glib utils. People may want to or have to override these,
+  dnl e.g. in a cross-compile situation where PATH is a bit messed up. We need
+  dnl for these tools to work on the host, so can't just use the one from the
+  dnl GLib installation that pkg-config picks up, as that might be for a
+  dnl different target architecture.
+  dnl
+  dnl glib-genmarshal:
+  AC_MSG_CHECKING(for glib-genmarshal)
+  if test "x$GLIB_GENMARSHAL" != "x"; then
+    AC_MSG_RESULT([$GLIB_GENMARSHAL (from environment)])
+  else
+    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+    if $GLIB_GENMARSHAL --version 2>/dev/null >/dev/null; then
+      AC_MSG_RESULT([$GLIB_GENMARSHAL (from pkg-config path)])
+    else
+      AC_PATH_PROG(GLIB_GENMARSHAL, [glib-genmarshal], [glib-genmarshal])
+      AC_MSG_RESULT([$GLIB_GENMARSHAL])
+    fi
+  fi
+  if ! $GLIB_GENMARSHAL --version 2>/dev/null >/dev/null; then
+    AC_MSG_WARN([$GLIB_GENMARSHAL does not seem to work!])
+  fi
+  AC_SUBST(GLIB_GENMARSHAL)
+
+  dnl glib-mkenums:
+  AC_MSG_CHECKING(for glib-mkenums)
+  if test "x$GLIB_MKENUMS" != "x"; then
+    AC_MSG_RESULT([$GLIB_MKENUMS (from environment)])
+  else
+    dnl glib-mkenums is written in perl so should always work really
+    GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+    AC_MSG_RESULT([$GLIB_MKENUMS])
+  fi
+  if ! $GLIB_MKENUMS --version 2>/dev/null >/dev/null; then
+    AC_MSG_WARN([$GLIB_MKENUMS does not seem to work!])
+  fi
+  AC_SUBST(GLIB_MKENUMS)
+
   dnl for the poor souls who for example have glib in /usr/local
   AS_SCRUB_INCLUDE(GLIB_CFLAGS)
 
diff --git a/common/m4/gst-parser.m4 b/common/m4/gst-parser.m4
index 2cae45d..710da89 100644
--- a/common/m4/gst-parser.m4
+++ b/common/m4/gst-parser.m4
@@ -34,7 +34,7 @@
   dnl we need version >= 2.5.31 for the reentrancy support
   dnl in the parser.
   flex_min_version=2.5.31
-  flex_version=`$FLEX_PATH --version | head -n 1 | sed 's/^.* //' | sed 's/[[a-zA-Z]]*$//' | cut -d' ' -f1`
+  flex_version=`$FLEX_PATH --version | head -n 1 | awk '{print $2}'`
   AC_MSG_CHECKING([flex version $flex_version >= $flex_min_version])
   if perl -w <<EOF
     (\$min_version_major, \$min_version_minor, \$min_version_micro ) = "$flex_min_version" =~ /(\d+)\.(\d+)\.(\d+)/;
diff --git a/common/m4/gst.m4 b/common/m4/gst.m4
index ddfde51..d4c53cb 100644
--- a/common/m4/gst.m4
+++ b/common/m4/gst.m4
@@ -3,10 +3,15 @@
 dnl all GStreamer autoconf macros are prefixed
 dnl with AG_GST_ for public macros
 dnl with _AG_GST_ for private macros
+dnl
+dnl We call AC_CANONICAL_TARGET and AC_CANONICAL_HOST so that
+dnl it is valid before AC_ARG_PROGRAM is called
 
 AC_DEFUN([AG_GST_INIT],
 [
   m4_pattern_forbid(^_?AG_GST_)
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use host_ variables
+  AC_REQUIRE([AC_CANONICAL_TARGET]) dnl we use target_ variables
 ])
 
 dnl AG_GST_PKG_CONFIG_PATH
diff --git a/compile b/compile
index b1f4749..862a14e 100755
--- a/compile
+++ b/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-01-04.17; # UTC
+scriptversion=2012-03-05.13; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
 # Software Foundation, Inc.
@@ -79,6 +79,48 @@
   esac
 }
 
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -109,43 +151,34 @@
 	      ;;
 	  esac
 	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
 	-I*)
 	  func_file_conv "${1#-I}" mingw
 	  set x "$@" -I"$file"
 	  shift
 	  ;;
-	-l*)
-	  lib=${1#-l}
-	  found=no
-	  save_IFS=$IFS
-	  IFS=';'
-	  for dir in $lib_path $LIB
-	  do
-	    IFS=$save_IFS
-	    if $shared && test -f "$dir/$lib.dll.lib"; then
-	      found=yes
-	      set x "$@" "$dir/$lib.dll.lib"
-	      break
-	    fi
-	    if test -f "$dir/$lib.lib"; then
-	      found=yes
-	      set x "$@" "$dir/$lib.lib"
-	      break
-	    fi
-	  done
-	  IFS=$save_IFS
-
-	  test "$found" != yes && set x "$@" "$lib.lib"
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
 	  shift
 	  ;;
+	-l*)
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
 	-L*)
-	  func_file_conv "${1#-L}"
-	  if test -z "$lib_path"; then
-	    lib_path=$file
-	  else
-	    lib_path="$lib_path;$file"
-	  fi
-	  linker_opts="$linker_opts -LIBPATH:$file"
+	  func_cl_dashL "${1#-L}"
 	  ;;
 	-static)
 	  shared=false
diff --git a/config.h.in b/config.h.in
index 43b0e35..514bd9d 100644
--- a/config.h.in
+++ b/config.h.in
@@ -184,6 +184,9 @@
 /* Define to 1 if you have the `poll' function. */
 #undef HAVE_POLL
 
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
 /* Define to 1 if you have the `posix_memalign' function. */
 #undef HAVE_POSIX_MEMALIGN
 
diff --git a/config.sub b/config.sub
index c894da4..6205f84 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #   2011, 2012 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2012-04-18'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -225,6 +225,12 @@
 	-isc*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
 	-lynx*)
 		os=-lynxos
 		;;
@@ -1537,6 +1543,9 @@
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	hexagon-*)
+		os=-elf
+		;;
 	tic54x-*)
 		os=-coff
 		;;
diff --git a/configure b/configure
index 19506a2..461b2e7 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer 0.11.92.
+# Generated by GNU Autoconf 2.69 for GStreamer 0.11.93.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer'
 PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='0.11.92'
-PACKAGE_STRING='GStreamer 0.11.92'
+PACKAGE_VERSION='0.11.93'
+PACKAGE_STRING='GStreamer 0.11.93'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -676,6 +676,8 @@
 GIO_LIBS
 GIO_CFLAGS
 GLIB_EXTRA_CFLAGS
+GLIB_MKENUMS
+GLIB_GENMARSHAL
 GLIB_LIBS
 GLIB_CFLAGS
 GLIB_REQ
@@ -813,10 +815,10 @@
 HAVE_CPU_PPC_TRUE
 HAVE_CPU_I386_FALSE
 HAVE_CPU_I386_TRUE
-target_os
-target_vendor
-target_cpu
-target
+BUILD_TOOLS_FALSE
+BUILD_TOOLS_TRUE
+BUILD_BENCHMARKS_FALSE
+BUILD_BENCHMARKS_TRUE
 BUILD_FAILING_TESTS_FALSE
 BUILD_FAILING_TESTS_TRUE
 BUILD_TESTS_FALSE
@@ -933,14 +935,6 @@
 AM_DEFAULT_VERBOSITY
 AM_DEFAULT_V
 AM_V
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
@@ -972,6 +966,18 @@
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
 target_alias
 host_alias
 build_alias
@@ -1049,6 +1055,8 @@
 with_package_origin
 enable_tests
 enable_failing_tests
+enable_benchmarks
+enable_tools
 enable_poisoning
 enable_largefile
 enable_introspection
@@ -1627,7 +1635,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer 0.11.92 to adapt to many kinds of systems.
+\`configure' configures GStreamer 0.11.93 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1698,7 +1706,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer 0.11.92:";;
+     short | recursive ) echo "Configuration of GStreamer 0.11.93:";;
    esac
   cat <<\_ACEOF
 
@@ -1737,6 +1745,8 @@
   --disable-examples      disable building examples
   --disable-tests         disable building test apps
   --disable-failing-tests disable building tests known to fail
+  --disable-benchmarks    disable building benchmarks apps
+  --disable-tools         disable building tools
   --enable-poisoning      enable poisoning of deallocated objects
   --disable-largefile     omit support for large files
   --enable-introspection=[no/auto/yes]
@@ -1873,7 +1883,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer configure 0.11.92
+GStreamer configure 0.11.93
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2646,7 +2656,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer $as_me 0.11.92, which was
+It was created by GStreamer $as_me 0.11.93, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2998,12 +3008,6 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-
-
-
-
-am__api_version='1.11'
-
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   if test -f "$ac_dir/install-sh"; then
@@ -3033,6 +3037,122 @@
 ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
+else
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+
+
+
+am__api_version='1.11'
+
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
@@ -3469,7 +3589,7 @@
 
 # Define the identity of the package.
  PACKAGE='gstreamer'
- VERSION='0.11.92'
+ VERSION='0.11.93'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3592,9 +3712,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 0.11.92 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 0.11.92 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 0.11.92 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 0.11.93 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 0.11.93 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 0.11.93 | cut -d'.' -f3)
 
 
 
@@ -3605,7 +3725,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 0.11.92 | cut -d'.' -f4)
+  NANO=$(echo 0.11.93 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -3657,76 +3777,6 @@
 
 
 
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
 
 
 # Check whether --enable-silent-rules was given.
@@ -5978,10 +6028,6 @@
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -6020,7 +6066,7 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -9258,7 +9304,7 @@
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -11428,17 +11474,6 @@
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -11555,7 +11590,7 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -15495,6 +15530,48 @@
 $as_echo "$as_me: WARNING: Sissy ! By asking to not build the tests known to fail, you hereby waive your right to customer support.  If you do not agree with this EULA, please press Ctrl-C before the next line is printed.  By allowing the next line to be printed, you expressly acknowledge your acceptance of this EULA." >&2;}
 fi
 
+# Check whether --enable-benchmarks was given.
+if test "${enable_benchmarks+set}" = set; then :
+  enableval=$enable_benchmarks;
+    case "${enableval}" in
+      yes) BUILD_BENCHMARKS=yes ;;
+      no)  BUILD_BENCHMARKS=no ;;
+      *)   as_fn_error $? "bad value ${enableval} for --disable-benchmarks" "$LINENO" 5 ;;
+    esac
+
+else
+  BUILD_BENCHMARKS=yes
+fi
+  if test "x$BUILD_BENCHMARKS" = "xyes"; then
+  BUILD_BENCHMARKS_TRUE=
+  BUILD_BENCHMARKS_FALSE='#'
+else
+  BUILD_BENCHMARKS_TRUE='#'
+  BUILD_BENCHMARKS_FALSE=
+fi
+
+
+# Check whether --enable-tools was given.
+if test "${enable_tools+set}" = set; then :
+  enableval=$enable_tools;
+    case "${enableval}" in
+      yes) BUILD_TOOLS=yes ;;
+      no)  BUILD_TOOLS=no ;;
+      *)   as_fn_error $? "bad value ${enableval} for --disable-tools" "$LINENO" 5 ;;
+    esac
+
+else
+  BUILD_TOOLS=yes
+fi
+  if test "x$BUILD_TOOLS" = "xyes"; then
+  BUILD_TOOLS_TRUE=
+  BUILD_TOOLS_FALSE='#'
+else
+  BUILD_TOOLS_TRUE='#'
+  BUILD_TOOLS_FALSE=
+fi
+
+
 # Check whether --enable-poisoning was given.
 if test "${enable_poisoning+set}" = set; then :
   enableval=$enable_poisoning;
@@ -15515,46 +15592,6 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
-$as_echo_n "checking target system type... " >&6; }
-if ${ac_cv_target+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$target_alias" = x; then
-  ac_cv_target=$ac_cv_host
-else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
-$as_echo "$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-
 
     case "x${target_cpu}" in
     xi?86 | xk? | xi?86_64)
@@ -18804,9 +18841,6 @@
         ld_shlibs_CXX=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
         link_all_deplibs_CXX=yes
@@ -18968,7 +19002,7 @@
         inherit_rpath_CXX=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
@@ -19828,7 +19862,7 @@
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -20700,17 +20734,6 @@
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -20827,7 +20850,7 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -21400,7 +21423,7 @@
   fi
 
         flex_min_version=2.5.31
-  flex_version=`$FLEX_PATH --version | head -n 1 | sed 's/^.* //' | sed 's/[a-zA-Z]*$//' | cut -d' ' -f1`
+  flex_version=`$FLEX_PATH --version | head -n 1 | awk '{print }'`
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking flex version $flex_version >= $flex_min_version" >&5
 $as_echo_n "checking flex version $flex_version >= $flex_min_version... " >&6; }
   if perl -w <<EOF
@@ -22994,7 +23017,8 @@
 
 for ac_header in ucontext.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_ucontext_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_UCONTEXT_H 1
@@ -23007,12 +23031,15 @@
 
 for ac_header in sys/socket.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_sys_socket_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_SOCKET_H 1
 _ACEOF
  HAVE_SYS_SOCKET_H=yes
+else
+  HAVE_SYS_SOCKET_H=no
 fi
 
 done
@@ -23028,24 +23055,30 @@
 
 for ac_header in sys/times.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/times.h" "ac_cv_header_sys_times_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "sys/times.h" "ac_cv_header_sys_times_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_sys_times_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_TIMES_H 1
 _ACEOF
  HAVE_SYS_TIMES_H=yes
+else
+  HAVE_SYS_TIME_H=no
 fi
 
 done
 
 for ac_header in unistd.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_unistd_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_UNISTD_H 1
 _ACEOF
  HAVE_UNISTD_H=yes
+else
+  HAVE_UNISTD_H=no
 fi
 
 done
@@ -23061,7 +23094,8 @@
 
 for ac_header in process.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "process.h" "ac_cv_header_process_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "process.h" "ac_cv_header_process_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_process_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PROCESS_H 1
@@ -23074,7 +23108,8 @@
 
 for ac_header in sys/utsname.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_sys_utsname_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_UTSNAME_H 1
@@ -23087,7 +23122,8 @@
 
 for ac_header in stdio_ext.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdio_ext.h" "ac_cv_header_stdio_ext_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "stdio_ext.h" "ac_cv_header_stdio_ext_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_stdio_ext_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDIO_EXT_H 1
@@ -23100,12 +23136,15 @@
 
 for ac_header in pthread.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_pthread_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_PTHREAD_H 1
 _ACEOF
  HAVE_PTHREAD_H=yes
+else
+  HAVE_PTHREAD_H=no
 fi
 
 done
@@ -23121,12 +23160,13 @@
 
 for ac_header in sys/prctl.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_sys_prctl_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_PRCTL_H 1
 _ACEOF
- HAVE_SYS_PRCTL_H=yes
+
 fi
 
 done
@@ -23134,12 +23174,13 @@
 
 for ac_header in valgrind/valgrind.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_VALGRIND_VALGRIND_H 1
 _ACEOF
- HAVE_VALGRIND_H=yes
+
 fi
 
 done
@@ -23147,12 +23188,15 @@
 
 for ac_header in winsock2.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+  ac_fn_c_check_header_compile "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default
+"
 if test "x$ac_cv_header_winsock2_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WINSOCK2_H 1
 _ACEOF
  HAVE_WINSOCK2_H=yes
+else
+  HAVE_WINSOCK2_H=no
 fi
 
 done
@@ -23521,6 +23565,32 @@
 done
 
 
+for ac_header in sys/poll.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_sys_poll_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
+for ac_header in poll.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_poll_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_POLL_H 1
+_ACEOF
+
+fi
+
+done
+
 for ac_func in poll
 do :
   ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
@@ -23555,19 +23625,6 @@
 done
 
 
-for ac_header in sys/poll.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_poll_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_POLL_H 1
-_ACEOF
-
-fi
-
-done
-
-
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll" >&5
 $as_echo_n "checking for broken poll... " >&6; }
@@ -23579,10 +23636,12 @@
 
 	#include <stdlib.h>
 	#include <fcntl.h>
-	#include <poll.h>
 	#ifdef HAVE_SYS_POLL_H
 	#include <sys/poll.h>
 	#endif
+	#ifdef HAVE_POLL_H
+	#include <poll.h>
+	#endif
 	int main(void) {
 	  struct pollfd fds[1];
 	  int fd;
@@ -24222,7 +24281,7 @@
 CFLAGS="$save_cflags"
 
 
-GLIB_REQ=2.31.14
+GLIB_REQ=2.32.0
 
 
 
@@ -24379,6 +24438,84 @@
     GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_ASSERT"
   fi
 
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-genmarshal" >&5
+$as_echo_n "checking for glib-genmarshal... " >&6; }
+  if test "x$GLIB_GENMARSHAL" != "x"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL (from environment)" >&5
+$as_echo "$GLIB_GENMARSHAL (from environment)" >&6; }
+  else
+    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+    if $GLIB_GENMARSHAL --version 2>/dev/null >/dev/null; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL (from pkg-config path)" >&5
+$as_echo "$GLIB_GENMARSHAL (from pkg-config path)" >&6; }
+    else
+      # Extract the first word of "glib-genmarshal", so it can be a program name with args.
+set dummy glib-genmarshal; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GLIB_GENMARSHAL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GLIB_GENMARSHAL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GLIB_GENMARSHAL" && ac_cv_path_GLIB_GENMARSHAL="glib-genmarshal"
+  ;;
+esac
+fi
+GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL
+if test -n "$GLIB_GENMARSHAL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5
+$as_echo "$GLIB_GENMARSHAL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5
+$as_echo "$GLIB_GENMARSHAL" >&6; }
+    fi
+  fi
+  if ! $GLIB_GENMARSHAL --version 2>/dev/null >/dev/null; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GLIB_GENMARSHAL does not seem to work!" >&5
+$as_echo "$as_me: WARNING: $GLIB_GENMARSHAL does not seem to work!" >&2;}
+  fi
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-mkenums" >&5
+$as_echo_n "checking for glib-mkenums... " >&6; }
+  if test "x$GLIB_MKENUMS" != "x"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_MKENUMS (from environment)" >&5
+$as_echo "$GLIB_MKENUMS (from environment)" >&6; }
+  else
+        GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_MKENUMS" >&5
+$as_echo "$GLIB_MKENUMS" >&6; }
+  fi
+  if ! $GLIB_MKENUMS --version 2>/dev/null >/dev/null; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GLIB_MKENUMS does not seem to work!" >&5
+$as_echo "$as_me: WARNING: $GLIB_MKENUMS does not seem to work!" >&2;}
+  fi
+
+
 
   GIVEN_CFLAGS=$GLIB_CFLAGS
   INCLUDE_DIRS=`echo | cpp -v 2>&1`
@@ -25232,7 +25369,8 @@
 for ac_header in unistd.h sys/wait.h sys/time.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
 if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
@@ -25744,7 +25882,7 @@
 
 
 
-ac_config_files="$ac_config_files Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/libcheck/check.h 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/metadata/Makefile tests/examples/queue/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 gst-element-check.m4 gstreamer.spec"
+ac_config_files="$ac_config_files Makefile gst/Makefile gst/gstconfig.h gst/gstversion.h gst/parse/Makefile libs/Makefile libs/gst/Makefile libs/gst/base/Makefile libs/gst/check/Makefile libs/gst/check/libcheck/Makefile libs/gst/check/libcheck/check.h 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/queue/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 gst-element-check.m4 gstreamer.spec"
 
 
 sed \
@@ -25955,6 +26093,14 @@
   as_fn_error $? "conditional \"BUILD_FAILING_TESTS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${BUILD_BENCHMARKS_TRUE}" && test -z "${BUILD_BENCHMARKS_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_BENCHMARKS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_TOOLS_TRUE}" && test -z "${BUILD_TOOLS_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_TOOLS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
 if test -z "${HAVE_CPU_I386_TRUE}" && test -z "${HAVE_CPU_I386_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_CPU_I386\" was never defined.
@@ -26509,7 +26655,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer $as_me 0.11.92, which was
+This file was extended by GStreamer $as_me 0.11.93, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26575,7 +26721,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer config.status 0.11.92
+GStreamer config.status 0.11.93
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -27139,6 +27285,7 @@
     "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/queue/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/queue/Makefile" ;;
     "tests/examples/streams/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/streams/Makefile" ;;
@@ -29312,7 +29459,9 @@
 	Debug                      : ${USE_DEBUG}
 	Profiling                  : ${USE_PROFILING}
 
+	Building benchmarks        : ${BUILD_BENCHMARKS}
 	Building examples          : ${BUILD_EXAMPLES}
 	Building test apps         : ${BUILD_TESTS}
 	Building tests that fail   : ${BUILD_FAILING_TESTS}
+	Building tools             : ${BUILD_TOOLS}
 "
diff --git a/configure.ac b/configure.ac
index 7612b34..fa325a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
-AC_INIT(GStreamer, 0.11.92,
+AC_INIT(GStreamer, 0.11.93,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gstreamer)
 AG_GST_INIT
@@ -164,6 +164,32 @@
   AC_MSG_WARN([Sissy ! By asking to not build the tests known to fail, you hereby waive your right to customer support.  If you do not agree with this EULA, please press Ctrl-C before the next line is printed.  By allowing the next line to be printed, you expressly acknowledge your acceptance of this EULA.])
 fi
 
+dnl building of benchmarks
+AC_ARG_ENABLE(benchmarks,
+  AC_HELP_STRING([--disable-benchmarks], [disable building benchmarks apps]),
+  [
+    case "${enableval}" in
+      yes) BUILD_BENCHMARKS=yes ;;
+      no)  BUILD_BENCHMARKS=no ;;
+      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-benchmarks) ;;
+    esac
+  ],
+[BUILD_BENCHMARKS=yes]) dnl Default value
+AM_CONDITIONAL(BUILD_BENCHMARKS, test "x$BUILD_BENCHMARKS" = "xyes")
+
+dnl building of tools
+AC_ARG_ENABLE(tools,
+  AC_HELP_STRING([--disable-tools], [disable building tools]),
+  [
+    case "${enableval}" in
+      yes) BUILD_TOOLS=yes ;;
+      no)  BUILD_TOOLS=no ;;
+      *)   AC_MSG_ERROR(bad value ${enableval} for --disable-tools) ;;
+    esac
+  ],
+[BUILD_TOOLS=yes]) dnl Default value
+AM_CONDITIONAL(BUILD_TOOLS, test "x$BUILD_TOOLS" = "xyes")
+
 dnl poison destroyed objects
 AC_ARG_ENABLE(poisoning,
   AC_HELP_STRING([--enable-poisoning],
@@ -270,40 +296,40 @@
 AC_HEADER_STDC
 
 dnl Check for ucontext.h
-AC_CHECK_HEADERS([ucontext.h])
+AC_CHECK_HEADERS([ucontext.h], [], [], [AC_INCLUDES_DEFAULT])
 
 dnl Check for sys/socket.h
-AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
+AC_CHECK_HEADERS([sys/socket.h], [HAVE_SYS_SOCKET_H=yes], [HAVE_SYS_SOCKET_H=no], [AC_INCLUDES_DEFAULT])
 AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
 
 dnl check for sys/times.h for tests/examples/adapter/
-AC_CHECK_HEADERS([sys/times.h], HAVE_SYS_TIMES_H=yes)
-AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
+AC_CHECK_HEADERS([sys/times.h], [HAVE_SYS_TIMES_H=yes], [HAVE_SYS_TIME_H=no], [AC_INCLUDES_DEFAULT])
+AC_CHECK_HEADERS([unistd.h], [HAVE_UNISTD_H=yes], [HAVE_UNISTD_H=no], [AC_INCLUDES_DEFAULT])
 AM_CONDITIONAL(HAVE_SYS_TIMES_H_AND_UNISTD_H, test "x$HAVE_SYS_TIMES_H" = "xyes" -a "x$HAVE_UNISTD_H" = "xyes")
 
 dnl Check for process.h for getpid() on win32
-AC_CHECK_HEADERS([process.h])
+AC_CHECK_HEADERS([process.h], [], [], [AC_INCLUDES_DEFAULT])
 
 dnl Check for sys/utsname.h for uname
-AC_CHECK_HEADERS([sys/utsname.h])
+AC_CHECK_HEADERS([sys/utsname.h], [], [], [AC_INCLUDES_DEFAULT])
 
 dnl Check for stdio_ext.f for __fbufsize
-AC_CHECK_HEADERS([stdio_ext.h])
+AC_CHECK_HEADERS([stdio_ext.h], [], [], [AC_INCLUDES_DEFAULT])
 
 dnl check for pthreads
-AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
+AC_CHECK_HEADERS([pthread.h], [HAVE_PTHREAD_H=yes], [HAVE_PTHREAD_H=no], [AC_INCLUDES_DEFAULT])
 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
 
 dnl check for sys/prctl for setting thread name on Linux
-AC_CHECK_HEADERS([sys/prctl.h], HAVE_SYS_PRCTL_H=yes)
+AC_CHECK_HEADERS([sys/prctl.h], [], [], [AC_INCLUDES_DEFAULT])
 
 dnl Check for valgrind.h
 dnl separate from HAVE_VALGRIND because you can have the program, but not
 dnl the dev package
-AC_CHECK_HEADERS([valgrind/valgrind.h], HAVE_VALGRIND_H=yes)
+AC_CHECK_HEADERS([valgrind/valgrind.h], [], [], [AC_INCLUDES_DEFAULT])
 
 dnl used in gst/gstpoll.c
-AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
+AC_CHECK_HEADERS([winsock2.h], [HAVE_WINSOCK2_H=yes], [HAVE_WINSOCK2_H=no], [AC_INCLUDES_DEFAULT])
 AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
   WIN32_LIBS="-lws2_32"
@@ -382,12 +408,12 @@
 AC_CHECK_FUNCS([fsetpos])
 
 dnl check for poll(), ppoll() and pselect()
+AC_CHECK_HEADERS([sys/poll.h], [], [], [AC_INCLUDES_DEFAULT])
+AC_CHECK_HEADERS([poll.h], [], [], [AC_INCLUDES_DEFAULT])
 AC_CHECK_FUNCS([poll])
 AC_CHECK_FUNCS([ppoll])
 AC_CHECK_FUNCS([pselect])
 
-AC_CHECK_HEADERS([sys/poll.h])
-
 dnl ****************************************
 dnl *** GLib POLL* compatibility defines ***
 dnl ****************************************
@@ -396,10 +422,12 @@
 AC_RUN_IFELSE([AC_LANG_SOURCE([[
 	#include <stdlib.h>
 	#include <fcntl.h>
-	#include <poll.h>
 	#ifdef HAVE_SYS_POLL_H
 	#include <sys/poll.h>
 	#endif
+	#ifdef HAVE_POLL_H
+	#include <poll.h>
+	#endif
 	int main(void) {
 	  struct pollfd fds[1];
 	  int fd;
@@ -519,7 +547,7 @@
 dnl *** checks for dependency libraries ***
 
 dnl GLib
-GLIB_REQ=2.31.14
+GLIB_REQ=2.32.0
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
 dnl Check for documentation xrefs
@@ -735,6 +763,7 @@
 tests/examples/helloworld/Makefile
 tests/examples/launch/Makefile
 tests/examples/manual/Makefile
+tests/examples/memory/Makefile
 tests/examples/metadata/Makefile
 tests/examples/queue/Makefile
 tests/examples/streams/Makefile
@@ -844,7 +873,9 @@
 	Debug                      : ${USE_DEBUG}
 	Profiling                  : ${USE_PROFILING}
 
+	Building benchmarks        : ${BUILD_BENCHMARKS}
 	Building examples          : ${BUILD_EXAMPLES}
 	Building test apps         : ${BUILD_TESTS}
 	Building tests that fail   : ${BUILD_FAILING_TESTS}
+	Building tools             : ${BUILD_TOOLS}
 "
diff --git a/depcomp b/depcomp
index bd0ac08..25a39e6 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2011-12-04.11; # UTC
+scriptversion=2012-03-27.16; # UTC
 
 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011 Free Software Foundation, Inc.
+# 2011, 2012 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
      exit 1;
      ;;
   -h | --h*)
@@ -40,8 +40,8 @@
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by `PROGRAMS ARGS'.
-  object      Object file output by `PROGRAMS ARGS'.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputting dependencies.
@@ -57,6 +57,12 @@
     ;;
 esac
 
+# A tabulation character.
+tab='	'
+# A newline character.
+nl='
+'
+
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -102,6 +108,12 @@
    depmode=msvc7
 fi
 
+if test "$depmode" = xlc; then
+   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
+   gccflag=-qmakedep=gcc,-MF
+   depmode=gcc
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -156,15 +168,14 @@
 ## The second -e expression handles DOS-style file names with drive letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
+## This next piece of magic avoids the "deleted header file" problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'.  On the theory
+  tr ' ' "$nl" < "$tmpdepfile" |
+## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
@@ -203,18 +214,15 @@
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like `#:fec' to the end of the
+    # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
-    tr ' ' '
-' < "$tmpdepfile" \
+    tr ' ' "$nl" < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> "$depfile"
+    tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
+    tr ' ' "$nl" < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
    >> "$depfile"
   else
@@ -226,10 +234,17 @@
   rm -f "$tmpdepfile"
   ;;
 
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -259,12 +274,11 @@
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    # Each line is of the form `foo.o: dependent.h'.
+    # Each line is of the form 'foo.o: dependent.h'.
     # Do two passes, one to just change these to
-    # `$object: dependent.h' and one to simply `dependent.h:'.
+    # '$object: dependent.h' and one to simply 'dependent.h:'.
     sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    # That's a tab and a space in the [].
-    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -275,23 +289,26 @@
   ;;
 
 icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
+  # However on
+  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
   # ICC 7.0 will fill foo.d with something like
   #    foo.o: sub/foo.c
   #    foo.o: sub/foo.h
-  # which is wrong.  We want:
+  # which is wrong.  We want
   #    sub/foo.o: sub/foo.c
   #    sub/foo.o: sub/foo.h
   #    sub/foo.c:
   #    sub/foo.h:
   # ICC 7.1 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using \ :
+  # and will wrap long lines using '\':
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-
+  # tcc 0.9.26 (FIXME still under development at the moment of writing)
+  # will emit a similar output, but also prepend the continuation lines
+  # with horizontal tabulation characters.
   "$@" -MD -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
@@ -300,15 +317,21 @@
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form `foo.o: dependent.h',
-  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Each line is of the form 'foo.o: dependent.h',
+  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # `$object: dependent.h' and one to simply `dependent.h:'.
-  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
-  # Some versions of the HPUX 10.20 sed can't process this invocation
-  # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  # '$object: dependent.h' and one to simply 'dependent.h:'.
+  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
+    < "$tmpdepfile" > "$depfile"
+  sed '
+    s/[ '"$tab"'][ '"$tab"']*/ /g
+    s/^ *//
+    s/ *\\*$//
+    s/^[^:]*: *//
+    /^$/d
+    /:$/d
+    s/$/ :/
+  ' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -344,7 +367,7 @@
   done
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add `dependent.h:' lines.
+    # Add 'dependent.h:' lines.
     sed -ne '2,${
 	       s/^ *//
 	       s/ \\*$//
@@ -359,9 +382,9 @@
 
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in `foo.d' instead, so we check for that too.
+   # dependencies in 'foo.d' instead, so we check for that too.
    # Subdirectories are respected.
    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
    test "x$dir" = "x$object" && dir=
@@ -407,8 +430,7 @@
    done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
@@ -443,11 +465,11 @@
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/	\1 \\/p
+s/\(.*\)/'"$tab"'\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/	/
+  s/.*/'"$tab"'/
   G
   p
 }' >> "$depfile"
@@ -478,7 +500,7 @@
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -498,15 +520,14 @@
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for `:'
+  # Require at least two characters before searching for ':'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' '
-' < "$tmpdepfile" | \
+  tr ' ' "$nl" < "$tmpdepfile" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -562,8 +583,7 @@
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
+  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -583,7 +603,7 @@
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -652,8 +672,8 @@
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
-  echo "	" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 4539a19..e5b2015 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -207,7 +207,9 @@
 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@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index a79dc0b..24d493f 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -167,7 +167,9 @@
 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@
diff --git a/docs/design/part-buffering.txt b/docs/design/part-buffering.txt
index c6cb516..c1b3fb6 100644
--- a/docs/design/part-buffering.txt
+++ b/docs/design/part-buffering.txt
@@ -18,7 +18,6 @@
  - caching of semi-live streams to a local, on disk, ringbuffer with seeking in
    the cached area. This is similar to tivo-like timeshifting.
  - progress report about the buffering operations
- - easy (backward compatible) application notification of buffering
  - the possibility for the application to do more complex buffering
 
 Some use cases:
@@ -211,6 +210,17 @@
     this information to estimate the amount of remaining time to download the
     complete file.
 
+  "buffering-ranges", G_TYPE_ARRAY of GstQueryBufferingRange
+    - contains optionally the downloaded areas in the format given above. One
+      of the ranges contains the same start/stop position as above.
+
+      typedef struct
+      {
+        gint64 start;
+        gint64 stop;
+      } GstQueryBufferingRange;
+
+
 For the "download" and "timeshift" buffering-modes, the start and stop positions
 specify the ranges where efficient seeking in the downloaded media is possible.
 Seeking outside of these ranges might be slow or not at all possible.
@@ -235,6 +245,7 @@
   "start" = 0
   "stop" = the total filesize
   "estimated-total" = 0
+  "buffering-ranges" = NULL
 
 A GstBaseSrc in push mode replies to the BUFFERING query with:
 
@@ -247,6 +258,7 @@
   "start" = current position
   "stop" = current position
   "estimated-total" = -1
+  "buffering-ranges" = NULL
 
 
 Buffering strategies
diff --git a/docs/design/part-caps.txt b/docs/design/part-caps.txt
index ac04b75..a768b6d 100644
--- a/docs/design/part-caps.txt
+++ b/docs/design/part-caps.txt
@@ -8,7 +8,8 @@
 given pad can handle. They are also stored in the registry along with
 a description of the element.
 
-Caps are exposed on the element pads using the _get_caps() pad function.
+Caps are exposed on the element pads via CAPS and ACCEPT_CAPS queries.
+
 This function describes the possible types that the pad can handle or
 produce (see part-pads.txt and part-negotiation.txt).
 
diff --git a/docs/design/part-framestep.txt b/docs/design/part-framestep.txt
index 22d8895..7e5ecb8 100644
--- a/docs/design/part-framestep.txt
+++ b/docs/design/part-framestep.txt
@@ -101,8 +101,10 @@
      The format of the step units
 
   "amount", G_TYPE_UINT64
-     The amount of units to step. -1 resumes normal non-stepping behaviour to
-     the end of the segment.
+     The amount of units to step. A 0 amount immediately completes and can be
+     used to cancel the current step and resume normal non-stepping behaviour
+     to the end of the segment.
+     A -1 amount steps until the end of the segment.
 
   "rate", G_TYPE_DOUBLE
      The rate at which the frames should be stepped in PLAYING mode. 1.0 is
diff --git a/docs/design/part-segments.txt b/docs/design/part-segments.txt
index 56a2e1a..ab6606c 100644
--- a/docs/design/part-segments.txt
+++ b/docs/design/part-segments.txt
@@ -64,7 +64,7 @@
     When it reaches timestamp 5, it does not decode and push frames anymore.
 
     The video sink receives a frame of timestamp 1. It takes the start value of 
-    the previous segment and aplies the folowing (simplified) formula:
+    the previous segment and aplies the following (simplified) formula:
 
         render_time = BUFFER_TIMESTAMP - segment_start + element->base_time
 
diff --git a/docs/design/part-streams.txt b/docs/design/part-streams.txt
index ebc33d2..3a95634 100644
--- a/docs/design/part-streams.txt
+++ b/docs/design/part-streams.txt
@@ -11,10 +11,11 @@
 The following objects are to be expected in the streaming thread:
 
  - events
-    - SEGMENT           (S)
-    - EOS		(EOS)  *
+    - STREAM_START      (START)
+    - SEGMENT           (SEGMENT)
+    - EOS             * (EOS)
     - TAG               (T)
- - buffers              (B)    *
+ - buffers            * (B)
 
 Objects marked with * need to be synchronised to the clock in sinks
 and live sources.
@@ -23,16 +24,21 @@
 Typical stream
 ~~~~~~~~~~~~~~
 
- A typical stream starts with a segment event that marks the
+ A typical stream starts with a stream start event that marks the
+ start of the stream, followed by a segment event that marks the
  buffer timestamp range. After that buffers are sent one after the
  other. After the last buffer an EOS marks the end of the stream. No
  more buffers are to be processed after the EOS event.
 
-  +-+ +-++-+     +-+ +---+
-  |S| |B||B| ... |B| |EOS|
-  +-+ +-++-+     +-+ +---+
+  +-----+-------+ +-++-+     +-+ +---+
+  |START|SEGMENT| |B||B| ... |B| |EOS|
+  +-----+-------+ +-++-+     +-+ +---+
 
-  1) SEGMENT, rate, start/stop, time
+  1) STREAM_START
+     - marks the start of a stream; unlike the SEGMENT event, there
+       will be no STREAM_START event after flushing seeks.
+
+  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.
@@ -42,7 +48,7 @@
      - marks running_time of buffers. This is the time used to synchronize
        against the clock.
 
-  2) N buffers
+  3) N buffers
      - displayable buffers are between start/stop of the SEGMENT. Buffers
        outside the segment range should be dropped or clipped.
 
@@ -62,9 +68,15 @@
 
         * current position in stream between 0 and duration.
 
-  3) EOS
+  4) EOS
      - marks the end of data, nothing is to be expected after EOS, elements
        should refuse more data and return GST_FLOW_EOS. A FLUSH_STOP
        event clears the EOS state of an element.
 
 
+Elements
+~~~~~~~~
+
+These events are generated typically either by the GstBaseSrc class for
+sources operating in push mode, or by a parser/demuxer operating in pull-mode
+and pushing parsed/demuxed data downstream.
diff --git a/docs/design/part-toc.txt b/docs/design/part-toc.txt
index 73231da..bb7a477 100644
--- a/docs/design/part-toc.txt
+++ b/docs/design/part-toc.txt
@@ -48,38 +48,74 @@
 children items of type GstTocEntry. Thus you can achieve arbitrary hierarchy
 level. Field 'type' can be either GST_TOC_ENTRY_TYPE_CHAPTER or
 GST_TOC_ENTRY_TYPE_EDITION which corresponds to chapter or edition type of
-item respectively. Field 'pads' of type GList contains list of GStreamer
-pads related to the item. It can be used for example to link a TOC with
-specific pad. Field 'tags' is a list of tags related to the item. And field
+item respectively. Field 'tags' is a list of tags related to the item. And field
 'info' is similar to GstToc.info described above.
 
-So, a little more about managing GstToc. Use gst_toc_new() and gst_toc_free()
-to create/free it. GstTocEntry can be created using gst_toc_entry_new() and
-gst_toc_entry_new_with_pad(). The latter method used to create GstTocEntry
-linked to particular pad. While building GstToc you can set start and stop
+So, a little more about managing GstToc. Use gst_toc_new() and gst_toc_unref()
+to create/free it. GstTocEntry can be created using gst_toc_entry_new().
+While building GstToc you can set start and stop
 timestamps for each item using gst_toc_entry_set_start_stop().
 The best way to process already created GstToc is to recursively go through
 the 'entries' and 'subentries' fields.
 
-2. Working with GstQuery
 
-GstQuery with GstToc can be created using gst_query_new_toc(). Use
-gst_query_set_toc() to set TOC into the query and parse it with
-gst_query_parse_toc(). The 'extend_uid' parameter (0 for root level) in two
-last methods should be used for TOC extending: get GstTocEntry with
-gst_toc_find_entry() by given UID and use it to add your own chapters/editions.
-The common action on such query is to set TOC for it.
+2. TOC scope: global and current
+
+There are two main consumers for TOC information: applications and elements
+in the pipeline that are TOC writers (such as e.g. matroskamux).
+
+Applications typically want to know the entire table of contents (TOC) with
+all entries that can possibly be selected.
+
+TOC writers in the pipeline, however, would not want to write a TOC for all
+possible/available streams, but only for the current stream.
+
+When transcoding a title from a DVD, for example, the application would still
+want to know the entire TOC, with all titles, the chapters for each title,
+and the available angles. When transcoding to a file, we only want the TOC
+information that is relevant to the transcoded stream to be written into
+the file structure, e.g. the chapters of the title being transcoded (or
+possibly only chapters 5-7 if only those have been selected for playback/
+transcoding).
+
+This is why we may need to create two different TOCs for those two types
+of consumers.
+
+Elements that extract TOC information should send TOC events downstream.
+
+Like with tags, sinks will post a TOC message on the bus for the application
+with the global TOC, once a global TOC event reaches the sink.
+
 
 3. Working with GstMessage
 
+If a table of contents is available, applications will receive a TOC message
+on the pipeline's GstBus.
+
+A TOC message will be posted on the bus by sinks when the receive a TOC event
+containing a TOC with global scope. Elements extracting TOCs should not post
+a TOC message themselves, but send a TOC event downstream.
+
+The reason for this is that there may be cascades of TOCs (e.g. a zip archive
+containing multiple matroska files, each with a TOC).
+
 GstMessage with GstToc can be created using gst_message_new_toc() and parsed
 with gst_message_parse_toc(). The 'updated' parameter in these methods indicates
 whether the TOC was just discovered (set to false) or TOC was already found and
-have been updated (set to true). The common usage for such message is to post it
+have been updated (set to true). This message will typically be posted by sinks
 to pipeline in case you have discovered TOC data within your element.
 
+
 4. Working with GstEvent
 
+There are two types of TOC-related events:
+
+ - downstream TOC events that contain TOC information and
+   travel downstream
+
+ - toc-select events that travel upstream and can be used to select
+   a certain TOC entry for playback (similar to seek events)
+
 GstToc supports select event through GstEvent infrastructure. The idea is the
 following: when you receive TOC select event, parse it with
 gst_event_parse_toc_select() and seek stream (if it is not streamable) for
diff --git a/docs/faq/Makefile.in b/docs/faq/Makefile.in
index c652973..85b8aab 100644
--- a/docs/faq/Makefile.in
+++ b/docs/faq/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -221,7 +221,9 @@
 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@
diff --git a/docs/gst/Makefile.am b/docs/gst/Makefile.am
index 23eac9f..3202ef3 100644
--- a/docs/gst/Makefile.am
+++ b/docs/gst/Makefile.am
@@ -67,7 +67,12 @@
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_OBJ_CFLAGS)
-GTKDOC_LIBS = $(GST_OBJ_LIBS)
+GTKDOC_LIBS = $(GST_OBJ_LIBS) \
+	$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la
+
 
 GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
diff --git a/docs/gst/Makefile.in b/docs/gst/Makefile.in
index 3cd35f6..07c77e6 100644
--- a/docs/gst/Makefile.in
+++ b/docs/gst/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -190,7 +190,9 @@
 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@
@@ -470,7 +472,12 @@
 # CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
 # contains GtkObjects/GObjects and you want to document signals and properties.
 GTKDOC_CFLAGS = $(GST_OBJ_CFLAGS)
-GTKDOC_LIBS = $(GST_OBJ_LIBS)
+GTKDOC_LIBS = $(GST_OBJ_LIBS) \
+	$(top_builddir)/gst/libgstreamer-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/controller/libgstcontroller-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la
+
 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
 GTKDOC_EXTRA_ENVIRONMENT = \
diff --git a/docs/gst/gst-universe.svg b/docs/gst/gst-universe.svg
index 9096ba4..69db751 100644
--- a/docs/gst/gst-universe.svg
+++ b/docs/gst/gst-universe.svg
@@ -4,15 +4,15 @@
 <!-- Generated by graphviz version 2.26.3 (20100126.1600)
  -->
 <!-- Title: pipeline Pages: 1 -->
-<svg width="710pt" height="632pt"
- viewBox="0.00 0.00 710.00 632.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="690pt" height="632pt"
+ viewBox="0.00 0.00 690.00 632.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph1" class="graph" transform="scale(1 1) rotate(0) translate(4 628)">
 <title>pipeline</title>
-<polygon fill="white" stroke="white" points="-4,5 -4,-628 707,-628 707,5 -4,5"/>
+<polygon fill="white" stroke="white" points="-4,5 -4,-628 687,-628 687,5 -4,5"/>
 <!-- application -->
 <g id="node1" class="node"><title>application</title>
-<polygon fill="#ffdddd" stroke="black" points="549,-624 481,-624 481,-588 549,-588 549,-624"/>
-<text text-anchor="middle" x="515" y="-603.4" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
+<polygon fill="#ffdddd" stroke="black" points="565,-624 501,-624 501,-588 565,-588 565,-624"/>
+<text text-anchor="middle" x="533" y="-603.4" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
 </g>
 <!-- bus -->
 <g id="node3" class="node"><title>bus</title>
@@ -23,74 +23,74 @@
 </g>
 <!-- application&#45;&gt;bus -->
 <g id="edge48" class="edge"><title>application&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M480.889,-603.237C387.135,-595.315 130.777,-571.331 105,-544 87.773,-525.735 87.3582,-496.146 90.1306,-474.254"/>
-<polygon fill="black" stroke="black" points="93.6146,-474.626 91.6879,-464.208 86.6972,-473.554 93.6146,-474.626"/>
-<text text-anchor="middle" x="121" y="-523.7" font-family="Bitstream Vera Sans" font-size="7.00">listen on</text>
+<path fill="none" stroke="black" d="M500.953,-602.984C422.76,-595.249 224.265,-573.238 165,-544 133.414,-528.417 124.897,-520.334 107,-490 104.099,-485.083 101.959,-479.423 100.382,-473.833"/>
+<polygon fill="black" stroke="black" points="103.776,-472.977 98.1069,-464.027 96.957,-474.559 103.776,-472.977"/>
+<text text-anchor="middle" x="180" y="-523.7" font-family="Bitstream Vera Sans" font-size="7.00">listen on</text>
 </g>
 <!-- event -->
 <g id="node9" class="node"><title>event</title>
 <a xlink:href="gstreamer-GstEvent.html" xlink:title="event" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="593,-304 539,-304 539,-268 593,-268 593,-304"/>
-<text text-anchor="middle" x="566" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">event</text>
+<polygon fill="#ddffdd" stroke="black" points="583,-304 529,-304 529,-268 583,-268 583,-304"/>
+<text text-anchor="middle" x="556" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">event</text>
 </a>
 </g>
 <!-- application&#45;&gt;event -->
 <g id="edge52" class="edge"><title>application&#45;&gt;event</title>
-<path fill="none" stroke="black" d="M549.192,-597.789C583.091,-587.369 630,-565.765 630,-526 630,-526 630,-526 630,-366 630,-345.478 628.047,-338.613 616,-322 611.95,-316.415 606.766,-311.359 601.278,-306.92"/>
-<polygon fill="black" stroke="black" points="603.233,-304.012 593.115,-300.868 599.064,-309.635 603.233,-304.012"/>
-<text text-anchor="middle" x="639" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M565.013,-590.366C587.654,-576.819 614,-554.857 614,-526 614,-526 614,-526 614,-366 614,-345.478 611.529,-338.977 600,-322 597.3,-318.025 594.036,-314.259 590.52,-310.768"/>
+<polygon fill="black" stroke="black" points="592.811,-308.121 583.047,-304.006 588.114,-313.311 592.811,-308.121"/>
+<text text-anchor="middle" x="622" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
 </g>
 <!-- pipeline -->
 <g id="node13" class="node"><title>pipeline</title>
 <a xlink:href="GstPipeline.html" xlink:title="pipeline" target="_top">
-<polygon fill="#ccccff" stroke="black" points="200,-544 146,-544 146,-508 200,-508 200,-544"/>
-<text text-anchor="middle" x="173" y="-523.4" font-family="Bitstream Vera Sans" font-size="9.00">pipeline</text>
+<polygon fill="#ccccff" stroke="black" points="258,-544 204,-544 204,-508 258,-508 258,-544"/>
+<text text-anchor="middle" x="231" y="-523.4" font-family="Bitstream Vera Sans" font-size="9.00">pipeline</text>
 </a>
 </g>
 <!-- application&#45;&gt;pipeline -->
 <g id="edge46" class="edge"><title>application&#45;&gt;pipeline</title>
-<path fill="none" stroke="black" d="M480.957,-598.037C416.487,-582.956 277.059,-550.341 210.214,-534.705"/>
-<polygon fill="black" stroke="black" points="210.665,-531.216 200.131,-532.346 209.071,-538.032 210.665,-531.216"/>
-<text text-anchor="middle" x="361.5" y="-563.7" font-family="Bitstream Vera Sans" font-size="7.00">has</text>
+<path fill="none" stroke="black" d="M500.967,-597.514C444.57,-582.575 327.88,-551.664 268.087,-535.824"/>
+<polygon fill="black" stroke="black" points="268.866,-532.41 258.303,-533.233 267.074,-539.177 268.866,-532.41"/>
+<text text-anchor="middle" x="398" y="-563.7" font-family="Bitstream Vera Sans" font-size="7.00">has</text>
 </g>
 <!-- query -->
 <g id="node16" class="node"><title>query</title>
 <a xlink:href="gstreamer-GstQuery.html" xlink:title="query" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="688,-304 634,-304 634,-268 688,-268 688,-304"/>
-<text text-anchor="middle" x="661" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">query</text>
+<polygon fill="#ddffdd" stroke="black" points="674,-304 620,-304 620,-268 674,-268 674,-304"/>
+<text text-anchor="middle" x="647" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">query</text>
 </a>
 </g>
 <!-- application&#45;&gt;query -->
 <g id="edge50" class="edge"><title>application&#45;&gt;query</title>
-<path fill="none" stroke="black" d="M549.2,-597.216C598.582,-583.512 684,-555.54 684,-526 684,-526 684,-526 684,-366 684,-347.981 678.544,-328.536 672.946,-313.329"/>
-<polygon fill="black" stroke="black" points="676.203,-312.047 669.304,-304.006 669.683,-314.594 676.203,-312.047"/>
-<text text-anchor="middle" x="693" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M565.196,-601.066C604.557,-592.994 666,-572.885 666,-526 666,-526 666,-526 666,-366 666,-348.37 661.578,-329.132 657.001,-313.94"/>
+<polygon fill="black" stroke="black" points="660.245,-312.593 653.859,-304.139 653.579,-314.73 660.245,-312.593"/>
+<text text-anchor="middle" x="674" y="-443.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
 </g>
 <!-- bin -->
 <g id="node2" class="node"><title>bin</title>
 <a xlink:href="GstBin.html" xlink:title="bin" target="_top">
-<polygon fill="#ccccff" stroke="black" points="344,-464 290,-464 290,-428 344,-428 344,-464"/>
-<text text-anchor="middle" x="317" y="-443.4" font-family="Bitstream Vera Sans" font-size="9.00">bin</text>
+<polygon fill="#ccccff" stroke="black" points="343,-464 289,-464 289,-428 343,-428 343,-464"/>
+<text text-anchor="middle" x="316" y="-443.4" font-family="Bitstream Vera Sans" font-size="9.00">bin</text>
 </a>
 </g>
 <!-- element -->
 <g id="node7" class="node"><title>element</title>
 <a xlink:href="GstElement.html" xlink:title="element" target="_top">
-<polygon fill="#ccccff" stroke="black" points="380,-384 326,-384 326,-348 380,-348 380,-384"/>
-<text text-anchor="middle" x="353" y="-363.4" font-family="Bitstream Vera Sans" font-size="9.00">element</text>
+<polygon fill="#ccccff" stroke="black" points="378,-384 324,-384 324,-348 378,-348 378,-384"/>
+<text text-anchor="middle" x="351" y="-363.4" font-family="Bitstream Vera Sans" font-size="9.00">element</text>
 </a>
 </g>
 <!-- bin&#45;&gt;element -->
 <g id="edge2" class="edge"><title>bin&#45;&gt;element</title>
-<path fill="none" stroke="black" d="M314.473,-427.82C314.065,-419.637 314.632,-410.033 318,-402 319.468,-398.498 321.45,-395.145 323.729,-391.993"/>
-<polygon fill="black" stroke="black" points="326.562,-394.062 330.303,-384.15 321.197,-389.565 326.562,-394.062"/>
-<text text-anchor="middle" x="324.5" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M313.527,-427.842C313.13,-419.664 313.69,-410.057 317,-402 318.423,-398.536 320.346,-395.208 322.558,-392.071"/>
+<polygon fill="black" stroke="black" points="325.331,-394.209 328.943,-384.248 319.908,-389.783 325.331,-394.209"/>
+<text text-anchor="middle" x="323" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
 </g>
 <!-- bin&#45;&gt;element -->
 <g id="edge24" class="edge"><title>bin&#45;&gt;element</title>
-<path fill="none" stroke="black" d="M325.169,-427.847C329.772,-417.618 335.612,-404.64 340.752,-393.217"/>
-<polygon fill="black" stroke="black" points="343.951,-394.637 344.863,-384.081 337.568,-391.764 343.951,-394.637"/>
-<text text-anchor="middle" x="347" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M323.942,-427.847C328.372,-417.721 333.981,-404.9 338.942,-393.56"/>
+<polygon fill="black" stroke="black" points="342.288,-394.646 343.089,-384.081 335.875,-391.84 342.288,-394.646"/>
+<text text-anchor="middle" x="344.5" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- message -->
 <g id="node10" class="node"><title>message</title>
@@ -103,40 +103,40 @@
 <g id="edge38" class="edge"><title>bus&#45;&gt;message</title>
 <path fill="none" stroke="black" d="M96.5638,-427.957C97.4266,-400.349 99.082,-347.375 100.109,-314.525"/>
 <polygon fill="black" stroke="black" points="103.616,-314.327 100.431,-304.223 96.6198,-314.108 103.616,-314.327"/>
-<text text-anchor="middle" x="113" y="-363.7" font-family="Bitstream Vera Sans" font-size="7.00">receive</text>
+<text text-anchor="middle" x="111.5" y="-363.7" font-family="Bitstream Vera Sans" font-size="7.00">receive</text>
 </g>
 <!-- buffer -->
 <g id="node4" class="node"><title>buffer</title>
 <a xlink:href="gstreamer-GstBuffer.html" xlink:title="buffer" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="526,-250 472,-250 472,-214 526,-214 526,-250"/>
-<text text-anchor="middle" x="499" y="-229.4" font-family="Bitstream Vera Sans" font-size="9.00">buffer</text>
+<polygon fill="#ddffdd" stroke="black" points="519,-250 465,-250 465,-214 519,-214 519,-250"/>
+<text text-anchor="middle" x="492" y="-229.4" font-family="Bitstream Vera Sans" font-size="9.00">buffer</text>
 </a>
 </g>
 <!-- caps -->
 <g id="node5" class="node"><title>caps</title>
 <a xlink:href="gstreamer-GstCaps.html" xlink:title="caps" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="477,-116 423,-116 423,-80 477,-80 477,-116"/>
-<text text-anchor="middle" x="450" y="-95.4" font-family="Bitstream Vera Sans" font-size="9.00">caps</text>
+<polygon fill="#eeeeee" stroke="black" points="471,-116 417,-116 417,-80 471,-80 471,-116"/>
+<text text-anchor="middle" x="444" y="-95.4" font-family="Bitstream Vera Sans" font-size="9.00">caps</text>
 </a>
 </g>
 <!-- buffer&#45;&gt;caps -->
 <g id="edge20" class="edge"><title>buffer&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M492.897,-213.892C487.934,-199.296 480.682,-178.267 474,-160 469.747,-148.373 468.466,-145.547 464,-134 462.957,-131.303 461.868,-128.493 460.778,-125.684"/>
-<polygon fill="black" stroke="black" points="464.019,-124.363 457.135,-116.309 457.495,-126.898 464.019,-124.363"/>
-<text text-anchor="middle" x="497" y="-175.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M485.933,-213.867C479.281,-194.142 468.194,-161.719 458,-134 457.002,-131.286 455.943,-128.464 454.871,-125.649"/>
+<polygon fill="black" stroke="black" points="458.116,-124.336 451.253,-116.264 451.585,-126.854 458.116,-124.336"/>
+<text text-anchor="middle" x="489.5" y="-175.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- structure -->
 <g id="node18" class="node"><title>structure</title>
 <a xlink:href="gstreamer-GstStructure.html" xlink:title="structure" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="480,-36 420,-36 420,-1.77636e-14 480,-3.55271e-15 480,-36"/>
-<text text-anchor="middle" x="450" y="-15.4" font-family="Bitstream Vera Sans" font-size="9.00">structure</text>
+<polygon fill="#eeeeee" stroke="black" points="472,-36 416,-36 416,-1.77636e-14 472,-3.55271e-15 472,-36"/>
+<text text-anchor="middle" x="444" y="-15.4" font-family="Bitstream Vera Sans" font-size="9.00">structure</text>
 </a>
 </g>
 <!-- caps&#45;&gt;structure -->
 <g id="edge22" class="edge"><title>caps&#45;&gt;structure</title>
-<path fill="none" stroke="black" d="M450,-79.8468C450,-69.9251 450,-57.4167 450,-46.2492"/>
-<polygon fill="black" stroke="black" points="453.5,-46.0814 450,-36.0814 446.5,-46.0814 453.5,-46.0814"/>
-<text text-anchor="middle" x="460" y="-55.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M444,-79.8468C444,-69.9251 444,-57.4167 444,-46.2492"/>
+<polygon fill="black" stroke="black" points="447.5,-46.0814 444,-36.0814 440.5,-46.0814 447.5,-46.0814"/>
+<text text-anchor="middle" x="453.5" y="-55.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- clock -->
 <g id="node6" class="node"><title>clock</title>
@@ -147,121 +147,121 @@
 </g>
 <!-- element&#45;&gt;buffer -->
 <g id="edge34" class="edge"><title>element&#45;&gt;buffer</title>
-<path fill="none" stroke="black" d="M380.397,-351.493C400.229,-340.184 426.959,-323.209 447,-304 460.92,-290.658 473.648,-273.171 483.028,-258.772"/>
-<polygon fill="black" stroke="black" points="486.019,-260.591 488.416,-250.27 480.106,-256.844 486.019,-260.591"/>
-<text text-anchor="middle" x="453.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
+<path fill="none" stroke="black" d="M378.04,-349.629C401.516,-335.12 433.366,-314.634 444,-304 457.158,-290.842 468.821,-273.56 477.354,-259.227"/>
+<polygon fill="black" stroke="black" points="480.535,-260.718 482.495,-250.306 474.469,-257.223 480.535,-260.718"/>
+<text text-anchor="middle" x="445" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
 </g>
 <!-- element&#45;&gt;clock -->
 <g id="edge14" class="edge"><title>element&#45;&gt;clock</title>
-<path fill="none" stroke="black" d="M325.693,-361.348C299.743,-356.186 260.166,-346.35 229,-330 219.262,-324.891 209.628,-317.86 201.253,-310.916"/>
-<polygon fill="black" stroke="black" points="203.505,-308.236 193.647,-304.352 198.931,-313.535 203.505,-308.236"/>
-<text text-anchor="middle" x="251.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">may provide</text>
+<path fill="none" stroke="black" d="M323.717,-360.559C299.105,-354.991 262.369,-345.013 233,-330 222.66,-324.715 212.272,-317.556 203.201,-310.549"/>
+<polygon fill="black" stroke="black" points="205.277,-307.727 195.281,-304.215 200.905,-313.194 205.277,-307.727"/>
+<text text-anchor="middle" x="254.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">may provide</text>
 </g>
 <!-- element_factory -->
 <g id="node8" class="node"><title>element_factory</title>
 <a xlink:href="GstElementFactory.html" xlink:title="element factory" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="310,-304 220,-304 220,-268 310,-268 310,-304"/>
-<text text-anchor="middle" x="265" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">element factory</text>
+<polygon fill="#eeeeee" stroke="black" points="308,-304 220,-304 220,-268 308,-268 308,-304"/>
+<text text-anchor="middle" x="264" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">element factory</text>
 </a>
 </g>
 <!-- element&#45;&gt;element_factory -->
 <g id="edge28" class="edge"><title>element&#45;&gt;element_factory</title>
-<path fill="none" stroke="black" d="M325.838,-357.258C311.504,-351.469 294.544,-342.591 283,-330 278.784,-325.401 275.488,-319.682 272.937,-313.905"/>
-<polygon fill="black" stroke="black" points="276.122,-312.433 269.315,-304.315 269.574,-314.907 276.122,-312.433"/>
+<path fill="none" stroke="black" d="M323.703,-355.792C310.694,-349.847 295.682,-341.275 285,-330 280.492,-325.242 276.79,-319.336 273.818,-313.413"/>
+<polygon fill="black" stroke="black" points="277.005,-311.964 269.74,-304.252 270.61,-314.811 277.005,-311.964"/>
 <text text-anchor="middle" x="311" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
 </g>
 <!-- element&#45;&gt;event -->
 <g id="edge32" class="edge"><title>element&#45;&gt;event</title>
-<path fill="none" stroke="black" d="M380.142,-360.53C407.254,-354.621 449.843,-344.121 485,-330 500.082,-323.942 515.946,-315.766 529.598,-308.105"/>
-<polygon fill="black" stroke="black" points="531.72,-310.923 538.659,-302.916 528.242,-304.848 531.72,-310.923"/>
-<text text-anchor="middle" x="529.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
+<path fill="none" stroke="black" d="M378.154,-360.153C404.093,-354.126 444.008,-343.686 477,-330 491.61,-323.939 506.956,-315.834 520.196,-308.232"/>
+<polygon fill="black" stroke="black" points="522.131,-311.155 528.991,-303.081 518.593,-305.115 522.131,-311.155"/>
+<text text-anchor="middle" x="518" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
 </g>
 <!-- element&#45;&gt;message -->
 <g id="edge36" class="edge"><title>element&#45;&gt;message</title>
-<path fill="none" stroke="black" d="M325.964,-361.631C294.115,-356.077 239.857,-345.332 195,-330 171.57,-321.992 165.056,-316.753 139.167,-304.146"/>
-<polygon fill="black" stroke="black" points="140.567,-300.936 130.035,-299.782 137.548,-307.252 140.567,-300.936"/>
-<text text-anchor="middle" x="204" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
+<path fill="none" stroke="black" d="M323.809,-360.853C293.474,-354.794 243.124,-343.787 201,-330 175.264,-321.577 167.665,-317.068 139.754,-304.32"/>
+<polygon fill="black" stroke="black" points="140.951,-301.02 130.398,-300.086 138.065,-307.398 140.951,-301.02"/>
+<text text-anchor="middle" x="209" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
 </g>
 <!-- pad -->
 <g id="node11" class="node"><title>pad</title>
 <a xlink:href="GstPad.html" xlink:title="pad" target="_top">
-<polygon fill="#ccccff" stroke="black" points="438,-304 384,-304 384,-268 438,-268 438,-304"/>
-<text text-anchor="middle" x="411" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">pad</text>
+<polygon fill="#ccccff" stroke="black" points="435,-304 381,-304 381,-268 435,-268 435,-304"/>
+<text text-anchor="middle" x="408" y="-283.4" font-family="Bitstream Vera Sans" font-size="9.00">pad</text>
 </a>
 </g>
 <!-- element&#45;&gt;pad -->
 <g id="edge12" class="edge"><title>element&#45;&gt;pad</title>
-<path fill="none" stroke="black" d="M366.161,-347.847C373.799,-337.311 383.552,-323.859 392.01,-312.193"/>
-<polygon fill="black" stroke="black" points="394.855,-314.232 397.891,-304.081 389.188,-310.123 394.855,-314.232"/>
-<text text-anchor="middle" x="394" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M363.934,-347.847C371.368,-337.414 380.839,-324.12 389.095,-312.534"/>
+<polygon fill="black" stroke="black" points="392.165,-314.257 395.117,-304.081 386.464,-310.195 392.165,-314.257"/>
+<text text-anchor="middle" x="391.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- pad_template -->
 <g id="node12" class="node"><title>pad_template</title>
 <a xlink:href="GstPadTemplate.html" xlink:title="pad template" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="414,-196 334,-196 334,-160 414,-160 414,-196"/>
-<text text-anchor="middle" x="374" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">pad template</text>
+<polygon fill="#eeeeee" stroke="black" points="408,-196 332,-196 332,-160 408,-160 408,-196"/>
+<text text-anchor="middle" x="370" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">pad template</text>
 </a>
 </g>
 <!-- element&#45;&gt;pad_template -->
 <g id="edge10" class="edge"><title>element&#45;&gt;pad_template</title>
-<path fill="none" stroke="black" d="M352.357,-347.87C351.893,-328.148 351.819,-295.727 355,-268 357.397,-247.11 362.354,-223.9 366.605,-206.283"/>
-<polygon fill="black" stroke="black" points="370.118,-206.656 369.13,-196.107 363.324,-204.969 370.118,-206.656"/>
-<text text-anchor="middle" x="365" y="-283.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M350.472,-347.882C350.106,-328.171 350.115,-295.759 353,-268 355.164,-247.175 359.599,-223.963 363.397,-206.328"/>
+<polygon fill="black" stroke="black" points="366.908,-206.661 365.653,-196.141 360.074,-205.147 366.908,-206.661"/>
+<text text-anchor="middle" x="362.5" y="-283.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- element&#45;&gt;query -->
 <g id="edge30" class="edge"><title>element&#45;&gt;query</title>
-<path fill="none" stroke="black" d="M380.078,-363.438C420.24,-359.164 497.668,-349.102 561,-330 582.749,-323.44 606.035,-313.388 624.659,-304.547"/>
-<polygon fill="black" stroke="black" points="626.19,-307.695 633.67,-300.192 623.144,-301.392 626.19,-307.695"/>
-<text text-anchor="middle" x="599" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">answers</text>
+<path fill="none" stroke="black" d="M378.104,-363.047C416.37,-358.426 488.133,-348.086 547,-330 568.715,-323.329 591.998,-313.269 610.631,-304.452"/>
+<polygon fill="black" stroke="black" points="612.154,-307.603 619.646,-300.112 609.117,-301.296 612.154,-307.603"/>
+<text text-anchor="middle" x="583.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">answers</text>
 </g>
 <!-- plugin_feature -->
 <g id="node15" class="node"><title>plugin_feature</title>
 <a xlink:href="GstPluginFeature.html" xlink:title="plugin feature" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="163,-196 81,-196 81,-160 163,-160 163,-196"/>
-<text text-anchor="middle" x="122" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">plugin feature</text>
+<polygon fill="#eeeeee" stroke="black" points="160,-196 82,-196 82,-160 160,-160 160,-196"/>
+<text text-anchor="middle" x="121" y="-175.4" font-family="Bitstream Vera Sans" font-size="9.00">plugin feature</text>
 </a>
 </g>
 <!-- element_factory&#45;&gt;plugin_feature -->
 <g id="edge44" class="edge"><title>element_factory&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M241.065,-267.923C217.246,-249.934 180.538,-222.21 154.178,-202.302"/>
-<polygon fill="black" stroke="black" points="156.102,-199.37 146.013,-196.136 151.884,-204.955 156.102,-199.37"/>
-<text text-anchor="middle" x="221.5" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M240.065,-267.923C216.246,-249.934 179.538,-222.21 153.178,-202.302"/>
+<polygon fill="black" stroke="black" points="155.102,-199.37 145.013,-196.136 150.884,-204.955 155.102,-199.37"/>
+<text text-anchor="middle" x="220" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
 </g>
 <!-- pad&#45;&gt;caps -->
 <g id="edge16" class="edge"><title>pad&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M426.207,-267.966C430.037,-262.511 433.708,-256.291 436,-250 444.01,-228.018 447.63,-164.049 449.106,-126.47"/>
-<polygon fill="black" stroke="black" points="452.615,-126.299 449.483,-116.178 445.619,-126.044 452.615,-126.299"/>
-<text text-anchor="middle" x="458" y="-175.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M421.367,-267.742C424.738,-262.284 427.971,-256.118 430,-250 443.729,-208.599 445.591,-157.601 445.171,-126.462"/>
+<polygon fill="black" stroke="black" points="448.667,-126.243 444.943,-116.324 441.669,-126.4 448.667,-126.243"/>
+<text text-anchor="middle" x="454.5" y="-175.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- pad&#45;&gt;pad_template -->
 <g id="edge26" class="edge"><title>pad&#45;&gt;pad_template</title>
-<path fill="none" stroke="black" d="M391.451,-267.737C386.938,-262.462 382.679,-256.389 380,-250 374.298,-236.4 372.567,-220.106 372.364,-206.46"/>
-<polygon fill="black" stroke="black" points="375.866,-206.226 372.481,-196.187 368.867,-206.146 375.866,-206.226"/>
-<text text-anchor="middle" x="408" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
+<path fill="none" stroke="black" d="M389.51,-267.974C385.027,-262.612 380.742,-256.437 378,-250 372.205,-236.396 370.046,-220.101 369.404,-206.457"/>
+<polygon fill="black" stroke="black" points="372.898,-206.104 369.175,-196.184 365.899,-206.26 372.898,-206.104"/>
+<text text-anchor="middle" x="404" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
 </g>
 <!-- pad_template&#45;&gt;caps -->
 <g id="edge18" class="edge"><title>pad_template&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M391.246,-159.847C401.449,-149.107 414.531,-135.336 425.76,-123.516"/>
-<polygon fill="black" stroke="black" points="428.473,-125.742 432.823,-116.081 423.398,-120.921 428.473,-125.742"/>
-<text text-anchor="middle" x="425" y="-135.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M386.792,-159.847C396.726,-149.107 409.464,-135.336 420.398,-123.516"/>
+<polygon fill="black" stroke="black" points="423.054,-125.799 427.275,-116.081 417.915,-121.046 423.054,-125.799"/>
+<text text-anchor="middle" x="419.5" y="-135.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- pipeline&#45;&gt;bin -->
 <g id="edge4" class="edge"><title>pipeline&#45;&gt;bin</title>
-<path fill="none" stroke="black" d="M200.085,-510.953C222.869,-498.295 255.644,-480.087 280.698,-466.168"/>
-<polygon fill="black" stroke="black" points="282.505,-469.168 289.547,-461.252 279.105,-463.049 282.505,-469.168"/>
-<text text-anchor="middle" x="256.5" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
+<path fill="none" stroke="black" d="M250.288,-507.847C261.808,-497.005 276.61,-483.073 289.248,-471.179"/>
+<polygon fill="black" stroke="black" points="291.905,-473.484 296.789,-464.081 287.108,-468.386 291.905,-473.484"/>
+<text text-anchor="middle" x="283" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
 </g>
 <!-- pipeline&#45;&gt;bus -->
 <g id="edge6" class="edge"><title>pipeline&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M145.922,-512.201C136.246,-506.322 125.816,-498.779 118,-490 113.602,-485.06 109.852,-479.083 106.76,-473.148"/>
-<polygon fill="black" stroke="black" points="109.88,-471.559 102.444,-464.011 103.551,-474.548 109.88,-471.559"/>
-<text text-anchor="middle" x="128" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
+<path fill="none" stroke="black" d="M203.915,-523.371C179.027,-519.683 142.405,-510.883 118,-490 112.89,-485.627 108.842,-479.781 105.686,-473.782"/>
+<polygon fill="black" stroke="black" points="108.756,-472.078 101.437,-464.418 102.382,-474.971 108.756,-472.078"/>
+<text text-anchor="middle" x="127.5" y="-483.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
 </g>
 <!-- pipeline&#45;&gt;clock -->
 <g id="edge8" class="edge"><title>pipeline&#45;&gt;clock</title>
-<path fill="none" stroke="black" d="M172.877,-507.895C172.648,-473.321 172.167,-395.504 172,-330 171.991,-326.444 171.852,-325.552 172,-322 172.101,-319.568 172.241,-317.046 172.404,-314.517"/>
-<polygon fill="black" stroke="black" points="175.913,-314.532 173.179,-304.296 168.933,-314.003 175.913,-314.532"/>
-<text text-anchor="middle" x="183" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
+<path fill="none" stroke="black" d="M224.284,-507.959C211.946,-473.807 186.016,-397.114 176,-330 175.25,-324.974 174.822,-319.591 174.6,-314.374"/>
+<polygon fill="black" stroke="black" points="178.093,-313.998 174.394,-304.069 171.094,-314.137 178.093,-313.998"/>
+<text text-anchor="middle" x="203.5" y="-403.7" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
 </g>
 <!-- plugin -->
 <g id="node14" class="node"><title>plugin</title>
@@ -272,9 +272,9 @@
 </g>
 <!-- plugin&#45;&gt;plugin_feature -->
 <g id="edge42" class="edge"><title>plugin&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M43.1155,-267.679C58.5624,-250.119 82.0245,-223.446 99.3485,-203.751"/>
-<polygon fill="black" stroke="black" points="102.146,-205.87 106.123,-196.05 96.8898,-201.247 102.146,-205.87"/>
-<text text-anchor="middle" x="99" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<path fill="none" stroke="black" d="M42.9458,-267.679C58.2302,-250.119 81.4452,-223.446 98.5869,-203.751"/>
+<polygon fill="black" stroke="black" points="101.364,-205.891 105.29,-196.05 96.0843,-201.295 101.364,-205.891"/>
+<text text-anchor="middle" x="97.5" y="-229.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 <!-- registry -->
 <g id="node17" class="node"><title>registry</title>
@@ -287,7 +287,7 @@
 <g id="edge40" class="edge"><title>registry&#45;&gt;plugin</title>
 <path fill="none" stroke="black" d="M27,-347.847C27,-337.925 27,-325.417 27,-314.249"/>
 <polygon fill="black" stroke="black" points="30.5001,-314.081 27,-304.081 23.5001,-314.081 30.5001,-314.081"/>
-<text text-anchor="middle" x="37" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
+<text text-anchor="middle" x="36.5" y="-323.7" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
 </g>
 </g>
 </svg>
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 6aa4058..760feb8 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -54,6 +54,10 @@
 gst_atomic_queue_pop
 
 gst_atomic_queue_length
+
+<SUBSECTION Standard>
+GST_TYPE_ATOMIC_QUEUE
+gst_atomic_queue_get_type
 </SECTION>
 
 <SECTION>
@@ -188,9 +192,13 @@
 
 gst_buffer_get_sizes
 gst_buffer_get_size
+gst_buffer_get_sizes_range
+gst_buffer_resize_range
 gst_buffer_resize
 gst_buffer_set_size
 
+gst_buffer_peek_memory
+
 gst_buffer_n_memory
 gst_buffer_insert_memory
 gst_buffer_replace_memory_range
@@ -208,6 +216,7 @@
 gst_buffer_remove_all_memory
 
 gst_buffer_map
+gst_buffer_map_range
 gst_buffer_unmap
 
 gst_buffer_memcmp
@@ -227,6 +236,7 @@
 gst_buffer_replace
 
 gst_buffer_append
+gst_buffer_append_region
 
 gst_buffer_get_meta
 gst_buffer_add_meta
@@ -577,6 +587,7 @@
 gst_element_factory_get_longname
 gst_pad_get_caps_reffed
 gst_pad_peer_get_caps_reffed
+gst_pad_set_caps
 gst_buffer_new_and_alloc
 GST_BUFFER_TIMESTAMP
 GST_BUFFER_TIMESTAMP_IS_VALID
@@ -963,6 +974,7 @@
 gst_event_parse_gap
 
 gst_event_new_stream_start
+gst_event_parse_stream_start
 
 gst_event_new_segment
 gst_event_parse_segment
@@ -1015,6 +1027,9 @@
 
 gst_event_new_toc_select
 gst_event_parse_toc_select
+
+gst_event_new_segment_done
+gst_event_parse_segment_done
 <SUBSECTION Standard>
 GstEventClass
 GST_EVENT
@@ -1270,46 +1285,14 @@
 gst_iterator_result_get_type
 </SECTION>
 
-
 <SECTION>
-<FILE>gstmemory</FILE>
-<TITLE>GstMemory</TITLE>
-
+<FILE>gstallocator</FILE>
+<TITLE>GstAllocator</TITLE>
 gst_memory_alignment
 
-GstMemoryFlags
-GST_MEMORY_FLAGS
-GST_MEMORY_FLAG_IS_SET
-GST_MEMORY_FLAG_UNSET
-GST_MEMORY_IS_READONLY
-GST_MEMORY_IS_ZERO_PADDED
-GST_MEMORY_IS_ZERO_PREFIXED
-
-GstMemory
-
-GstMapFlags
-GstMapInfo
-GST_MAP_INFO_INIT
-GST_MAP_READWRITE
-
-GstAllocationParams
-
-GstAllocatorAllocFunction
-GstMemoryMapFunction
-GstMemoryUnmapFunction
-GstMemoryFreeFunction
-GstMemoryCopyFunction
-GstMemoryShareFunction
-GstMemoryIsSpanFunction
-
-GstMemoryInfo
-
 GstAllocator
-
-gst_allocator_new
-gst_allocator_get_memory_type
-gst_allocator_ref
-gst_allocator_unref
+GstAllocatorFlags
+GstAllocationParams
 
 GST_ALLOCATOR_SYSMEM
 gst_allocator_find
@@ -1321,17 +1304,67 @@
 gst_allocation_params_free
 
 gst_allocator_alloc
+gst_allocator_free
 
 gst_memory_new_wrapped
 
+<SUBSECTION Standard>
+GST_ALLOCATOR
+GST_ALLOCATOR_CAST
+GST_ALLOCATOR_CLASS
+GST_ALLOCATOR_GET_CLASS
+GST_IS_ALLOCATOR
+GST_IS_ALLOCATOR_CLASS
+GstAllocatorClass
+<SUBSECTION Private>
+GST_TYPE_ALLOCATOR_FLAGS
+GstAllocatorPrivate
+GST_TYPE_ALLOCATION_PARAMS
+gst_allocation_params_get_type
+GST_TYPE_ALLOCATOR
+gst_allocator_get_type
+gst_allocator_flags_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gstmemory</FILE>
+<TITLE>GstMemory</TITLE>
+
+GstMemoryFlags
+GST_MEMORY_FLAGS
+GST_MEMORY_FLAG_IS_SET
+GST_MEMORY_FLAG_UNSET
+GST_MEMORY_IS_READONLY
+GST_MEMORY_IS_NO_SHARE
+GST_MEMORY_IS_ZERO_PADDED
+GST_MEMORY_IS_ZERO_PREFIXED
+
+GstMemory
+
+GstMapFlags
+GST_MAP_READWRITE
+
+GstMapInfo
+GST_MAP_INFO_INIT
+
+GstMemoryMapFunction
+GstMemoryUnmapFunction
+GstMemoryCopyFunction
+GstMemoryShareFunction
+GstMemoryIsSpanFunction
+
+gst_memory_init
+
 gst_memory_ref
 gst_memory_unref
 
-gst_memory_is_exclusive
-
 gst_memory_get_sizes
 gst_memory_resize
 
+gst_memory_lock
+gst_memory_unlock
+gst_memory_is_writable
+
 gst_memory_make_mapped
 gst_memory_map
 gst_memory_unmap
@@ -1344,14 +1377,12 @@
 GST_TYPE_MEMORY
 gst_memory_get_type
 GST_MEMORY_CAST
+GST_TYPE_LOCK_FLAGS
+gst_lock_flags_get_type
 GST_TYPE_MAP_FLAGS
 gst_map_flags_get_type
 GST_TYPE_MEMORY_FLAGS
 gst_memory_flags_get_type
-GST_TYPE_ALLOCATION_PARAMS
-gst_allocation_params_get_type
-GST_TYPE_ALLOCATOR
-gst_allocator_get_type
 </SECTION>
 
 <SECTION>
@@ -1425,6 +1456,8 @@
 gst_message_parse_qos_stats
 gst_message_new_toc
 gst_message_parse_toc
+gst_message_new_reset_time
+gst_message_parse_reset_time
 
 GstStructureChangeType
 gst_message_new_structure_change
@@ -1474,37 +1507,49 @@
 <FILE>gstminiobject</FILE>
 <TITLE>GstMiniObject</TITLE>
 GstMiniObject
-GstMiniObjectFlags
 GstMiniObjectCopyFunction
 GstMiniObjectDisposeFunction
 GstMiniObjectFreeFunction
-GstMiniObjectWeakNotify
+GstMiniObjectNotify
 
 GST_MINI_OBJECT_TYPE
+
+GstMiniObjectFlags
 GST_MINI_OBJECT_FLAGS
 GST_MINI_OBJECT_FLAG_IS_SET
 GST_MINI_OBJECT_FLAG_SET
 GST_MINI_OBJECT_FLAG_UNSET
+GST_MINI_OBJECT_IS_LOCKABLE
+
+GstLockFlags
+GST_LOCK_FLAG_READWRITE
+
 GST_MINI_OBJECT_REFCOUNT
 GST_MINI_OBJECT_REFCOUNT_VALUE
-GST_MINI_OBJECT_SIZE
 
 GST_DEFINE_MINI_OBJECT_TYPE
 gst_mini_object_init
 
-gst_mini_object_copy
-gst_mini_object_is_writable
-gst_mini_object_make_writable
-
 gst_mini_object_ref
 gst_mini_object_unref
 
 gst_mini_object_weak_ref
 gst_mini_object_weak_unref
 
+gst_mini_object_lock
+gst_mini_object_unlock
+gst_mini_object_is_writable
+gst_mini_object_make_writable
+
+gst_mini_object_copy
+
+gst_mini_object_set_qdata
+gst_mini_object_get_qdata
+gst_mini_object_steal_qdata
+
 gst_mini_object_replace
-gst_mini_object_steal
 gst_mini_object_take
+gst_mini_object_steal
 
 <SUBSECTION Standard>
 GST_MINI_OBJECT
@@ -1613,7 +1658,6 @@
 gst_pad_get_allowed_caps
 gst_pad_get_current_caps
 gst_pad_get_pad_template_caps
-gst_pad_set_caps
 
 gst_pad_get_peer
 gst_pad_use_fixed_caps
@@ -1743,6 +1787,8 @@
 gst_pad_set_element_private
 gst_pad_get_element_private
 
+gst_pad_create_stream_id
+
 GstPadForwardFunction
 gst_pad_forward
 <SUBSECTION Core>
@@ -1837,6 +1883,7 @@
 GST_PAD_GETRANGEFUNC
 GST_PAD_ITERINTLINKFUNC
 GST_PAD_IS_FLUSHING
+GST_PAD_IS_EOS
 GST_PAD_LINKFUNC
 GST_PAD_UNLINKFUNC
 GST_PAD_QUERYFUNC
@@ -2185,7 +2232,6 @@
 gst_query_parse_caps
 gst_query_set_caps_result
 gst_query_parse_caps_result
-gst_query_intersect_caps_result
 
 gst_query_new_accept_caps
 gst_query_parse_accept_caps
@@ -2225,7 +2271,7 @@
 gst_query_get_n_allocation_metas
 gst_query_parse_nth_allocation_meta
 gst_query_remove_nth_allocation_meta
-gst_query_has_allocation_meta
+gst_query_find_allocation_meta
 
 GstSchedulingFlags
 gst_query_new_scheduling
@@ -2237,10 +2283,6 @@
 gst_query_has_scheduling_mode
 
 gst_query_new_drain
-
-gst_query_new_toc
-gst_query_parse_toc
-gst_query_set_toc
 <SUBSECTION Standard>
 GstQueryClass
 GST_QUERY
@@ -2532,6 +2574,7 @@
 gst_tag_list_new_empty
 gst_tag_list_new_valist
 gst_tag_list_new_from_string
+gst_tag_list_free
 gst_tag_list_to_string
 gst_tag_list_is_empty
 gst_tag_list_is_equal
@@ -2577,8 +2620,8 @@
 gst_tag_list_get_date_index
 gst_tag_list_get_date_time
 gst_tag_list_get_date_time_index
-gst_tag_list_get_buffer
-gst_tag_list_get_buffer_index
+gst_tag_list_get_sample
+gst_tag_list_get_sample_index
 <SUBSECTION Standard>
 GST_TAG_LIST
 GST_IS_TAG_LIST
@@ -2662,8 +2705,9 @@
 gst_task_set_pool
 gst_task_get_pool
 
-GstTaskThreadCallbacks
-gst_task_set_thread_callbacks
+GstTaskThreadFunc
+gst_task_set_enter_callback
+gst_task_set_leave_callback
 
 gst_task_get_state
 gst_task_set_state
@@ -2695,22 +2739,51 @@
 <FILE>gsttoc</FILE>
 <TITLE>GstToc</TITLE>
 GstToc
+GstTocScope
 GstTocEntry
 GstTocEntryType
+gst_toc_new
+gst_toc_ref
+gst_toc_unref
+gst_toc_copy
+gst_toc_make_writable
+gst_toc_get_scope
+gst_toc_get_entries
+gst_toc_append_entry
+gst_toc_get_tags
+gst_toc_merge_tags
+gst_toc_set_tags
+gst_toc_dump
 gst_toc_entry_new
 gst_toc_entry_new_with_pad
-gst_toc_entry_free
-gst_toc_new
-gst_toc_free
+gst_toc_entry_ref
+gst_toc_entry_unref
 gst_toc_entry_copy
-gst_toc_copy
+gst_toc_entry_make_writable
 gst_toc_find_entry
-gst_toc_entry_get_start_stop
-gst_toc_entry_set_start_stop
+gst_toc_entry_get_toc
+gst_toc_entry_get_uid
+gst_toc_entry_get_parent
+gst_toc_entry_get_sub_entries
+gst_toc_entry_append_sub_entry
+gst_toc_entry_get_start_stop_times
+gst_toc_entry_set_start_stop_times
+gst_toc_entry_get_tags
+gst_toc_entry_merge_tags
+gst_toc_entry_set_tags
 gst_toc_entry_type_get_nick
+gst_toc_entry_get_entry_type
+gst_toc_entry_is_alternative
+gst_toc_entry_is_sequence
+GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE
+GST_TOC_ENTRY_TYPE_IS_SEQUENCE
 <SUBSECTION Standard>
+GST_TYPE_TOC
+GST_TYPE_TOC_ENTRY
 GST_TYPE_TOC_ENTRY_TYPE
 <SUBSECTION Private>
+gst_toc_get_type
+gst_toc_entry_get_type
 gst_toc_entry_type_get_type
 </SECTION>
 
@@ -2719,14 +2792,10 @@
 <FILE>gsttocsetter</FILE>
 <TITLE>GstTocSetter</TITLE>
 GstTocSetter
-GstTocSetterIFace
-gst_toc_setter_get_toc
-gst_toc_setter_get_toc_copy
-gst_toc_setter_reset_toc
+GstTocSetterInterface
 gst_toc_setter_set_toc
-gst_toc_setter_get_toc_entry
-gst_toc_setter_get_toc_entry_copy
-gst_toc_setter_add_toc_entry
+gst_toc_setter_get_toc
+gst_toc_setter_reset
 <SUBSECTION Standard>
 GST_IS_TOC_SETTER
 GST_TOC_SETTER
@@ -2764,6 +2833,7 @@
 gst_type_find_factory_get_list
 gst_type_find_factory_get_extensions
 gst_type_find_factory_get_caps
+gst_type_find_factory_has_function
 gst_type_find_factory_call_function
 <SUBSECTION Standard>
 GstTypeFindFactoryClass
@@ -2872,8 +2942,6 @@
 
 gst_flow_get_name
 gst_flow_to_quark
-gst_print_element_args
-gst_print_pad_caps
 gst_guint64_to_gdouble
 gst_gdouble_to_guint64
 gst_util_dump_mem
@@ -2921,11 +2989,28 @@
 gst_date_time_new
 gst_date_time_new_from_unix_epoch_local_time
 gst_date_time_new_from_unix_epoch_utc
+gst_date_time_new_ymd
 gst_date_time_new_local_time
 gst_date_time_new_now_local_time
 gst_date_time_new_now_utc
 gst_date_time_ref
 gst_date_time_unref
+
+gst_date_time_has_day
+gst_date_time_has_month
+gst_date_time_has_second
+gst_date_time_has_time
+gst_date_time_has_year
+
+gst_date_time_new_y
+gst_date_time_new_ym
+gst_date_time_new
+
+gst_date_time_new_from_iso8601_string
+gst_date_time_to_iso8601_string
+
+gst_date_time_new_from_g_date_time
+gst_date_time_to_g_date_time
 </SECTION>
 
 <SECTION>
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index 1587b4c..5ebfeb2 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -157,7 +157,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10089840"></a><h3>Notes</h3>
+<a name="idp6749552"></a><h3>Notes</h3>
 <p>
 A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> internally intercepts every <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> posted by its children and
 implements the following default behaviour for each of them:
@@ -308,7 +308,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstBin-struct.children"></a>children</code></em>;</span></p></td>
-<td>the list of children in this bin</td>
+<td>the list of children in this bin. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Element]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstBin-struct.children-cookie"></a>children_cookie</code></em>;</span></p></td>
@@ -320,7 +321,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstBin-struct.messages"></a>messages</code></em>;</span></p></td>
-<td>queued and cached messages</td>
+<td>queued and cached messages. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Message]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBin-struct.polling"></a>polling</code></em>;</span></p></td>
@@ -839,7 +841,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -934,7 +935,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1022,7 +1022,6 @@
 of its children on its own.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.13</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1040,7 +1039,6 @@
 forwarded message.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 <div class="refsect1">
@@ -1078,7 +1076,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/GstBus.html b/docs/gst/html/GstBus.html
index 35747cb..026f2a7 100644
--- a/docs/gst/html/GstBus.html
+++ b/docs/gst/html/GstBus.html
@@ -51,10 +51,10 @@
 enum                <a class="link" href="GstBus.html#GstBusSyncReply" title="enum GstBusSyncReply">GstBusSyncReply</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstBus.html#GstBusFunc" title="GstBusFunc ()">*GstBusFunc</a>)                       (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a class="link" href="GstBus.html#GstBusSyncReply" title="enum GstBusSyncReply"><span class="returnvalue">GstBusSyncReply</span></a>     (<a class="link" href="GstBus.html#GstBusSyncHandler" title="GstBusSyncHandler ()">*GstBusSyncHandler</a>)                (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *            <a class="link" href="GstBus.html#gst-bus-new" title="gst_bus_new ()">gst_bus_new</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBus.html#gst-bus-post" title="gst_bus_post ()">gst_bus_post</a>                        (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
@@ -72,7 +72,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBus.html#gst-bus-set-sync-handler" title="gst_bus_set_sync_handler ()">gst_bus_set_sync_handler</a>            (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstBus.html#GstBusSyncHandler" title="GstBusSyncHandler ()"><span class="type">GstBusSyncHandler</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="GstBus.html#GstBusSyncReply" title="enum GstBusSyncReply"><span class="returnvalue">GstBusSyncReply</span></a>     <a class="link" href="GstBus.html#gst-bus-sync-signal-handler" title="gst_bus_sync_signal_handler ()">gst_bus_sync_signal_handler</a>         (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
@@ -253,7 +254,7 @@
 <a name="GstBusFunc"></a><h3>GstBusFunc ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstBusFunc)                       (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Specifies the type of function passed to <a class="link" href="GstBus.html#gst-bus-add-watch" title="gst_bus_add_watch ()"><code class="function">gst_bus_add_watch()</code></a> or
 <a class="link" href="GstBus.html#gst-bus-add-watch-full" title="gst_bus_add_watch_full ()"><code class="function">gst_bus_add_watch_full()</code></a>, which is called from the mainloop when a message
@@ -280,7 +281,7 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data that has been given, when registering the handler</td>
 </tr>
 <tr>
@@ -296,7 +297,7 @@
 <a name="GstBusSyncHandler"></a><h3>GstBusSyncHandler ()</h3>
 <pre class="programlisting"><a class="link" href="GstBus.html#GstBusSyncReply" title="enum GstBusSyncReply"><span class="returnvalue">GstBusSyncReply</span></a>     (*GstBusSyncHandler)                (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Handler will be invoked synchronously, when a new message has been injected
 into the bus. This function is mostly used internally. Only one sync handler
@@ -319,7 +320,7 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data that has been given, when registering the handler</td>
 </tr>
 <tr>
@@ -484,7 +485,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -521,7 +521,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -565,7 +564,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -600,7 +598,8 @@
 <a name="gst-bus-set-sync-handler"></a><h3>gst_bus_set_sync_handler ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_bus_set_sync_handler            (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstBus.html#GstBusSyncHandler" title="GstBusSyncHandler ()"><span class="type">GstBusSyncHandler</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Sets the synchronous handler on the bus. The function will be called
 every time a new message is posted on the bus. Note that the function
@@ -622,12 +621,17 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>The handler function to install</td>
+<td>The handler function to install. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>User data that will be sent to the handler function.</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>called when <em class="parameter"><code>user_data</code></em> becomes unused</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -698,8 +702,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Adds a bus watch to the default main context with the given <em class="parameter"><code>priority</code></em> (e.g.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). Since 0.10.33 it is also possible to use a non-default
-main context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> (before
+<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). It is also possible to use a non-default  main
+context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> (before
 one had to create a bus watch source and attach it to the desired main
 context 'manually').
 </p>
@@ -716,6 +720,9 @@
 The watch can be removed using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-remove"><code class="function">g_source_remove()</code></a> or by returning FALSE
 from <em class="parameter"><code>func</code></em>.
 </p>
+<p>
+MT safe.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -742,8 +749,7 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>The event source id.
-Rename to: gst_bus_add_watch
-MT safe.</td>
+Rename to: gst_bus_add_watch</td>
 </tr>
 </tbody>
 </table></div>
@@ -756,8 +762,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Adds a bus watch to the default main context with the default priority
-(<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). Since 0.10.33 it is also possible to use a non-default
-main context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> (before
+(<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). It is also possible to use a non-default main
+context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> (before
 one had to create a bus watch source and attach it to the desired main
 context 'manually').
 </p>
@@ -897,7 +903,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_bus_add_signal_watch            (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);</pre>
 <p>
 Adds a bus signal watch to the default main context with the default priority
-(<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). Since 0.10.33 it is also possible to use a non-default
+(<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). It is also possible to use a non-default
 main context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> (before
 one had to create a bus watch source and attach it to the desired main
 context 'manually').
@@ -929,8 +935,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> priority</code></em>);</pre>
 <p>
 Adds a bus signal watch to the default main context with the given <em class="parameter"><code>priority</code></em>
-(e.g. <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). Since 0.10.33 it is also possible to use a
-non-default main context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a>
+(e.g. <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS"><code class="literal">G_PRIORITY_DEFAULT</code></a>). It is also possible to use a non-default main
+context set up using <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a>
 (before one had to create a bus watch source and attach it to the desired
 main context 'manually').
 </p>
diff --git a/docs/gst/html/GstChildProxy.html b/docs/gst/html/GstChildProxy.html
index c0cb6da..a025435 100644
--- a/docs/gst/html/GstChildProxy.html
+++ b/docs/gst/html/GstChildProxy.html
@@ -59,28 +59,28 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> **target</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> **pspec</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-property" title="gst_child_proxy_get_property ()">gst_child_proxy_get_property</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-property" title="gst_child_proxy_get_property ()">gst_child_proxy_get_property</a>        (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-valist" title="gst_child_proxy_get_valist ()">gst_child_proxy_get_valist</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get-valist" title="gst_child_proxy_get_valist ()">gst_child_proxy_get_valist</a>          (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get" title="gst_child_proxy_get ()">gst_child_proxy_get</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-get" title="gst_child_proxy_get ()">gst_child_proxy_get</a>                 (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-property" title="gst_child_proxy_set_property ()">gst_child_proxy_set_property</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-property" title="gst_child_proxy_set_property ()">gst_child_proxy_set_property</a>        (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-valist" title="gst_child_proxy_set_valist ()">gst_child_proxy_set_valist</a>          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set-valist" title="gst_child_proxy_set_valist ()">gst_child_proxy_set_valist</a>          (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set" title="gst_child_proxy_set ()">gst_child_proxy_set</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-set" title="gst_child_proxy_set ()">gst_child_proxy_set</a>                 (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-added" title="gst_child_proxy_child_added ()">gst_child_proxy_child_added</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-added" title="gst_child_proxy_child_added ()">gst_child_proxy_child_added</a>         (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-removed" title="gst_child_proxy_child_removed ()">gst_child_proxy_child_removed</a>       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstChildProxy.html#gst-child-proxy-child-removed" title="gst_child_proxy_child_removed ()">gst_child_proxy_child_removed</a>       (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
 </pre>
@@ -272,6 +272,9 @@
 <p>
 Looks up which object and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> would be effected by the given <em class="parameter"><code>name</code></em>.
 </p>
+<p>
+MT safe.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -299,8 +302,7 @@
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE if <em class="parameter"><code>target</code></em> and <em class="parameter"><code>pspec</code></em> could be found. FALSE otherwise. In that
 case the values for <em class="parameter"><code>pspec</code></em> and <em class="parameter"><code>target</code></em> are not modified. Unref <em class="parameter"><code>target</code></em> after
-usage.
-MT safe.</td>
+usage. For plain GObjects <em class="parameter"><code>target</code></em> is the same as <em class="parameter"><code>object</code></em>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -308,7 +310,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get-property"></a><h3>gst_child_proxy_get_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_property        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_property        (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>
@@ -337,7 +339,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get-valist"></a><h3>gst_child_proxy_get_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_valist          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get_valist          (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>
@@ -364,7 +366,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-get"></a><h3>gst_child_proxy_get ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_get                 (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
@@ -391,7 +393,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-set-property"></a><h3>gst_child_proxy_set_property ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_property        (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_property        (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
 <p>
@@ -418,7 +420,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-set-valist"></a><h3>gst_child_proxy_set_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_valist          (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set_valist          (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
 <p>
@@ -445,7 +447,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-set"></a><h3>gst_child_proxy_set ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_set                 (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *object</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *first_property_name</code></em>,
                                                          <em class="parameter"><code>...</code></em>);</pre>
 <p>
@@ -472,7 +474,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-child-added"></a><h3>gst_child_proxy_child_added ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_added         (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_added         (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
@@ -482,7 +484,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
 <td>the parent object</td>
 </tr>
 <tr>
@@ -499,7 +501,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-child-proxy-child-removed"></a><h3>gst_child_proxy_child_removed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_removed       (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_child_proxy_child_removed       (<em class="parameter"><code><a class="link" href="GstChildProxy.html" title="GstChildProxy"><span class="type">GstChildProxy</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *child</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
@@ -509,7 +511,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
 <td>the parent object</td>
 </tr>
 <tr>
diff --git a/docs/gst/html/GstClock.html b/docs/gst/html/GstClock.html
index ca4dae0..863417e 100644
--- a/docs/gst/html/GstClock.html
+++ b/docs/gst/html/GstClock.html
@@ -128,9 +128,6 @@
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTimeDiff" title="GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
 <a class="link" href="GstClock.html#GstClockReturn" title="enum GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstClock.html#gst-clock-id-wait-async" title="gst_clock_id_wait_async ()">gst_clock_id_wait_async</a>             (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockCallback" title="GstClockCallback ()"><span class="type">GstClockCallback</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="GstClock.html#GstClockReturn" title="enum GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstClock.html#gst-clock-id-wait-async-full" title="gst_clock_id_wait_async_full ()">gst_clock_id_wait_async_full</a>        (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockCallback" title="GstClockCallback ()"><span class="type">GstClockCallback</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_data</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstClock.html#gst-clock-id-unschedule" title="gst_clock_id_unschedule ()">gst_clock_id_unschedule</a>             (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>);
@@ -358,6 +355,10 @@
 <p>
 Constant to define an undefined clock time.
 </p>
+<p>
+Value: 18446744073709551615
+Type: GstClockTime
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -385,6 +386,7 @@
 </p>
 <p>
 Value: 1000000000
+Type: GstClockTime
 </p>
 </div>
 <hr>
@@ -397,6 +399,7 @@
 </p>
 <p>
 Value: 1000000
+Type: GstClockTime
 </p>
 </div>
 <hr>
@@ -409,6 +412,7 @@
 </p>
 <p>
 Value: 1000
+Type: GstClockTime
 </p>
 </div>
 <hr>
@@ -421,6 +425,7 @@
 </p>
 <p>
 Value: 1
+Type: GstClockTime
 </p>
 </div>
 <hr>
@@ -438,7 +443,6 @@
 <td>the time</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -455,7 +459,6 @@
 <td>the time</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -472,7 +475,6 @@
 <td>the time</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -489,7 +491,6 @@
 <td>the time</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -834,7 +835,7 @@
 </tr>
 <tr>
 <td><p><a name="GST-CLOCK-DONE:CAPS"></a><span class="term"><code class="literal">GST_CLOCK_DONE</code></span></p></td>
-<td>The ClockID is done waiting (Since: 0.10.32)
+<td>The ClockID is done waiting
 </td>
 </tr>
 </tbody>
@@ -1223,7 +1224,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.32</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1265,7 +1265,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1354,7 +1353,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.13</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1592,46 +1590,6 @@
 <a name="gst-clock-id-wait-async"></a><h3>gst_clock_id_wait_async ()</h3>
 <pre class="programlisting"><a class="link" href="GstClock.html#GstClockReturn" title="enum GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      gst_clock_id_wait_async             (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockCallback" title="GstClockCallback ()"><span class="type">GstClockCallback</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Register a callback on the given <a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> <em class="parameter"><code>id</code></em> with the given
-function and user_data. When passing a <a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> with an invalid
-time to this function, the callback will be called immediately
-with  a time set to GST_CLOCK_TIME_NONE. The callback will
-be called when the time of <em class="parameter"><code>id</code></em> has been reached.
-</p>
-<p>
-The callback <em class="parameter"><code>func</code></em> can be invoked from any thread, either provided by the
-core or from a streaming thread. The application should be prepared for this.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
-<td>a <a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> to wait on</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>The callback function</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data passed in the callback</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the result of the non blocking wait.
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-clock-id-wait-async-full"></a><h3>gst_clock_id_wait_async_full ()</h3>
-<pre class="programlisting"><a class="link" href="GstClock.html#GstClockReturn" title="enum GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      gst_clock_id_wait_async_full        (<em class="parameter"><code><a class="link" href="GstClock.html#GstClockID" title="GstClockID"><span class="type">GstClockID</span></a> id</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockCallback" title="GstClockCallback ()"><span class="type">GstClockCallback</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_data</code></em>);</pre>
 <p>
@@ -1672,7 +1630,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/GstControlBinding.html b/docs/gst/html/GstControlBinding.html
index ac541c4..4bd9f5f 100644
--- a/docs/gst/html/GstControlBinding.html
+++ b/docs/gst/html/GstControlBinding.html
@@ -46,10 +46,10 @@
 
 struct              <a class="link" href="GstControlBinding.html#GstControlBinding-struct" title="struct GstControlBinding">GstControlBinding</a>;
 struct              <a class="link" href="GstControlBinding.html#GstControlBindingClass" title="struct GstControlBindingClass">GstControlBindingClass</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="GstControlBinding.html#GstControlBindingConvert" title="GstControlBindingConvert ()">*GstControlBindingConvert</a>)         (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+<span class="returnvalue">void</span>                (<a class="link" href="GstControlBinding.html#GstControlBindingConvert" title="GstControlBindingConvert ()">*GstControlBindingConvert</a>)         (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> src_value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest_value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-sync-values" title="gst_control_binding_sync_values ()">gst_control_binding_sync_values</a>     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-sync-values" title="gst_control_binding_sync_values ()">gst_control_binding_sync_values</a>     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> last_sync</code></em>);
@@ -66,9 +66,9 @@
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> interval</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_values</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *values</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstControlBinding.html#gst-control-binding-set-disabled" title="gst_control_binding_set_disabled ()">gst_control_binding_set_disabled</a>    (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="GstControlBinding.html#gst-control-binding-set-disabled" title="gst_control_binding_set_disabled ()">gst_control_binding_set_disabled</a>    (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-is-disabled" title="gst_control_binding_is_disabled ()">gst_control_binding_is_disabled</a>     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstControlBinding.html#gst-control-binding-is-disabled" title="gst_control_binding_is_disabled ()">gst_control_binding_is_disabled</a>     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -126,10 +126,10 @@
   GstObjectClass parent_class;
 
   /* virtual methods */
-  gboolean (* sync_values) (GstControlBinding *self, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
-  GValue * (* get_value) (GstControlBinding *self, GstClockTime timestamp);
-  gboolean (* get_value_array) (GstControlBinding *self, GstClockTime timestamp,GstClockTime interval, guint n_values, gpointer values);
-  gboolean (* get_g_value_array) (GstControlBinding *self, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
+  gboolean (* sync_values) (GstControlBinding *binding, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
+  GValue * (* get_value) (GstControlBinding *binding, GstClockTime timestamp);
+  gboolean (* get_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, gpointer values);
+  gboolean (* get_g_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
 };
 </pre>
 <p>
@@ -164,7 +164,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstControlBindingConvert"></a><h3>GstControlBindingConvert ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstControlBindingConvert)         (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstControlBindingConvert)         (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> src_value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest_value</code></em>);</pre>
 <p>
@@ -174,7 +174,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the <a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> instance</td>
 </tr>
 <tr>
@@ -191,12 +191,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-control-binding-sync-values"></a><h3>gst_control_binding_sync_values ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_sync_values     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_sync_values     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> last_sync</code></em>);</pre>
 <p>
-Sets the property of the <em class="parameter"><code>object</code></em>, according to the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSources</span></a> that
+Sets the property of the <em class="parameter"><code>object</code></em>, according to the <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSources</span></a> that
 handle them and for the given timestamp.
 </p>
 <p>
@@ -207,7 +207,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the control binding</td>
 </tr>
 <tr>
@@ -243,7 +243,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the control binding</td>
 </tr>
 <tr>
@@ -284,7 +284,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the control binding</td>
 </tr>
 <tr>
@@ -333,7 +333,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the control binding</td>
 </tr>
 <tr>
@@ -363,7 +363,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-control-binding-set-disabled"></a><h3>gst_control_binding_set_disabled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_control_binding_set_disabled    (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_control_binding_set_disabled    (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> disabled</code></em>);</pre>
 <p>
 This function is used to disable a control binding for some time, i.e.
@@ -373,7 +373,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the control binding</td>
 </tr>
 <tr>
@@ -387,7 +387,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-control-binding-is-disabled"></a><h3>gst_control_binding_is_disabled ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_is_disabled     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *self</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_control_binding_is_disabled     (<em class="parameter"><code><a class="link" href="GstControlBinding.html" title="GstControlBinding"><span class="type">GstControlBinding</span></a> *binding</code></em>);</pre>
 <p>
 Check if the control binding is disabled.
 </p>
@@ -395,7 +395,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>binding</code></em> :</span></p></td>
 <td>the control binding</td>
 </tr>
 <tr>
diff --git a/docs/gst/html/GstControlSource.html b/docs/gst/html/GstControlSource.html
index 2f5d457..f989534 100644
--- a/docs/gst/html/GstControlSource.html
+++ b/docs/gst/html/GstControlSource.html
@@ -305,7 +305,7 @@
 <td>the number of values to fetch</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value_array</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>values</code></em> :</span></p></td>
 <td>array to put control-values in</td>
 </tr>
 <tr>
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index 87250a8..54710f2 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -257,8 +257,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</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><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> cur_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
 </pre>
@@ -455,7 +455,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElement-struct.pads"></a>pads</code></em>;</span></p></td>
-<td>list of pads</td>
+<td>list of pads. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Pad]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numsrcpads"></a>numsrcpads</code></em>;</span></p></td>
@@ -463,7 +464,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElement-struct.srcpads"></a>srcpads</code></em>;</span></p></td>
-<td>list of source pads</td>
+<td>list of source pads. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Pad]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstElement-struct.numsinkpads"></a>numsinkpads</code></em>;</span></p></td>
@@ -471,7 +473,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstElement-struct.sinkpads"></a>sinkpads</code></em>;</span></p></td>
-<td>list of sink pads</td>
+<td>list of sink pads. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Pad]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstElement-struct.pads-cookie"></a>pads_cookie</code></em>;</span></p></td>
@@ -608,13 +611,12 @@
 <div class="refsect2">
 <a name="GstElementFlags"></a><h3>enum GstElementFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_ELEMENT_FLAG_UNPARENTING    = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
-  GST_ELEMENT_FLAG_LOCKED_STATE   = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
-  GST_ELEMENT_FLAG_SINK           = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
-  GST_ELEMENT_FLAG_SOURCE         = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
-  GST_ELEMENT_FLAG_PROVIDE_CLOCK  = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
-  GST_ELEMENT_FLAG_REQUIRE_CLOCK  = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
-  GST_ELEMENT_FLAG_INDEXABLE      = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
+  GST_ELEMENT_FLAG_LOCKED_STATE   = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
+  GST_ELEMENT_FLAG_SINK           = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
+  GST_ELEMENT_FLAG_SOURCE         = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
+  GST_ELEMENT_FLAG_PROVIDE_CLOCK  = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
+  GST_ELEMENT_FLAG_REQUIRE_CLOCK  = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
+  GST_ELEMENT_FLAG_INDEXABLE      = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
   /* padding */
   GST_ELEMENT_FLAG_LAST           = (GST_OBJECT_FLAG_LAST &lt;&lt; 10)
 } GstElementFlags;
@@ -626,12 +628,6 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-ELEMENT-FLAG-UNPARENTING:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_UNPARENTING</code></span></p></td>
-<td>Child is being removed from the parent bin.
- <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a> on a child already being removed immediately returns FALSE
-</td>
-</tr>
-<tr>
 <td><p><a name="GST-ELEMENT-FLAG-LOCKED-STATE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_LOCKED_STATE</code></span></p></td>
 <td>ignore state changes from parent
 </td>
@@ -643,7 +639,7 @@
 </tr>
 <tr>
 <td><p><a name="GST-ELEMENT-FLAG-SOURCE:CAPS"></a><span class="term"><code class="literal">GST_ELEMENT_FLAG_SOURCE</code></span></p></td>
-<td>the element is a source. Since 0.10.31
+<td>the element is a source.
 </td>
 </tr>
 <tr>
@@ -1031,7 +1027,6 @@
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the target state for.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.13</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1223,7 +1218,6 @@
 <td>a <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to return the start time for.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1336,7 +1330,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1757,7 +1750,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to use as a filter.</td>
+<td>the <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to use as a filter. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1911,7 +1905,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.32</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2006,7 +1999,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to remove from the element. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to remove from the element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2028,6 +2021,10 @@
 be freed after usage. Also more specialized iterators exists such as
 <a class="link" href="GstElement.html#gst-element-iterate-src-pads" title="gst_element_iterate_src_pads ()"><code class="function">gst_element_iterate_src_pads()</code></a> or <a class="link" href="GstElement.html#gst-element-iterate-sink-pads" title="gst_element_iterate_sink_pads ()"><code class="function">gst_element_iterate_sink_pads()</code></a>.
 </p>
+<p>
+The order of pads returned by the iterator will be the order in which
+the pads were added to the element.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -2052,6 +2049,10 @@
 <p>
 Retrieves an iterator of <em class="parameter"><code>element</code></em>'s sink pads.
 </p>
+<p>
+The order of pads returned by the iterator will be the order in which
+the pads were added to the element.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -2076,6 +2077,10 @@
 <p>
 Retrieves an iterator of <em class="parameter"><code>element</code></em>'s source pads.
 </p>
+<p>
+The order of pads returned by the iterator will be the order in which
+the pads were added to the element.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -2322,7 +2327,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2563,7 +2567,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2593,7 +2596,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3155,7 +3157,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3554,7 +3555,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3563,8 +3563,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> rate</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><a class="link" href="gstreamer-GstEvent.html#GstSeekFlags" title="enum GstSeekFlags"><span class="type">GstSeekFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> cur_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">gint64</span> cur</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> start_type</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstSeekType" title="enum GstSeekType"><span class="type">GstSeekType</span></a> stop_type</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
 <p>
@@ -3595,12 +3595,12 @@
 <td>The optional seek flags.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cur_type</code></em> :</span></p></td>
-<td>The type and flags for the new current position</td>
+<td><p><span class="term"><em class="parameter"><code>start_type</code></em> :</span></p></td>
+<td>The type and flags for the new start position</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>cur</code></em> :</span></p></td>
-<td>The value of the new current position</td>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>The value of the new start position</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>stop_type</code></em> :</span></p></td>
diff --git a/docs/gst/html/GstElementFactory.html b/docs/gst/html/GstElementFactory.html
index 6b75503..8a91ee5 100644
--- a/docs/gst/html/GstElementFactory.html
+++ b/docs/gst/html/GstElementFactory.html
@@ -141,7 +141,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp17385776"></a><p class="title"><b>Example 6. Using an element factory</b></p>
+<a name="idp17551616"></a><p class="title"><b>Example 6. Using an element factory</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -163,11 +163,11 @@
 GstElement <span class="gtkdoc opt">*</span>src<span class="gtkdoc opt">;</span>
 GstElementFactory <span class="gtkdoc opt">*</span>srcfactory<span class="gtkdoc opt">;</span>
 
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
 
-srcfactory <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-find">gst_element_factory_find</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;filesrc&quot;</span><span class="gtkdoc opt">);</span>
+srcfactory <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElementFactory.html#gst-element-factory-find">gst_element_factory_find</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;filesrc&quot;</span><span class="gtkdoc opt">);</span>
 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-return-if-fail">g_return_if_fail</a></span> <span class="gtkdoc opt">(</span>srcfactory <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">);</span>
-src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-create">gst_element_factory_create</a></span> <span class="gtkdoc opt">(</span>srcfactory<span class="gtkdoc opt">,</span> <span class="string">&quot;src&quot;</span><span class="gtkdoc opt">);</span>
+src <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElementFactory.html#gst-element-factory-create">gst_element_factory_create</a></span> <span class="gtkdoc opt">(</span>srcfactory<span class="gtkdoc opt">,</span> <span class="string">&quot;src&quot;</span><span class="gtkdoc opt">);</span>
 <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-return-if-fail">g_return_if_fail</a></span> <span class="gtkdoc opt">(</span>src <span class="gtkdoc opt">!=</span> NULL<span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">...</span></pre></td>
       </tr>
@@ -209,8 +209,7 @@
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
 <td>
 <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> to register the element with, or NULL for
-a static element (note that passing NULL only works in GStreamer 0.10.13
-and later). <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+a static element. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -293,7 +292,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory,</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a>
 </td>
 </tr>
@@ -321,14 +320,15 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory,</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
 <td>a <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of key strings, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
-there is no metadata. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needd.</td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of key strings, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no
+metadata. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. <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> utf8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -433,7 +433,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -526,7 +525,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -555,7 +553,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -584,7 +581,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -613,7 +609,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -654,7 +649,10 @@
 <p>
 Elements of any of the defined GST_ELEMENT_FACTORY_LIST types
 </p>
-<p class="since">Since 0.10.31</p>
+<p>
+Value: 562949953421311
+Type: GstElementFactoryListType
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -664,7 +662,10 @@
 <p>
 All sinks handling audio, video or image media types
 </p>
-<p class="since">Since 0.10.31</p>
+<p>
+Value: 3940649673949188
+Type: GstElementFactoryListType
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -674,7 +675,10 @@
 <p>
 All encoders handling audio media types
 </p>
-<p class="since">Since 0.10.31</p>
+<p>
+Value: 1125899906842626
+Type: GstElementFactoryListType
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -683,7 +687,10 @@
 <p>
 All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders)
 </p>
-<p class="since">Since 0.10.31</p>
+<p>
+Value: 353
+Type: GstElementFactoryListType
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -764,7 +771,10 @@
 media types. If you wish to do this, simply don't specify any
 GST_ELEMENT_FACTORY_TYPE_MEDIA flag.
 </p>
-<p class="since">Since 0.10.31</p>
+<p>
+Value: 18446462598732840960
+Type: GstElementFactoryListType
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -804,7 +814,10 @@
 <p>
 All encoders handling video or image media types
 </p>
-<p class="since">Since 0.10.31</p>
+<p>
+Value: 2814749767106562
+Type: GstElementFactoryListType
+</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -853,7 +866,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -887,7 +899,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -917,7 +928,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstGhostPad.html b/docs/gst/html/GstGhostPad.html
index 45c2f0d..384d997 100644
--- a/docs/gst/html/GstGhostPad.html
+++ b/docs/gst/html/GstGhostPad.html
@@ -58,9 +58,6 @@
                                                          <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *newtarget</code></em>);
 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstGhostPad.html#gst-ghost-pad-get-target" title="gst_ghost_pad_get_target ()">gst_ghost_pad_get_target</a>            (<em class="parameter"><code><a class="link" href="GstGhostPad.html" title="GstGhostPad"><span class="type">GstGhostPad</span></a> *gpad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-construct" title="gst_ghost_pad_construct ()">gst_ghost_pad_construct</a>             (<em class="parameter"><code><a class="link" href="GstGhostPad.html" title="GstGhostPad"><span class="type">GstGhostPad</span></a> *gpad</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstGhostPad.html#gst-ghost-pad-unlink-default" title="gst_ghost_pad_unlink_default ()">gst_ghost_pad_unlink_default</a>        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="returnvalue">GstPadLinkReturn</span></a>    <a class="link" href="GstGhostPad.html#gst-ghost-pad-link-default" title="gst_ghost_pad_link_default ()">gst_ghost_pad_link_default</a>          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *peer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-ghost-pad-activate-mode-default" title="gst_ghost_pad_activate_mode_default ()">gst_ghost_pad_activate_mode_default</a> (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
@@ -71,12 +68,6 @@
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 <a class="link" href="GstGhostPad.html#GstProxyPad"><span class="returnvalue">GstProxyPad</span></a> *       <a class="link" href="GstGhostPad.html#gst-proxy-pad-get-internal" title="gst_proxy_pad_get_internal ()">gst_proxy_pad_get_internal</a>          (<em class="parameter"><code><a class="link" href="GstGhostPad.html#GstProxyPad"><span class="type">GstProxyPad</span></a> *pad</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-proxy-pad-event-default" title="gst_proxy_pad_event_default ()">gst_proxy_pad_event_default</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstGhostPad.html#gst-proxy-pad-query-default" title="gst_proxy_pad_query_default ()">gst_proxy_pad_query_default</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default" title="gst_proxy_pad_iterate_internal_links_default ()">gst_proxy_pad_iterate_internal_links_default</a>
                                                         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>);
@@ -91,7 +82,6 @@
                                                          <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GstGhostPad.html#gst-proxy-pad-unlink-default" title="gst_proxy_pad_unlink_default ()">gst_proxy_pad_unlink_default</a>        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -254,7 +244,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -286,7 +275,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -371,51 +359,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-ghost-pad-unlink-default"></a><h3>gst_ghost_pad_unlink_default ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_ghost_pad_unlink_default        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Invoke the default unlink function of a ghost pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to link.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-ghost-pad-link-default"></a><h3>gst_ghost_pad_link_default ()</h3>
-<pre class="programlisting"><a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="returnvalue">GstPadLinkReturn</span></a>    gst_ghost_pad_link_default          (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *peer</code></em>);</pre>
-<p>
-Invoke the default link function of a ghost pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to link.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>peer</code></em> :</span></p></td>
-<td>the <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> peer</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a class="link" href="GstPad.html#GstPadLinkReturn" title="enum GstPadLinkReturn"><span class="type">GstPadLinkReturn</span></a> of the operation</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -520,73 +463,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-proxy-pad-event-default"></a><h3>gst_proxy_pad_event_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_proxy_pad_event_default         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
-<p>
-Invoke the default event of the proxy pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to push the event to.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
-<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> to send to the pad. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the event was handled.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-proxy-pad-query-default"></a><h3>gst_proxy_pad_query_default ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_proxy_pad_query_default         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *parent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
-<p>
-Invoke the default query function of the proxy pad.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to invoke the default query on.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
-<td>the parent of <em class="parameter"><code>pad</code></em> or NULL</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> to perform. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the query could be performed.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -615,7 +491,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -649,7 +524,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -683,7 +557,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -693,22 +566,41 @@
                                                          <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-proxy-pad-unlink-default"></a><h3>gst_proxy_pad_unlink_default ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_proxy_pad_unlink_default        (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
-Invoke the default unlink function of the proxy pad.
+Invoke the default getrange function of the proxy pad.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody><tr>
+<tbody>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to unlink</td>
-</tr></tbody>
+<td>a src <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, returns <a class="link" href="GstPad.html#GST-FLOW-ERROR:CAPS"><span class="type">GST_FLOW_ERROR</span></a> if not.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>pad</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>The start offset of the buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>The length of the buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a pointer to hold the <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>,
+returns <a class="link" href="GstPad.html#GST-FLOW-ERROR:CAPS"><span class="type">GST_FLOW_ERROR</span></a> if <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> callee-allocates]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> from the pad.</td>
+</tr>
+</tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstObject.html b/docs/gst/html/GstObject.html
index 049fed9..2373aa6 100644
--- a/docs/gst/html/GstObject.html
+++ b/docs/gst/html/GstObject.html
@@ -132,6 +132,7 @@
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
          +----GstObject
+               +----GstAllocator
                +----<a class="link" href="GstPad.html" title="GstPad">GstPad</a>
                +----<a class="link" href="GstPadTemplate.html" title="GstPadTemplate">GstPadTemplate</a>
                +----<a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
@@ -185,7 +186,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp27569216"></a><h3>controlled properties</h3>
+<a name="idp29641840"></a><h3>controlled properties</h3>
 <p>
 Controlled properties offers a lightweight way to adjust gobject
 properties over stream-time. It works by using time-stamped value pairs that
@@ -732,7 +733,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>excluded_props</code></em> :</span></p></td>
 <td>(array zero-terminated=1) (element-type gchar*)
-(allow-none):a set of user-specified properties to exclude or
+(allow-none): a set of user-specified properties to exclude or
 NULL to show all changes.</td>
 </tr>
 </tbody>
@@ -852,11 +853,12 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to reference</td>
+<td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to reference. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> Gst.Object]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A pointer to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>A pointer to <em class="parameter"><code>object</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> Gst.Object]</span>
 </td>
 </tr>
 </tbody>
@@ -879,7 +881,8 @@
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
-<td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to unreference</td>
+<td>a <a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> to unreference. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> Gst.Object]</span>
+</td>
 </tr></tbody>
 </table></div>
 </div>
@@ -1000,7 +1003,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_object_sync_values              (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
 <p>
-Sets the properties of the object, according to the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSources</span></a> that
+Sets the properties of the object, according to the <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSources</span></a> that
 (maybe) handle them and for the given timestamp.
 </p>
 <p>
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index 5487d34..002bf5f 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -76,8 +76,6 @@
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-allowed-caps" title="gst_pad_get_allowed_caps ()">gst_pad_get_allowed_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()">gst_pad_get_current_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstPad.html#gst-pad-get-pad-template-caps" title="gst_pad_get_pad_template_caps ()">gst_pad_get_pad_template_caps</a>       (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()">gst_pad_set_caps</a>                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstPad.html#gst-pad-get-peer" title="gst_pad_get_peer ()">gst_pad_get_peer</a>                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-use-fixed-caps" title="gst_pad_use_fixed_caps ()">gst_pad_use_fixed_caps</a>              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-has-current-caps" title="gst_pad_has_current_caps ()">gst_pad_has_current_caps</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
@@ -301,6 +299,9 @@
 <span class="returnvalue">void</span>                <a class="link" href="GstPad.html#gst-pad-set-element-private" title="gst_pad_set_element_private ()">gst_pad_set_element_private</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> priv</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GstPad.html#gst-pad-get-element-private" title="gst_pad_get_element_private ()">gst_pad_get_element_private</a>         (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="GstPad.html#gst-pad-create-stream-id" title="gst_pad_create_stream_id ()">gst_pad_create_stream_id</a>            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstPad.html#GstPadForwardFunction" title="GstPadForwardFunction ()">*GstPadForwardFunction</a>)            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-forward" title="gst_pad_forward ()">gst_pad_forward</a>                     (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
@@ -313,7 +314,8 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-start-task" title="gst_pad_start_task ()">gst_pad_start_task</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-pause-task" title="gst_pad_pause_task ()">gst_pad_pause_task</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-stop-task" title="gst_pad_stop_task ()">gst_pad_stop_task</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstPad.html#gst-pad-set-active" title="gst_pad_set_active ()">gst_pad_set_active</a>                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
@@ -510,6 +512,7 @@
   GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
   GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST &lt;&lt; 8),
   GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST &lt;&lt; 9),
+  GST_PAD_FLAG_PROXY_SCHEDULING = (GST_OBJECT_FLAG_LAST &lt;&lt; 10),
   /* padding */
   GST_PAD_FLAG_LAST        = (GST_OBJECT_FLAG_LAST &lt;&lt; 16)
 } GstPadFlags;
@@ -580,6 +583,13 @@
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-PAD-FLAG-PROXY-SCHEDULING:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_PROXY_SCHEDULING</code></span></p></td>
+<td>the default query handler will forward
+                     scheduling queries to the internally linked pads
+                     instead of discarding them.
+</td>
+</tr>
+<tr>
 <td><p><a name="GST-PAD-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_LAST</code></span></p></td>
 <td>offset to define more flags
 </td>
@@ -736,7 +746,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -747,7 +756,6 @@
 The default checks done when linking pads (i.e. the ones used by
 <a class="link" href="GstPad.html#gst-pad-link" title="gst_pad_link ()"><code class="function">gst_pad_link()</code></a>).
 </p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -780,28 +788,28 @@
 </p>
 <p>
 Note that the custom return values should not be exposed outside of the
-element scope and are available since 0.10.7.
+element scope.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><a name="GST-FLOW-CUSTOM-SUCCESS-2:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_SUCCESS_2</code></span></p></td>
-<td>Pre-defined custom success code. Since 0.10.29.
+<td>Pre-defined custom success code.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-FLOW-CUSTOM-SUCCESS-1:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_SUCCESS_1</code></span></p></td>
 <td>Pre-defined custom success code (define your
                               custom success code to this to avoid compiler
-                              warnings). Since 0.10.29.
+                              warnings).
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-FLOW-CUSTOM-SUCCESS:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_SUCCESS</code></span></p></td>
 <td>Elements can use values starting from
                               this (and higher) to define custom success
-                              codes. Since 0.10.7.
+                              codes.
 </td>
 </tr>
 <tr>
@@ -845,19 +853,18 @@
 <td><p><a name="GST-FLOW-CUSTOM-ERROR:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_ERROR</code></span></p></td>
 <td>Elements can use values starting from
                               this (and lower) to define custom error codes.
-                              Since 0.10.7.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-FLOW-CUSTOM-ERROR-1:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_ERROR_1</code></span></p></td>
 <td>Pre-defined custom error code (define your
                               custom error code to this to avoid compiler
-                              warnings). Since 0.10.29.
+                              warnings).
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-FLOW-CUSTOM-ERROR-2:CAPS"></a><span class="term"><code class="literal">GST_FLOW_CUSTOM_ERROR_2</code></span></p></td>
-<td>Pre-defined custom error code. Since 0.10.29.
+<td>Pre-defined custom error code.
 </td>
 </tr>
 </tbody>
@@ -1080,7 +1087,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1238,39 +1244,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-pad-set-caps"></a><h3>gst_pad_set_caps ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_set_caps                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>
-Sets the capabilities of this pad. The caps must be fixed. Any previous
-caps on the pad will be unreffed. This function refs the caps so you should
-unref if as soon as you don't need it anymore.
-It is possible to set NULL caps, which will make the pad unnegotiated
-again.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>a  <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> to set the capabilities of.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the caps could be set. FALSE if the caps were not fixed
-or bad parameters were provided to this function.
-MT safe.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-pad-get-peer"></a><h3>gst_pad_get_peer ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_pad_get_peer                    (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
@@ -1299,12 +1272,13 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_pad_use_fixed_caps              (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 A helper function you can use that sets the FIXED_CAPS flag
-This way the default getcaps function will always return the negotiated caps
+This way the default CAPS query will always return the negotiated caps
 or in case the pad is not negotiated, the padtemplate caps.
 </p>
 <p>
-Use this function on a pad that, once <a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()"><code class="function">gst_pad_set_caps()</code></a> has been called
-on it, cannot be renegotiated to something else.
+The negotiated caps are the caps of the last CAPS event that passed on the
+pad. Use this function on a pad that, once it negotiated to a CAPS, cannot
+be renegotiated to something else.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1907,7 +1881,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2051,6 +2024,23 @@
 <a name="gst-pad-set-chain-function"></a><h3>gst_pad_set_chain_function()</h3>
 <pre class="programlisting">#define gst_pad_set_chain_function(p,f)         gst_pad_set_chain_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-chain-function-full" title="gst_pad_set_chain_function_full ()"><code class="function">gst_pad_set_chain_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a sink <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadChainFunction" title="GstPadChainFunction ()"><span class="type">GstPadChainFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2135,6 +2125,23 @@
 <a name="gst-pad-set-chain-list-function"></a><h3>gst_pad_set_chain_list_function()</h3>
 <pre class="programlisting">#define gst_pad_set_chain_list_function(p,f)    gst_pad_set_chain_list_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-chain-list-function-full" title="gst_pad_set_chain_list_function_full ()"><code class="function">gst_pad_set_chain_list_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a sink <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadChainListFunction" title="GstPadChainListFunction ()"><span class="type">GstPadChainListFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2171,7 +2178,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2292,6 +2298,23 @@
 <a name="gst-pad-set-getrange-function"></a><h3>gst_pad_set_getrange_function()</h3>
 <pre class="programlisting">#define gst_pad_set_getrange_function(p,f)      gst_pad_set_getrange_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-getrange-function-full" title="gst_pad_set_getrange_function_full ()"><code class="function">gst_pad_set_getrange_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a source <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadGetRangeFunction" title="GstPadGetRangeFunction ()"><span class="type">GstPadGetRangeFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2416,6 +2439,23 @@
 <a name="gst-pad-set-event-function"></a><h3>gst_pad_set_event_function()</h3>
 <pre class="programlisting">#define gst_pad_set_event_function(p,f)         gst_pad_set_event_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-event-function-full" title="gst_pad_set_event_function_full ()"><code class="function">gst_pad_set_event_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> of either direction.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadEventFunction" title="GstPadEventFunction ()"><span class="type">GstPadEventFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2488,6 +2528,23 @@
 <a name="gst-pad-set-link-function"></a><h3>gst_pad_set_link_function()</h3>
 <pre class="programlisting">#define gst_pad_set_link_function(p,f)          gst_pad_set_link_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-link-function-full" title="gst_pad_set_link_function_full ()"><code class="function">gst_pad_set_link_function_full()</code></a> with NULL
+for the user_data and notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadLinkFunction" title="GstPadLinkFunction ()"><span class="type">GstPadLinkFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2566,6 +2623,23 @@
 <a name="gst-pad-set-unlink-function"></a><h3>gst_pad_set_unlink_function()</h3>
 <pre class="programlisting">#define gst_pad_set_unlink_function(p,f)        gst_pad_set_unlink_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-unlink-function-full" title="gst_pad_set_unlink_function_full ()"><code class="function">gst_pad_set_unlink_function_full()</code></a> with NULL
+for the user_data and notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadUnlinkFunction" title="GstPadUnlinkFunction ()"><span class="type">GstPadUnlinkFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2685,6 +2759,23 @@
 <a name="gst-pad-set-activate-function"></a><h3>gst_pad_set_activate_function()</h3>
 <pre class="programlisting">#define gst_pad_set_activate_function(p,f)      gst_pad_set_activate_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-activate-function-full" title="gst_pad_set_activate_function_full ()"><code class="function">gst_pad_set_activate_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadActivateFunction" title="GstPadActivateFunction ()"><span class="type">GstPadActivateFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2760,6 +2851,23 @@
 <a name="gst-pad-set-activatemode-function"></a><h3>gst_pad_set_activatemode_function()</h3>
 <pre class="programlisting">#define gst_pad_set_activatemode_function(p,f)  gst_pad_set_activatemode_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-activatemode-function-full" title="gst_pad_set_activatemode_function_full ()"><code class="function">gst_pad_set_activatemode_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadActivateModeFunction" title="GstPadActivateModeFunction ()"><span class="type">GstPadActivateModeFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2993,7 +3101,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3257,7 +3364,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3436,7 +3542,7 @@
 <p>
 Gets the capabilities this pad can produce or consume.
 Note that this method doesn't necessarily return the caps set by
-<a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()"><code class="function">gst_pad_set_caps()</code></a> - use <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()"><code class="function">gst_pad_get_current_caps()</code></a> for that instead.
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-set-caps"><code class="function">gst_pad_set_caps()</code></a> - use <a class="link" href="GstPad.html#gst-pad-get-current-caps" title="gst_pad_get_current_caps ()"><code class="function">gst_pad_get_current_caps()</code></a> for that instead.
 gst_pad_query_caps returns all possible caps a pad can operate with, using
 the pad's CAPS query function, If the query fails, this function will return
 <em class="parameter"><code>filter</code></em>, if not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, otherwise ANY.
@@ -3641,8 +3747,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the caps of the peer pad with incremented ref-count. This function
-returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no peer pad.</td>
+<td>the caps of the peer pad with incremented ref-count. When there is
+no peer pad, this function returns <em class="parameter"><code>filter</code></em> or, when <em class="parameter"><code>filter</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, ANY
+caps.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3652,6 +3759,23 @@
 <a name="gst-pad-set-query-function"></a><h3>gst_pad_set_query_function()</h3>
 <pre class="programlisting">#define gst_pad_set_query_function(p,f)   gst_pad_set_query_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-query-function-full" title="gst_pad_set_query_function_full ()"><code class="function">gst_pad_set_query_function_full()</code></a> with NULL for the user_data and
+notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> of either direction.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadQueryFunction" title="GstPadQueryFunction ()"><span class="type">GstPadQueryFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3724,6 +3848,23 @@
 <a name="gst-pad-set-iterate-internal-links-function"></a><h3>gst_pad_set_iterate_internal_links_function()</h3>
 <pre class="programlisting">#define gst_pad_set_iterate_internal_links_function(p,f) gst_pad_set_iterate_internal_links_function_full((p),(f),NULL,NULL)
 </pre>
+<p>
+Calls <a class="link" href="GstPad.html#gst-pad-set-iterate-internal-links-function-full" title="gst_pad_set_iterate_internal_links_function_full ()"><code class="function">gst_pad_set_iterate_internal_links_function_full()</code></a> with NULL
+for the user_data and notify.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
+<td>a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> of either direction.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>the <a class="link" href="GstPad.html#GstPadIterIntLinkFunction" title="GstPadIterIntLinkFunction ()"><span class="type">GstPadIterIntLinkFunction</span></a> to set.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3758,7 +3899,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3785,8 +3925,7 @@
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> that will iterate over all pads that are
 linked to the given pad on the inside of the parent element.
-the caller must call <a class="link" href="gstreamer-GstIterator.html#gst-iterator-free" title="gst_iterator_free ()"><code class="function">gst_iterator_free()</code></a> after usage.
-Since 0.10.21</td>
+the caller must call <a class="link" href="gstreamer-GstIterator.html#gst-iterator-free" title="gst_iterator_free ()"><code class="function">gst_iterator_free()</code></a> after usage.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3822,7 +3961,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3857,7 +3995,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3908,6 +4045,13 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-pad-create-stream-id"></a><h3>gst_pad_create_stream_id ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_pad_create_stream_id            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstPadForwardFunction"></a><h3>GstPadForwardFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstPadForwardFunction)            (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -3957,7 +4101,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>forward</code></em> :</span></p></td>
-<td>a <a class="link" href="GstPad.html#GstPadForwardFunction" title="GstPadForwardFunction ()"><span class="type">GstPadForwardFunction</span></a>
+<td>a <a class="link" href="GstPad.html#GstPadForwardFunction" title="GstPadForwardFunction ()"><span class="type">GstPadForwardFunction</span></a>. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -4066,16 +4210,16 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pad-start-task"></a><h3>gst_pad_start_task ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_pad_start_task                  (<em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
-Starts a task that repeatedly calls <em class="parameter"><code>func</code></em> with <em class="parameter"><code>data</code></em>. This function
+Starts a task that repeatedly calls <em class="parameter"><code>func</code></em> with <em class="parameter"><code>user_data</code></em>. This function
 is mostly used in pad activation functions to start the dataflow.
 The <a class="link" href="GstPad.html#GST-PAD-STREAM-LOCK:CAPS" title="GST_PAD_STREAM_LOCK()"><span class="type">GST_PAD_STREAM_LOCK</span></a> of <em class="parameter"><code>pad</code></em> will automatically be acquired
 before <em class="parameter"><code>func</code></em> is called.
@@ -4092,8 +4236,12 @@
 <td>the task function to call</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>data passed to the task function</td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to the task function</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>called when <em class="parameter"><code>user_data</code></em> is no longer referenced</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
diff --git a/docs/gst/html/GstPadTemplate.html b/docs/gst/html/GstPadTemplate.html
index f7527bb..8a99ed0 100644
--- a/docs/gst/html/GstPadTemplate.html
+++ b/docs/gst/html/GstPadTemplate.html
@@ -132,7 +132,7 @@
 The following code example shows the code to create a pad from a padtemplate.
 </p>
 <div class="example">
-<a name="idp12278624"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
+<a name="idp18030608"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -155,11 +155,11 @@
 16
 17</pre></td>
         <td class="listing_code"><pre class="programlisting">GstStaticPadTemplate my_template <span class="gtkdoc opt">=</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GST-STATIC-PAD-TEMPLATE:CAPS">GST_STATIC_PAD_TEMPLATE</a></span> <span class="gtkdoc opt">(</span>
+<span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#GST-STATIC-PAD-TEMPLATE:CAPS">GST_STATIC_PAD_TEMPLATE</a></span> <span class="gtkdoc opt">(</span>
   <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">,</span>          <span class="gtkdoc slc">// the name of the pad</span>
   GST_PAD_SINK<span class="gtkdoc opt">,</span>    <span class="gtkdoc slc">// the direction of the pad</span>
   GST_PAD_ALWAYS<span class="gtkdoc opt">,</span>  <span class="gtkdoc slc">// when this pad will be present</span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GST-STATIC-CAPS">GST_STATIC_CAPS</a></span> <span class="gtkdoc opt">(</span>        <span class="gtkdoc slc">// the capabilities of the padtemplate</span>
+  <span class="function"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GST-STATIC-CAPS">GST_STATIC_CAPS</a></span> <span class="gtkdoc opt">(</span>        <span class="gtkdoc slc">// the capabilities of the padtemplate</span>
     <span class="string">&quot;audio/x-raw, &quot;</span>
       <span class="string">&quot;channels = (int) [ 1, 6 ]&quot;</span>
   <span class="gtkdoc opt">)</span>
@@ -168,7 +168,7 @@
 <span class="function">my_method</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
 <span class="gtkdoc opt">{</span>
   GstPad <span class="gtkdoc opt">*</span>pad<span class="gtkdoc opt">;</span>
-  pad <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-new-from-static-template">gst_pad_new_from_static_template</a></span> <span class="gtkdoc opt">(&amp;</span>my_template<span class="gtkdoc opt">,</span> <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">);</span>
+  pad <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstPad.html#gst-pad-new-from-static-template">gst_pad_new_from_static_template</a></span> <span class="gtkdoc opt">(&amp;</span>my_template<span class="gtkdoc opt">,</span> <span class="string">&quot;sink&quot;</span><span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
 <span class="gtkdoc opt">}</span></pre></td>
       </tr>
@@ -200,8 +200,8 @@
 <span class="gtkdoc opt">{</span>
   GstElementClass <span class="gtkdoc opt">*</span>gstelement_class <span class="gtkdoc opt">=</span> <span class="function">GST_ELEMENT_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
 
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
-      <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>my_template<span class="gtkdoc opt">));</span>
+  <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
+      <span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>my_template<span class="gtkdoc opt">));</span>
 <span class="gtkdoc opt">}</span></pre></td>
       </tr>
     </tbody>
@@ -540,7 +540,6 @@
 <p>
 The capabilities of the pad described by the pad template.
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -550,7 +549,6 @@
 The direction of the pad described by the pad template.
 </p>
 <p>Default value: GST_PAD_UNKNOWN</p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -560,7 +558,6 @@
 The name template of the pad template.
 </p>
 <p>Default value: NULL</p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -570,7 +567,6 @@
 When the pad described by the pad template will become available.
 </p>
 <p>Default value: GST_PAD_ALWAYS</p>
-<p class="since">Since 0.10.21</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstPipeline.html b/docs/gst/html/GstPipeline.html
index 83cd819..3e59293 100644
--- a/docs/gst/html/GstPipeline.html
+++ b/docs/gst/html/GstPipeline.html
@@ -413,7 +413,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -439,7 +438,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -474,7 +472,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -498,7 +495,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 </div>
 <div class="refsect1">
@@ -512,7 +508,6 @@
 <a class="link" href="GstPipeline.html#gst-pipeline-set-auto-flush-bus" title="gst_pipeline_set_auto_flush_bus ()"><code class="function">gst_pipeline_set_auto_flush_bus()</code></a> for more information on this option.
 </p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -524,7 +519,6 @@
 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> for more information on this option.
 </p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.5</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstPlugin.html b/docs/gst/html/GstPlugin.html
index ae5d1bb..49fc9c9 100644
--- a/docs/gst/html/GstPlugin.html
+++ b/docs/gst/html/GstPlugin.html
@@ -292,7 +292,7 @@
 subset thereof), or NULL. Allowed are the following formats:
 "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with 'T' a separator and 'Z'
 indicating UTC/Zulu time). This field should be set via the
-GST_PACKAGE_RELEASE_DATETIME preprocessor macro (Since: 0.10.31)</td>
+GST_PACKAGE_RELEASE_DATETIME preprocessor macro.</td>
 </tr>
 </tbody>
 </table></div>
@@ -352,7 +352,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -694,7 +693,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -722,7 +720,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -902,7 +899,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -989,7 +985,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1059,7 +1054,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1117,7 +1111,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1176,7 +1169,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstPluginFeature.html b/docs/gst/html/GstPluginFeature.html
index d1f0d10..719e65b 100644
--- a/docs/gst/html/GstPluginFeature.html
+++ b/docs/gst/html/GstPluginFeature.html
@@ -304,9 +304,9 @@
 6</pre></td>
         <td class="listing_code"><pre class="programlisting">GstPluginFeature <span class="gtkdoc opt">*</span>loaded_feature<span class="gtkdoc opt">;</span>
 
-loaded_feature <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPluginFeature.html#gst-plugin-feature-load">gst_plugin_feature_load</a></span> <span class="gtkdoc opt">(</span>feature<span class="gtkdoc opt">);</span>
+loaded_feature <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-load">gst_plugin_feature_load</a></span> <span class="gtkdoc opt">(</span>feature<span class="gtkdoc opt">);</span>
 <span class="gtkdoc slc">// presumably, we're no longer interested in the potentially-unloaded feature</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>feature<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>feature<span class="gtkdoc opt">);</span>
 feature <span class="gtkdoc opt">=</span> loaded_feature<span class="gtkdoc opt">;</span></pre></td>
       </tr>
     </tbody>
@@ -356,7 +356,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -392,7 +391,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -465,7 +463,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstPreset.html b/docs/gst/html/GstPreset.html
index 7156576..d8effe2 100644
--- a/docs/gst/html/GstPreset.html
+++ b/docs/gst/html/GstPreset.html
@@ -198,7 +198,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -223,7 +222,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -253,7 +251,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -284,7 +281,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -320,7 +316,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -350,7 +345,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -392,7 +386,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -435,7 +428,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -460,7 +452,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -477,7 +468,6 @@
 <td>the directory or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, don't free or modify the string</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/GstRegistry.html b/docs/gst/html/GstRegistry.html
index be73d74..c4e23ed 100644
--- a/docs/gst/html/GstRegistry.html
+++ b/docs/gst/html/GstRegistry.html
@@ -265,7 +265,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index f672c21..44e2955 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -149,17 +149,17 @@
  
 tagsetter <span class="gtkdoc opt">=</span> <span class="function">GST_TAG_SETTER</span> <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">);</span>
  
-merge_mode <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html#gst-tag-setter-get-tag-merge-mode">gst_tag_setter_get_tag_merge_mode</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">);</span>
-application_tags <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html#gst-tag-setter-get-tag-list">gst_tag_setter_get_tag_list</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">);</span>
+merge_mode <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstTagSetter.html#gst-tag-setter-get-tag-merge-mode">gst_tag_setter_get_tag_merge_mode</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">);</span>
+application_tags <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstTagSetter.html#gst-tag-setter-get-tag-list">gst_tag_setter_get_tag_list</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">);</span>
 event_tags <span class="gtkdoc opt">= (</span><span class="gtkdoc kwb">const</span> GstTagList <span class="gtkdoc opt">*)</span> element<span class="gtkdoc opt">-&gt;</span>event_tags<span class="gtkdoc opt">;</span>
  
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;merging tags, merge mode = %d&quot;</span><span class="gtkdoc opt">,</span> merge_mode<span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;event tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> event_tags<span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;set   tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> application_tags<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;merging tags, merge mode = %d&quot;</span><span class="gtkdoc opt">,</span> merge_mode<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;event tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> event_tags<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;set   tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> application_tags<span class="gtkdoc opt">);</span>
  
-result <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#gst-tag-list-merge">gst_tag_list_merge</a></span> <span class="gtkdoc opt">(</span>application_tags<span class="gtkdoc opt">,</span> event_tags<span class="gtkdoc opt">,</span> merge_mode<span class="gtkdoc opt">);</span>
+result <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-merge">gst_tag_list_merge</a></span> <span class="gtkdoc opt">(</span>application_tags<span class="gtkdoc opt">,</span> event_tags<span class="gtkdoc opt">,</span> merge_mode<span class="gtkdoc opt">);</span>
  
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;final tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> result<span class="gtkdoc opt">);</span></pre></td>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS">GST_LOG_OBJECT</a></span> <span class="gtkdoc opt">(</span>tagsetter<span class="gtkdoc opt">,</span> <span class="string">&quot;final tags: %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> result<span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -218,7 +218,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -314,7 +313,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/GstTask.html b/docs/gst/html/GstTask.html
index bbb36b5..28b3365 100644
--- a/docs/gst/html/GstTask.html
+++ b/docs/gst/html/GstTask.html
@@ -43,7 +43,7 @@
 #include &lt;gst/gst.h&gt;
 
 struct              <a class="link" href="GstTask.html#GstTask-struct" title="struct GstTask">GstTask</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()">*GstTaskFunction</a>)                  (<em class="parameter"><code><span class="type">void</span> *data</code></em>);
+<span class="returnvalue">void</span>                (<a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()">*GstTaskFunction</a>)                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 enum                <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState">GstTaskState</a>;
 #define             <a class="link" href="GstTask.html#GST-TASK-BROADCAST:CAPS" title="GST_TASK_BROADCAST()">GST_TASK_BROADCAST</a>                  (task)
 #define             <a class="link" href="GstTask.html#GST-TASK-GET-COND:CAPS" title="GST_TASK_GET_COND()">GST_TASK_GET_COND</a>                   (task)
@@ -52,15 +52,22 @@
 #define             <a class="link" href="GstTask.html#GST-TASK-STATE:CAPS" title="GST_TASK_STATE()">GST_TASK_STATE</a>                      (task)
 #define             <a class="link" href="GstTask.html#GST-TASK-WAIT:CAPS" title="GST_TASK_WAIT()">GST_TASK_WAIT</a>                       (task)
 <a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           <a class="link" href="GstTask.html#gst-task-new" title="gst_task_new ()">gst_task_new</a>                        (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()">gst_task_set_lock</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GRecMutex"><span class="type">GRecMutex</span></a> *mutex</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-pool" title="gst_task_set_pool ()">gst_task_set_pool</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> *pool</code></em>);
 <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="returnvalue">GstTaskPool</span></a> *       <a class="link" href="GstTask.html#gst-task-get-pool" title="gst_task_get_pool ()">gst_task_get_pool</a>                   (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
-                    <a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks">GstTaskThreadCallbacks</a>;
-<span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-thread-callbacks" title="gst_task_set_thread_callbacks ()">gst_task_set_thread_callbacks</a>       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks"><span class="type">GstTaskThreadCallbacks</span></a> *callbacks</code></em>,
+<span class="returnvalue">void</span>                (<a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()">*GstTaskThreadFunc</a>)                (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThread"><span class="type">GThread</span></a> *thread</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-enter-callback" title="gst_task_set_enter_callback ()">gst_task_set_enter_callback</a>         (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()"><span class="type">GstTaskThreadFunc</span></a> enter_func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="GstTask.html#gst-task-set-leave-callback" title="gst_task_set_leave_callback ()">gst_task_set_leave_callback</a>         (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()"><span class="type">GstTaskThreadFunc</span></a> leave_func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a class="link" href="GstTask.html#GstTaskState" title="enum GstTaskState"><span class="returnvalue">GstTaskState</span></a>        <a class="link" href="GstTask.html#gst-task-get-state" title="gst_task_get_state ()">gst_task_get_state</a>                  (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>);
@@ -149,7 +156,8 @@
   GRecMutex       *lock;
 
   GstTaskFunction  func;
-  gpointer         data;
+  gpointer         user_data;
+  GDestroyNotify   notify;
 
   gboolean         running;
 };
@@ -177,8 +185,13 @@
 <td>the function executed by this task</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstTask-struct.data"></a>data</code></em>;</span></p></td>
-<td>data passed to the task function</td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstTask-struct.user-data"></a>user_data</code></em>;</span></p></td>
+<td>user_data passed to the task function</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> <em class="structfield"><code><a name="GstTask-struct.notify"></a>notify</code></em>;</span></p></td>
+<td>GDestroyNotify for <em class="parameter"><code>user_data</code></em>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstTask-struct.running"></a>running</code></em>;</span></p></td>
@@ -190,7 +203,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTaskFunction"></a><h3>GstTaskFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTaskFunction)                  (<em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTaskFunction)                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <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>.
@@ -198,7 +211,7 @@
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data passed to the function</td>
 </tr></tbody>
 </table></div>
@@ -336,10 +349,11 @@
 <div class="refsect2">
 <a name="gst-task-new"></a><h3>gst_task_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstTask.html" title="GstTask"><span class="returnvalue">GstTask</span></a> *           gst_task_new                        (<em class="parameter"><code><a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Create a new Task that will repeatedly call the provided <em class="parameter"><code>func</code></em>
-with <em class="parameter"><code>data</code></em> as a parameter. Typically the task will run in
+with <em class="parameter"><code>user_data</code></em> as a parameter. Typically the task will run in
 a new thread.
 </p>
 <p>
@@ -363,11 +377,15 @@
 <td>The <a class="link" href="GstTask.html#GstTaskFunction" title="GstTaskFunction ()"><span class="type">GstTaskFunction</span></a> to use</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>User data to pass to <em class="parameter"><code>func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data to pass to <em class="parameter"><code>func</code></em>
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>the function to call when <em class="parameter"><code>user_data</code></em> is no longer needed.</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>A new <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>.
 MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -433,7 +451,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -462,17 +479,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTaskThreadCallbacks"></a><h3>GstTaskThreadCallbacks</h3>
-<pre class="programlisting">typedef struct {
-  /* manage the lifetime of the thread */
-  void      (*enter_thread)     (GstTask *task, GThread *thread, gpointer user_data);
-  void      (*leave_thread)     (GstTask *task, GThread *thread, gpointer user_data);
-} GstTaskThreadCallbacks;
-</pre>
+<a name="GstTaskThreadFunc"></a><h3>GstTaskThreadFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTaskThreadFunc)                (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThread"><span class="type">GThread</span></a> *thread</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Custom GstTask thread callback functions that can be installed.
 </p>
@@ -480,39 +493,33 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTaskThreadCallbacks.enter-thread"></a>enter_thread</code></em> ()</span></p></td>
-<td>a thread is entered, this callback is called when the new
-thread enters its function.</td>
+<td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
+<td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstTaskThreadCallbacks.leave-thread"></a>leave_thread</code></em> ()</span></p></td>
-<td>a thread is exiting, this is called when the thread is about
-to leave its function</td>
+<td><p><span class="term"><em class="parameter"><code>thread</code></em> :</span></p></td>
+<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Threads.html#GThread"><span class="type">GThread</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-task-set-thread-callbacks"></a><h3>gst_task_set_thread_callbacks ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_thread_callbacks       (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks"><span class="type">GstTaskThreadCallbacks</span></a> *callbacks</code></em>,
+<a name="gst-task-set-enter-callback"></a><h3>gst_task_set_enter_callback ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_enter_callback         (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()"><span class="type">GstTaskThreadFunc</span></a> enter_func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
-Set callbacks which will be executed when a new thread is needed, the thread
-function is entered and left and when the thread is joined.
-</p>
-<p>
-By default a thread for <em class="parameter"><code>task</code></em> will be created from a default thread pool.
-</p>
-<p>
-Objects can use custom GThreads or can perform additional configuration of
-the threads (such as changing the thread priority) by installing callbacks.
-</p>
-<p>
-MT safe.
+Call <em class="parameter"><code>enter_func</code></em> when the task function of <em class="parameter"><code>task</code></em> is entered. <em class="parameter"><code>user_data</code></em> will
+be passed to <em class="parameter"><code>enter_func</code></em> and <em class="parameter"><code>notify</code></em> will be called when <em class="parameter"><code>user_data</code></em> is no
+longer referenced.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -522,13 +529,13 @@
 <td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to use</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callbacks</code></em> :</span></p></td>
-<td>a <a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks"><span class="type">GstTaskThreadCallbacks</span></a> pointer. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
+<td><p><span class="term"><em class="parameter"><code>enter_func</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()"><span class="type">GstTaskThreadFunc</span></a>. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data passed to the callbacks. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
+<td>user data passed to <em class="parameter"><code>enter_func</code></em>
 </td>
 </tr>
 <tr>
@@ -537,7 +544,42 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-task-set-leave-callback"></a><h3>gst_task_set_leave_callback ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_task_set_leave_callback         (<em class="parameter"><code><a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> *task</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()"><span class="type">GstTaskThreadFunc</span></a> leave_func</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
+<p>
+Call <em class="parameter"><code>leave_func</code></em> when the task function of <em class="parameter"><code>task</code></em> is left. <em class="parameter"><code>user_data</code></em> will
+be passed to <em class="parameter"><code>leave_func</code></em> and <em class="parameter"><code>notify</code></em> will be called when <em class="parameter"><code>user_data</code></em> is no
+longer referenced.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>task</code></em> :</span></p></td>
+<td>The <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a> to use</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>leave_func</code></em> :</span></p></td>
+<td>a <a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()"><span class="type">GstTaskThreadFunc</span></a>. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data passed to <em class="parameter"><code>leave_func</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>called when <em class="parameter"><code>user_data</code></em> is no longer referenced</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -596,7 +638,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/GstTaskPool.html b/docs/gst/html/GstTaskPool.html
index e6d3e77..50d58fb 100644
--- a/docs/gst/html/GstTaskPool.html
+++ b/docs/gst/html/GstTaskPool.html
@@ -44,7 +44,7 @@
 
 struct              <a class="link" href="GstTaskPool.html#GstTaskPool-struct" title="struct GstTaskPool">GstTaskPool</a>;
 struct              <a class="link" href="GstTaskPool.html#GstTaskPoolClass" title="struct GstTaskPoolClass">GstTaskPoolClass</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="GstTaskPool.html#GstTaskPoolFunction" title="GstTaskPoolFunction ()">*GstTaskPoolFunction</a>)              (<em class="parameter"><code><span class="type">void</span> *data</code></em>);
+<span class="returnvalue">void</span>                (<a class="link" href="GstTaskPool.html#GstTaskPoolFunction" title="GstTaskPoolFunction ()">*GstTaskPoolFunction</a>)              (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>);
 <a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="returnvalue">GstTaskPool</span></a> *       <a class="link" href="GstTaskPool.html#gst-task-pool-new" title="gst_task_pool_new ()">gst_task_pool_new</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTaskPool.html#gst-task-pool-prepare" title="gst_task_pool_prepare ()">gst_task_pool_prepare</a>               (<em class="parameter"><code><a class="link" href="GstTaskPool.html" title="GstTaskPool"><span class="type">GstTaskPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
@@ -134,18 +134,17 @@
 <hr>
 <div class="refsect2">
 <a name="GstTaskPoolFunction"></a><h3>GstTaskPoolFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTaskPoolFunction)              (<em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstTaskPoolFunction)              (<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="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data for the task function</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -163,7 +162,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -190,7 +188,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -212,7 +209,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the function to call</td>
+<td>the function to call. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -225,13 +223,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer that should be used for the gst_task_pool_join
-function. This pointer can be NULL, you must check <em class="parameter"><code>error</code></em> to detect
-errors.</td>
+<td>a pointer that should be used for the
+gst_task_pool_join function. This pointer can be NULL, you must
+check <em class="parameter"><code>error</code></em> to detect errors. <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>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -256,7 +254,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -277,7 +274,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index 6816cca..99f0e48 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -47,6 +47,7 @@
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="GstTypeFindFactory.html#gst-type-find-factory-get-extensions" title="gst_type_find_factory_get_extensions ()">gst_type_find_factory_get_extensions</a>
                                                         (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>);
 <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="GstTypeFindFactory.html#gst-type-find-factory-get-caps" title="gst_type_find_factory_get_caps ()">gst_type_find_factory_get_caps</a>      (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTypeFindFactory.html#gst-type-find-factory-has-function" title="gst_type_find_factory_has_function ()">gst_type_find_factory_has_function</a>  (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTypeFindFactory.html#gst-type-find-factory-call-function" title="gst_type_find_factory_call_function ()">gst_type_find_factory_call_function</a> (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>,
                                                          <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>
@@ -72,7 +73,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp27362848"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
+<a name="idp12056528"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -137,7 +138,7 @@
   MyTypeFind <span class="gtkdoc opt">*</span>find <span class="gtkdoc opt">= (</span>MyTypeFind <span class="gtkdoc opt">*)</span> data<span class="gtkdoc opt">;</span>
   <span class="keyword">if</span> <span class="gtkdoc opt">(</span>probability <span class="gtkdoc opt">&gt;</span> find<span class="gtkdoc opt">-&gt;</span>probability<span class="gtkdoc opt">) {</span>
     find<span class="gtkdoc opt">-&gt;</span>probability <span class="gtkdoc opt">=</span> probability<span class="gtkdoc opt">;</span>
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-replace">gst_caps_replace</a></span> <span class="gtkdoc opt">(&amp;</span>find<span class="gtkdoc opt">-&gt;</span>caps<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-replace">gst_caps_replace</a></span> <span class="gtkdoc opt">(&amp;</span>find<span class="gtkdoc opt">-&gt;</span>caps<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">}</span>
 <span class="gtkdoc opt">}</span>
 <span class="gtkdoc kwb">static</span> GstCaps <span class="gtkdoc opt">*</span>
@@ -146,11 +147,11 @@
   GList <span class="gtkdoc opt">*</span>walk<span class="gtkdoc opt">, *</span>type_list<span class="gtkdoc opt">;</span>
   MyTypeFind find <span class="gtkdoc opt">= {</span>data<span class="gtkdoc opt">,</span> size<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">};</span>
   GstTypeFind gst_find <span class="gtkdoc opt">= {</span>my_peek<span class="gtkdoc opt">,</span> my_suggest<span class="gtkdoc opt">, &amp;</span>find<span class="gtkdoc opt">, };</span>
-  walk <span class="gtkdoc opt">=</span> type_list <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTypeFindFactory.html#gst-type-find-factory-get-list">gst_type_find_factory_get_list</a></span> <span class="gtkdoc opt">();</span>
+  walk <span class="gtkdoc opt">=</span> type_list <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-list">gst_type_find_factory_get_list</a></span> <span class="gtkdoc opt">();</span>
   <span class="keyword">while</span> <span class="gtkdoc opt">(</span>walk<span class="gtkdoc opt">) {</span>
     GstTypeFindFactory <span class="gtkdoc opt">*</span>factory <span class="gtkdoc opt">=</span> <span class="function">GST_TYPE_FIND_FACTORY</span> <span class="gtkdoc opt">(</span>walk<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">);</span>
     walk <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-next">g_list_next</a></span> <span class="gtkdoc opt">(</span>walk<span class="gtkdoc opt">)</span>
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTypeFindFactory.html#gst-type-find-factory-call-function">gst_type_find_factory_call_function</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">, &amp;</span>gst_find<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-call-function">gst_type_find_factory_call_function</a></span> <span class="gtkdoc opt">(</span>factory<span class="gtkdoc opt">, &amp;</span>gst_find<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">}</span>
   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span> <span class="gtkdoc opt">(</span>type_list<span class="gtkdoc opt">);</span>
   <span class="keyword">return</span> find<span class="gtkdoc opt">.</span>caps<span class="gtkdoc opt">;</span>
@@ -191,7 +192,7 @@
 </p>
 <p>
 The returned factories are sorted by highest rank first, and then by
-factory name. (behaviour change since 0.10.26)
+factory name.
 </p>
 <p>
 Free-function: gst_plugin_feature_list_free
@@ -259,6 +260,30 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-type-find-factory-has-function"></a><h3>gst_type_find_factory_has_function ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_type_find_factory_has_function  (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>);</pre>
+<p>
+Check whether the factory has a typefind function. Typefind factories
+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="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
+<td>A <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the factory has a typefind functions set, otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-type-find-factory-call-function"></a><h3>gst_type_find_factory_call_function ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_type_find_factory_call_function (<em class="parameter"><code><a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory"><span class="type">GstTypeFindFactory</span></a> *factory</code></em>,
                                                          <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>
diff --git a/docs/gst/html/annotation-glossary.html b/docs/gst/html/annotation-glossary.html
index 9df3250..cbe3917 100644
--- a/docs/gst/html/annotation-glossary.html
+++ b/docs/gst/html/annotation-glossary.html
@@ -22,6 +22,8 @@
 <tr><td colspan="5" class="shortcuts">
 <a class="shortcut" href="#glsO">O</a>
                       | 
+                   <a class="shortcut" href="#glsS">S</a>
+                      | 
                    <a class="shortcut" href="#glsA">A</a>
                       | 
                    <a class="shortcut" href="#glsI">I</a>
@@ -50,6 +52,10 @@
 <dt>
 <a name="annotation-glossterm-out"></a>out</dt>
 <dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<a name="glsS"></a><h3 class="title">S</h3>
+<dt>
+<a name="annotation-glossterm-scope%20async"></a>scope async</dt>
+<dd><p>The callback is valid until first called.</p></dd>
 <a name="glsA"></a><h3 class="title">A</h3>
 <dt>
 <a name="annotation-glossterm-allow-none"></a>allow-none</dt>
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index c2da1fe..a88240d 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -67,63 +67,51 @@
 <a name="api-index-full"></a>API Index</h2></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams">GstAllocationParams</a>, struct in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+GstAllocationParams, struct in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-copy" title="gst_allocation_params_copy ()">gst_allocation_params_copy</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocation_params_copy, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-free" title="gst_allocation_params_free ()">gst_allocation_params_free</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocation_params_free, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-init" title="gst_allocation_params_init ()">gst_allocation_params_init</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocation_params_init, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator">GstAllocator</a>, struct in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+GstAllocator, struct in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstAllocatorAllocFunction" title="GstAllocatorAllocFunction ()">GstAllocatorAllocFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+GstAllocatorFlags, enum in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()">gst_allocator_alloc</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocator_alloc, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()">gst_allocator_find</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocator_find, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-get-memory-type" title="gst_allocator_get_memory_type ()">gst_allocator_get_memory_type</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocator_free, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-new" title="gst_allocator_new ()">gst_allocator_new</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocator_register, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-ref" title="gst_allocator_ref ()">gst_allocator_ref</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_allocator_set_default, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()">gst_allocator_register</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-set-default" title="gst_allocator_set_default ()">gst_allocator_set_default</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS" title="GST_ALLOCATOR_SYSMEM">GST_ALLOCATOR_SYSMEM</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-unref" title="gst_allocator_unref ()">gst_allocator_unref</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+GST_ALLOCATOR_SYSMEM, macro in GstAllocator
 </dt>
 <dd></dd>
 <dt>
@@ -304,7 +292,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams">GstBufferPoolAcquireParams</a>, struct in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
+<a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="struct GstBufferPoolAcquireParams">GstBufferPoolAcquireParams</a>, struct in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
 <dt>
@@ -316,7 +304,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()">gst_buffer_append</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append()">gst_buffer_append</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
 <dt>
@@ -324,6 +312,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append-region" title="gst_buffer_append_region ()">gst_buffer_append_region</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-copy" title="gst_buffer_copy ()">gst_buffer_copy</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -416,6 +408,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-sizes-range" title="gst_buffer_get_sizes_range ()">gst_buffer_get_sizes_range</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()">gst_buffer_insert_memory</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -492,6 +488,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map-range" title="gst_buffer_map_range ()">gst_buffer_map_range</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-memcmp" title="gst_buffer_memcmp ()">gst_buffer_memcmp</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -540,6 +540,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-peek-memory" title="gst_buffer_peek_memory ()">gst_buffer_peek_memory</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()">gst_buffer_pool_acquire_buffer</a>, function in <a class="link" href="gstreamer-GstBufferPool.html" title="GstBufferPool">GstBufferPool</a>
 </dt>
 <dd></dd>
@@ -664,6 +668,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize-range" title="gst_buffer_resize_range ()">gst_buffer_resize_range</a>, function in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-set-size" title="gst_buffer_set_size()">gst_buffer_set_size</a>, macro in <a class="link" href="gstreamer-GstBuffer.html" title="GstBuffer">GstBuffer</a>
 </dt>
 <dd></dd>
@@ -1309,10 +1317,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstClock.html#gst-clock-id-wait-async-full" title="gst_clock_id_wait_async_full ()">gst_clock_id_wait_async_full</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstClock.html#gst-clock-new-periodic-id" title="gst_clock_new_periodic_id ()">gst_clock_new_periodic_id</a>, function in <a class="link" href="GstClock.html" title="GstClock">GstClock</a>
 </dt>
 <dd></dd>
@@ -1470,10 +1474,38 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-day" title="gst_date_time_has_day ()">gst_date_time_has_day</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-month" title="gst_date_time_has_month ()">gst_date_time_has_month</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-second" title="gst_date_time_has_second ()">gst_date_time_has_second</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-time" title="gst_date_time_has_time ()">gst_date_time_has_time</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-year" title="gst_date_time_has_year ()">gst_date_time_has_year</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new" title="gst_date_time_new ()">gst_date_time_new</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-g-date-time" title="gst_date_time_new_from_g_date_time ()">gst_date_time_new_from_g_date_time</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-iso8601-string" title="gst_date_time_new_from_iso8601_string ()">gst_date_time_new_from_iso8601_string</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time" title="gst_date_time_new_from_unix_epoch_local_time ()">gst_date_time_new_from_unix_epoch_local_time</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
 </dt>
 <dd></dd>
@@ -1494,10 +1526,30 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-y" title="gst_date_time_new_y ()">gst_date_time_new_y</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-ym" title="gst_date_time_new_ym ()">gst_date_time_new_ym</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-ymd" title="gst_date_time_new_ymd ()">gst_date_time_new_ymd</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-ref" title="gst_date_time_ref ()">gst_date_time_ref</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-to-g-date-time" title="gst_date_time_to_g_date_time ()">gst_date_time_to_g_date_time</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstDateTime.html#gst-date-time-to-iso8601-string" title="gst_date_time_to_iso8601_string ()">gst_date_time_to_iso8601_string</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-unref" title="gst_date_time_unref ()">gst_date_time_unref</a>, function in <a class="link" href="gstreamer-GstDateTime.html" title="GstDateTime">GstDateTime</a>
 </dt>
 <dd></dd>
@@ -2375,6 +2427,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-new-segment-done" title="gst_event_new_segment_done ()">gst_event_new_segment_done</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-new-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2439,6 +2495,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-segment-done" title="gst_event_parse_segment_done ()">gst_event_parse_segment_done</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-sink-message" title="gst_event_parse_sink_message ()">gst_event_parse_sink_message</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2455,6 +2515,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-start" title="gst_event_parse_stream_start ()">gst_event_parse_stream_start</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a>, function in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
 </dt>
 <dd></dd>
@@ -2677,10 +2741,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-ghost-pad-link-default" title="gst_ghost_pad_link_default ()">gst_ghost_pad_link_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstGhostPad.html#gst-ghost-pad-new" title="gst_ghost_pad_new ()">gst_ghost_pad_new</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
@@ -2701,10 +2761,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-ghost-pad-unlink-default" title="gst_ghost_pad_unlink_default ()">gst_ghost_pad_unlink_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstUtils.html#gst-guint64-to-gdouble" title="gst_guint64_to_gdouble()">gst_guint64_to_gdouble</a>, macro in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
 </dt>
 <dd></dd>
@@ -2855,6 +2911,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags">GstLockFlags</a>, enum in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-READWRITE:CAPS" title="GST_LOCK_FLAG_READWRITE">GST_LOCK_FLAG_READWRITE</a>, macro in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-LOG:CAPS" title="GST_LOG()">GST_LOG</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -2908,14 +2972,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#GstMemoryFreeFunction" title="GstMemoryFreeFunction ()">GstMemoryFreeFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo">GstMemoryInfo</a>, struct in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()">GstMemoryIsSpanFunction</a>, user_function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -2952,7 +3008,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-memory-is-exclusive" title="gst_memory_is_exclusive ()">gst_memory_is_exclusive</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-init" title="gst_memory_init ()">gst_memory_init</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE:CAPS" title="GST_MEMORY_IS_NO_SHARE()">GST_MEMORY_IS_NO_SHARE</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
 <dt>
@@ -2964,6 +3024,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-is-writable" title="gst_memory_is_writable()">gst_memory_is_writable</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS" title="GST_MEMORY_IS_ZERO_PADDED()">GST_MEMORY_IS_ZERO_PADDED</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -2972,6 +3036,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-lock" title="gst_memory_lock()">gst_memory_lock</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#gst-memory-make-mapped" title="gst_memory_make_mapped ()">gst_memory_make_mapped</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -2980,7 +3048,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMemory.html#gst-memory-new-wrapped" title="gst_memory_new_wrapped ()">gst_memory_new_wrapped</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+gst_memory_new_wrapped, function in GstAllocator
 </dt>
 <dd></dd>
 <dt>
@@ -2996,6 +3064,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-unlock" title="gst_memory_unlock()">gst_memory_unlock</a>, macro in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMemory.html#gst-memory-unmap" title="gst_memory_unmap ()">gst_memory_unmap</a>, function in <a class="link" href="gstreamer-GstMemory.html" title="GstMemory">GstMemory</a>
 </dt>
 <dd></dd>
@@ -3108,6 +3180,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-new-reset-time" title="gst_message_new_reset_time ()">gst_message_new_reset_time</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMessage.html#gst-message-new-segment-done" title="gst_message_new_segment_done ()">gst_message_new_segment_done</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3208,6 +3284,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMessage.html#gst-message-parse-reset-time" title="gst_message_parse_reset_time ()">gst_message_parse_reset_time</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-segment-done" title="gst_message_parse_segment_done ()">gst_message_parse_segment_done</a>, function in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -3400,7 +3480,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()">GstMiniObjectWeakNotify</a>, user_function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()">GstMiniObjectNotify</a>, user_function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3424,14 +3504,26 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-get-qdata" title="gst_mini_object_get_qdata ()">gst_mini_object_get_qdata</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-init" title="gst_mini_object_init ()">gst_mini_object_init</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-IS-LOCKABLE:CAPS" title="GST_MINI_OBJECT_IS_LOCKABLE()">GST_MINI_OBJECT_IS_LOCKABLE</a>, macro in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-is-writable" title="gst_mini_object_is_writable ()">gst_mini_object_is_writable</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-lock" title="gst_mini_object_lock ()">gst_mini_object_lock</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-make-writable" title="gst_mini_object_make_writable ()">gst_mini_object_make_writable</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
@@ -3452,7 +3544,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-SIZE:CAPS" title="GST_MINI_OBJECT_SIZE()">GST_MINI_OBJECT_SIZE</a>, macro in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()">gst_mini_object_set_qdata</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
 <dt>
@@ -3460,6 +3552,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-steal-qdata" title="gst_mini_object_steal_qdata ()">gst_mini_object_steal_qdata</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-take" title="gst_mini_object_take ()">gst_mini_object_take</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
@@ -3468,6 +3564,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unlock" title="gst_mini_object_unlock ()">gst_mini_object_unlock</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unref" title="gst_mini_object_unref ()">gst_mini_object_unref</a>, function in <a class="link" href="gstreamer-GstMiniObject.html" title="GstMiniObject">GstMiniObject</a>
 </dt>
 <dd></dd>
@@ -3835,6 +3935,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstPad.html#gst-pad-create-stream-id" title="gst_pad_create_stream_id ()">gst_pad_create_stream_id</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstPad.html#gst-pad-event-default" title="gst_pad_event_default ()">gst_pad_event_default</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4147,10 +4251,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstPad.html#gst-pad-set-caps" title="gst_pad_set_caps ()">gst_pad_set_caps</a>, function in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstPad.html#gst-pad-set-chain-function" title="gst_pad_set_chain_function()">gst_pad_set_chain_function</a>, macro in <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
 </dt>
 <dd></dd>
@@ -4739,14 +4839,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstUtils.html#gst-print-element-args" title="gst_print_element_args ()">gst_print_element_args</a>, function in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstUtils.html#gst-print-pad-caps" title="gst_print_pad_caps ()">gst_print_pad_caps</a>, function in <a class="link" href="gstreamer-GstUtils.html" title="GstUtils">GstUtils</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstMessage.html#GstProgressType" title="enum GstProgressType">GstProgressType</a>, enum in <a class="link" href="gstreamer-GstMessage.html" title="GstMessage">GstMessage</a>
 </dt>
 <dd></dd>
@@ -4763,10 +4855,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-event-default" title="gst_proxy_pad_event_default ()">gst_proxy_pad_event_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstGhostPad.html#gst-proxy-pad-getrange-default" title="gst_proxy_pad_getrange_default ()">gst_proxy_pad_getrange_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
@@ -4778,14 +4866,6 @@
 <a class="link" href="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default" title="gst_proxy_pad_iterate_internal_links_default ()">gst_proxy_pad_iterate_internal_links_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
 </dt>
 <dd></dd>
-<dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-query-default" title="gst_proxy_pad_query_default ()">gst_proxy_pad_query_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstGhostPad.html#gst-proxy-pad-unlink-default" title="gst_proxy_pad_unlink_default ()">gst_proxy_pad_unlink_default</a>, function in <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
-</dt>
-<dd></dd>
 <a name="idxQ"></a><h3 class="title">Q</h3>
 <dt>
 <a class="link" href="gstreamer-GstEvent.html#GstQOSType" title="enum GstQOSType">GstQOSType</a>, enum in <a class="link" href="gstreamer-GstEvent.html" title="GstEvent">GstEvent</a>
@@ -4828,6 +4908,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstQuery.html#gst-query-find-allocation-meta" title="gst_query_find_allocation_meta ()">gst_query_find_allocation_meta</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-metas" title="gst_query_get_n_allocation_metas ()">gst_query_get_n_allocation_metas</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4852,18 +4936,10 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-has-allocation-meta" title="gst_query_has_allocation_meta ()">gst_query_has_allocation_meta</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-has-scheduling-mode" title="gst_query_has_scheduling_mode ()">gst_query_has_scheduling_mode</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-intersect-caps-result" title="gst_query_intersect_caps_result ()">gst_query_intersect_caps_result</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#GST-QUERY-IS-DOWNSTREAM:CAPS" title="GST_QUERY_IS_DOWNSTREAM()">GST_QUERY_IS_DOWNSTREAM</a>, macro in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -4944,10 +5020,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-new-toc" title="gst_query_new_toc ()">gst_query_new_toc</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-new-uri" title="gst_query_new_uri ()">gst_query_new_uri</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5040,10 +5112,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-toc" title="gst_query_parse_toc ()">gst_query_parse_toc</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-uri" title="gst_query_parse_uri ()">gst_query_parse_uri</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -5124,10 +5192,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstQuery.html#gst-query-set-toc" title="gst_query_set_toc ()">gst_query_set_toc</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstQuery.html#gst-query-set-uri" title="gst_query_set_uri ()">gst_query_set_uri</a>, function in <a class="link" href="gstreamer-GstQuery.html" title="GstQuery">GstQuery</a>
 </dt>
 <dd></dd>
@@ -6191,6 +6255,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free()">gst_tag_list_free</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6199,14 +6267,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer" title="gst_tag_list_get_buffer ()">gst_tag_list_get_buffer</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" title="gst_tag_list_get_buffer_index ()">gst_tag_list_get_buffer_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-date" title="gst_tag_list_get_date ()">gst_tag_list_get_date</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6263,6 +6323,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-sample" title="gst_tag_list_get_sample ()">gst_tag_list_get_sample</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-sample-index" title="gst_tag_list_get_sample_index ()">gst_tag_list_get_sample_index</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-string" title="gst_tag_list_get_string ()">gst_tag_list_get_string</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
 </dt>
 <dd></dd>
@@ -6539,7 +6607,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstTask.html#GstTaskThreadCallbacks" title="GstTaskThreadCallbacks">GstTaskThreadCallbacks</a>, struct in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
+<a class="link" href="GstTask.html#GstTaskThreadFunc" title="GstTaskThreadFunc ()">GstTaskThreadFunc</a>, user_function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6599,6 +6667,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstTask.html#gst-task-set-enter-callback" title="gst_task_set_enter_callback ()">gst_task_set_enter_callback</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="GstTask.html#gst-task-set-leave-callback" title="gst_task_set_leave_callback ()">gst_task_set_leave_callback</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="GstTask.html#gst-task-set-lock" title="gst_task_set_lock ()">gst_task_set_lock</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
 </dt>
 <dd></dd>
@@ -6611,10 +6687,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstTask.html#gst-task-set-thread-callbacks" title="gst_task_set_thread_callbacks ()">gst_task_set_thread_callbacks</a>, function in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstTask.html#GST-TASK-SIGNAL:CAPS" title="GST_TASK_SIGNAL()">GST_TASK_SIGNAL</a>, macro in <a class="link" href="GstTask.html" title="GstTask">GstTask</a>
 </dt>
 <dd></dd>
@@ -6679,11 +6751,11 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc">GstToc</a>, struct in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc">GstToc</a>, struct in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry">GstTocEntry</a>, struct in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry">GstTocEntry</a>, struct in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6691,27 +6763,79 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstToc.html#GstTocScope" title="enum GstTocScope">GstTocScope</a>, enum in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter">GstTocSetter</a>, struct in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterIFace" title="struct GstTocSetterIFace">GstTocSetterIFace</a>, struct in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterInterface" title="struct GstTocSetterInterface">GstTocSetterInterface</a>, struct in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-copy" title="gst_toc_copy ()">gst_toc_copy</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-append-entry" title="gst_toc_append_entry ()">gst_toc_append_entry</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-copy" title="gst_toc_entry_copy ()">gst_toc_entry_copy</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-copy" title="gst_toc_copy()">gst_toc_copy</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()">gst_toc_entry_free</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-dump" title="gst_toc_dump ()">gst_toc_dump</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" title="gst_toc_entry_get_start_stop ()">gst_toc_entry_get_start_stop</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-append-sub-entry" title="gst_toc_entry_append_sub_entry ()">gst_toc_entry_append_sub_entry</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-copy" title="gst_toc_entry_copy()">gst_toc_entry_copy</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-entry-type" title="gst_toc_entry_get_entry_type ()">gst_toc_entry_get_entry_type</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-parent" title="gst_toc_entry_get_parent ()">gst_toc_entry_get_parent</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-start-stop-times" title="gst_toc_entry_get_start_stop_times ()">gst_toc_entry_get_start_stop_times</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-sub-entries" title="gst_toc_entry_get_sub_entries ()">gst_toc_entry_get_sub_entries</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-tags" title="gst_toc_entry_get_tags ()">gst_toc_entry_get_tags</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-toc" title="gst_toc_entry_get_toc ()">gst_toc_entry_get_toc</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-uid" title="gst_toc_entry_get_uid ()">gst_toc_entry_get_uid</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-is-alternative" title="gst_toc_entry_is_alternative ()">gst_toc_entry_is_alternative</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-is-sequence" title="gst_toc_entry_is_sequence ()">gst_toc_entry_is_sequence</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-make-writable" title="gst_toc_entry_make_writable()">gst_toc_entry_make_writable</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-merge-tags" title="gst_toc_entry_merge_tags ()">gst_toc_entry_merge_tags</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6719,11 +6843,15 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" title="gst_toc_entry_new_with_pad ()">gst_toc_entry_new_with_pad</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-ref" title="gst_toc_entry_ref()">gst_toc_entry_ref</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" title="gst_toc_entry_set_start_stop ()">gst_toc_entry_set_start_stop</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop-times" title="gst_toc_entry_set_start_stop_times ()">gst_toc_entry_set_start_stop_times</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-tags" title="gst_toc_entry_set_tags ()">gst_toc_entry_set_tags</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6731,11 +6859,39 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-ALTERNATIVE:CAPS" title="GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE()">GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-SEQUENCE:CAPS" title="GST_TOC_ENTRY_TYPE_IS_SEQUENCE()">GST_TOC_ENTRY_TYPE_IS_SEQUENCE</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()">gst_toc_entry_unref</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()">gst_toc_free</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-get-entries" title="gst_toc_get_entries ()">gst_toc_get_entries</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-get-scope" title="gst_toc_get_scope ()">gst_toc_get_scope</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-get-tags" title="gst_toc_get_tags ()">gst_toc_get_tags</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-make-writable" title="gst_toc_make_writable()">gst_toc_make_writable</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-merge-tags" title="gst_toc_merge_tags ()">gst_toc_merge_tags</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6743,7 +6899,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry" title="gst_toc_setter_add_toc_entry ()">gst_toc_setter_add_toc_entry</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-ref" title="gst_toc_ref()">gst_toc_ref</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6751,19 +6907,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" title="gst_toc_setter_get_toc_copy ()">gst_toc_setter_get_toc_copy</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry" title="gst_toc_setter_get_toc_entry ()">gst_toc_setter_get_toc_entry</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" title="gst_toc_setter_get_toc_entry_copy ()">gst_toc_setter_get_toc_entry_copy</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc" title="gst_toc_setter_reset_toc ()">gst_toc_setter_reset_toc</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
+<a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-reset" title="gst_toc_setter_reset ()">gst_toc_setter_reset</a>, function in <a class="link" href="gstreamer-GstTocSetter.html" title="GstTocSetter">GstTocSetter</a>
 </dt>
 <dd></dd>
 <dt>
@@ -6771,6 +6915,14 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-set-tags" title="gst_toc_set_tags ()">gst_toc_set_tags</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-unref" title="gst_toc_unref()">gst_toc_unref</a>, macro in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstInfo.html#GST-TRACE:CAPS" title="GST_TRACE()">GST_TRACE</a>, macro in <a class="link" href="gstreamer-GstInfo.html" title="GstInfo">GstInfo</a>
 </dt>
 <dd></dd>
@@ -6827,6 +6979,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="GstTypeFindFactory.html#gst-type-find-factory-has-function" title="gst_type_find_factory_has_function ()">gst_type_find_factory_has_function</a>, function in <a class="link" href="GstTypeFindFactory.html" title="GstTypeFindFactory">GstTypeFindFactory</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-get-length" title="gst_type_find_get_length ()">gst_type_find_get_length</a>, function in <a class="link" href="gstreamer-GstTypeFind.html" title="GstTypeFind">GstTypeFind</a>
 </dt>
 <dd></dd>
diff --git a/docs/gst/html/gst-building.html b/docs/gst/html/gst-building.html
index be3ad7b..bb0800e 100644
--- a/docs/gst/html/gst-building.html
+++ b/docs/gst/html/gst-building.html
@@ -31,7 +31,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7256800"></a><h2>Building GStreamer on UNIX</h2>
+<a name="idp7187984"></a><h2>Building GStreamer on UNIX</h2>
 <p>
     On UNIX, GStreamer uses the standard GNU build system,
     using <span class="application">autoconf</span> for package
@@ -92,7 +92,7 @@
   </p>
 </div>
 <div class="refsect1">
-<a name="idp9676688"></a><h2>Building GStreamer Applications</h2>
+<a name="idp10591376"></a><h2>Building GStreamer Applications</h2>
 <p>
 Applications and libraries can use <span class="command"><strong>pkg-config</strong></span> to get all the
 needed compiler and linker flags to build against GStreamer. Please note that
diff --git a/docs/gst/html/gst-running.html b/docs/gst/html/gst-running.html
index 764295b..95dc51f 100644
--- a/docs/gst/html/gst-running.html
+++ b/docs/gst/html/gst-running.html
@@ -31,9 +31,9 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7869392"></a><h2>Running and debugging GStreamer Applications</h2>
+<a name="idp11705424"></a><h2>Running and debugging GStreamer Applications</h2>
 <div class="refsect2">
-<a name="idp11982640"></a><h3>Environment variables</h3>
+<a name="idp11902880"></a><h3>Environment variables</h3>
 <p> 
 GStreamer inspects a few of environment variables in addition to standard
 variables like <code class="envar">LANG</code>, <code class="envar">PATH</code> or <code class="envar">HOME</code>. 
@@ -163,7 +163,12 @@
   
 To get all possible debug output, set
 <code class="envar">GST_DEBUG</code>
-to <code class="option">*:9</code>
+to <code class="option">*:9</code>. For debugging purposes a <code class="option">*:6</code> debug
+log is usually the most useful, as it contains all important information, but
+hides a lot of noise such as refs/unrefs. For bug reporting purposes, a
+<code class="option">*:6</code> log is also what will be requested usually. It's often
+also worth running with <code class="option">*:3</code> to see if there are any
+non-fatal errors or warnings that might be related to the problem at hand.
   </p>
 <p><a name="GST_DEBUG_NO_COLOR"></a><b><code class="envar">GST_DEBUG_NO_COLOR</code>. </b>
 Set this environment variable to any value ("1" typically) to switch off
@@ -221,7 +226,8 @@
   Keep track of the unfreed memory pointers and dump an overview of all unfreed
   memory at program exit. Together with a level 9 debug log this can be used to
   follow the lifecycle of leaked objects in order to track down where they are
-  leaked.
+  leaked. This can be useful for debugging memory leaks in situations where
+  tools such as valgrind are not available, or not an option.
 </p></td>
 </tr>
 </tbody>
diff --git a/docs/gst/html/gstreamer-Gst.html b/docs/gst/html/gstreamer-Gst.html
index bd6c4a1..f4904e7 100644
--- a/docs/gst/html/gstreamer-Gst.html
+++ b/docs/gst/html/gstreamer-Gst.html
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp7414080"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
+<a name="idp9241488"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,7 +99,7 @@
 <span class="function">main</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>argv<span class="gtkdoc opt">[])</span>
 <span class="gtkdoc opt">{</span>
   <span class="gtkdoc slc">// initialize the GStreamer library</span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="../gstreamer-1.0/gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">...</span>
 <span class="gtkdoc opt">}</span></pre></td>
       </tr>
@@ -119,7 +119,7 @@
 the next code fragment:
 </p>
 <div class="example">
-<a name="idp12345008"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
+<a name="idp10664336"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -162,9 +162,9 @@
    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-init">g_thread_init</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">);</span>
  ctx <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-new">g_option_context_new</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;[ADDITIONAL ARGUMENTS]&quot;</span><span class="gtkdoc opt">);</span>
  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-add-main-entries">g_option_context_add_main_entries</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">,</span> options<span class="gtkdoc opt">,</span> GETTEXT_PACKAGE<span class="gtkdoc opt">);</span>
- <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-add-group">g_option_context_add_group</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-Gst.html#gst-init-get-option-group">gst_init_get_option_group</a></span> <span class="gtkdoc opt">());</span>
+ <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-add-group">g_option_context_add_group</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-Gst.html#gst-init-get-option-group">gst_init_get_option_group</a></span> <span class="gtkdoc opt">());</span>
  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-parse">g_option_context_parse</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">, &amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">, &amp;</span>err<span class="gtkdoc opt">)) {</span>
-   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Error initializing: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-STR-NULL:CAPS">GST_STR_NULL</a></span> <span class="gtkdoc opt">(</span>err<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">));</span>
+   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Error initializing: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-STR-NULL:CAPS">GST_STR_NULL</a></span> <span class="gtkdoc opt">(</span>err<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">));</span>
    <span class="function">exit</span> <span class="gtkdoc opt">(</span><span class="number">1</span><span class="gtkdoc opt">);</span>
  <span class="gtkdoc opt">}</span>
  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Commandline-option-parser.html#g-option-context-free">g_option_context_free</a></span> <span class="gtkdoc opt">(</span>ctx<span class="gtkdoc opt">);</span>
@@ -337,7 +337,6 @@
 <td>TRUE if initialization has been done, FALSE otherwise.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -432,7 +431,6 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if GStreamer is allowed to install a custom SIGSEGV handler.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -449,7 +447,6 @@
 <td>whether a custom SIGSEGV handler should be installed.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -473,7 +470,6 @@
 rebuilding the registry.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -491,7 +487,6 @@
 <td>whether rebuilding the registry can use a temporary child helper process.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -527,7 +522,6 @@
 imply that there were changes), otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstAtomicQueue.html b/docs/gst/html/gstreamer-GstAtomicQueue.html
index ea14541..5692f1e 100644
--- a/docs/gst/html/gstreamer-GstAtomicQueue.html
+++ b/docs/gst/html/gstreamer-GstAtomicQueue.html
@@ -69,7 +69,6 @@
 <p>
 Use the acessor functions to get the stored values.
 </p>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -93,7 +92,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -110,7 +108,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -127,7 +124,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -151,7 +147,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -170,11 +165,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the head element of <em class="parameter"><code>queue</code></em> or NULL when the queue is empty.</td>
+<td>the head element of <em class="parameter"><code>queue</code></em> or NULL when
+the queue is empty. <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>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -193,11 +189,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the head element of <em class="parameter"><code>queue</code></em> or NULL when the queue is empty.</td>
+<td>the head element of <em class="parameter"><code>queue</code></em> or NULL when
+the queue is empty. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -220,7 +217,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstBuffer.html b/docs/gst/html/gstreamer-GstBuffer.html
index 153939c..74672c7 100644
--- a/docs/gst/html/gstreamer-GstBuffer.html
+++ b/docs/gst/html/gstreamer-GstBuffer.html
@@ -62,9 +62,9 @@
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END-IS-VALID:CAPS" title="GST_BUFFER_OFFSET_END_IS_VALID()">GST_BUFFER_OFFSET_END_IS_VALID</a>      (buffer)
 #define             <a class="link" href="gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS" title="GST_BUFFER_IS_DISCONT()">GST_BUFFER_IS_DISCONT</a>               (buffer)
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new" title="gst_buffer_new ()">gst_buffer_new</a>                      (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-allocate" title="gst_buffer_new_allocate ()">gst_buffer_new_allocate</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-allocate" title="gst_buffer_new_allocate ()">gst_buffer_new_allocate</a>             (<em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><span class="type">GstAllocationParams</span> *params</code></em>);
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-wrapped" title="gst_buffer_new_wrapped ()">gst_buffer_new_wrapped</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-new-wrapped-full" title="gst_buffer_new_wrapped_full ()">gst_buffer_new_wrapped_full</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
@@ -80,11 +80,23 @@
                                                          of,
                                                          ms)
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-size" title="gst_buffer_get_size()">gst_buffer_get_size</a>                 (b)
+<span class="returnvalue">gsize</span>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-sizes-range" title="gst_buffer_get_sizes_range ()">gst_buffer_get_sizes_range</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *maxsize</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize-range" title="gst_buffer_resize_range ()">gst_buffer_resize_range</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize()">gst_buffer_resize</a>                   (b,
                                                          of,
                                                          s)
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-set-size" title="gst_buffer_set_size()">gst_buffer_set_size</a>                 (b,
                                                          s)
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-peek-memory" title="gst_buffer_peek_memory ()">gst_buffer_peek_memory</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()">gst_buffer_n_memory</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()">gst_buffer_insert_memory</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
@@ -123,6 +135,11 @@
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map" title="gst_buffer_map()">gst_buffer_map</a>                      (b,
                                                          i,
                                                          f)
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-map-range" title="gst_buffer_map_range ()">gst_buffer_map_range</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()">gst_buffer_unmap</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-memcmp" title="gst_buffer_memcmp ()">gst_buffer_memcmp</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
@@ -158,8 +175,12 @@
 #define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-make-writable" title="gst_buffer_make_writable()">gst_buffer_make_writable</a>            (buf)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-replace" title="gst_buffer_replace ()">gst_buffer_replace</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **obuf</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *nbuf</code></em>);
-<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()">gst_buffer_append</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);
+#define             <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append()">gst_buffer_append</a>                   (b1,
+                                                         b2)
+<a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append-region" title="gst_buffer_append_region ()">gst_buffer_append_region</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
 <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-get-meta" title="gst_buffer_get_meta ()">gst_buffer_get_meta</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);
 <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-add-meta" title="gst_buffer_add_meta ()">gst_buffer_add_meta</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
@@ -172,7 +193,7 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()">*GstBufferForeachMetaFunc</a>)         (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> **meta</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()">gst_buffer_foreach_meta</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()">gst_buffer_foreach_meta</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 </pre>
@@ -191,7 +212,7 @@
 with a given width, height and bits per plane.
 </p>
 <div class="example">
-<a name="idp13953280"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
+<a name="idp13658544"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -210,9 +231,9 @@
 gint size<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> bpp<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">...</span>
 size <span class="gtkdoc opt">=</span> width <span class="gtkdoc opt">*</span> height <span class="gtkdoc opt">*</span> bpp<span class="gtkdoc opt">;</span>
-buffer <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-new">gst_buffer_new</a></span> <span class="gtkdoc opt">();</span>
-memory <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMemory.html#gst-allocator-alloc">gst_allocator_alloc</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> size<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-insert-memory">gst_buffer_insert_memory</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">, -</span><span class="number">1</span><span class="gtkdoc opt">,</span> memory<span class="gtkdoc opt">);</span>
+buffer <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-new">gst_buffer_new</a></span> <span class="gtkdoc opt">();</span>
+memory <span class="gtkdoc opt">=</span> <span class="function">gst_allocator_alloc</span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> size<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-insert-memory">gst_buffer_insert_memory</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">, -</span><span class="number">1</span><span class="gtkdoc opt">,</span> memory<span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">...</span></pre></td>
       </tr>
     </tbody>
@@ -229,7 +250,7 @@
 <p>
 Buffers can contain a list of <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> objects. You can retrieve how many
 memory objects with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()"><code class="function">gst_buffer_n_memory()</code></a> and you can get a pointer
-to memory with <code class="function">gst_buffer_peek_memory()</code>
+to memory with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-peek-memory" title="gst_buffer_peek_memory ()"><code class="function">gst_buffer_peek_memory()</code></a>
 </p>
 <p>
 A buffer will usually have timestamps, and a duration, but neither of these
@@ -278,7 +299,7 @@
 </p>
 <p>
 Buffers can be efficiently merged into a larger buffer with
-<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()"><code class="function">gst_buffer_append()</code></a>. Copying of memory will only be done when absolutely
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-append" title="gst_buffer_append()"><code class="function">gst_buffer_append()</code></a>. Copying of memory will only be done when absolutely
 needed.
 </p>
 <p>
@@ -743,7 +764,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.9</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -767,9 +787,9 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-new-allocate"></a><h3>gst_buffer_new_allocate ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_allocate             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_new_allocate             (<em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">GstAllocationParams</span> *params</code></em>);</pre>
 <p>
 Tries to create a newly allocated buffer with data of the given size and
 extra parameters from <em class="parameter"><code>allocator</code></em>. If the requested amount of memory can't be
@@ -789,7 +809,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> to use, or NULL to use the
+<td>the <span class="type">GstAllocator</span> to use, or NULL to use the
 default allocator. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
@@ -915,9 +935,8 @@
 </p>
 <p>
 Note that the refcount affects the writeability
-of <em class="parameter"><code>buf</code></em> and its metadata, see <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a> and
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-is-metadata-writable"><code class="function">gst_buffer_is_metadata_writable()</code></a>. It is
-important to note that keeping additional references to
+of <em class="parameter"><code>buf</code></em> and its metadata, see <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>.
+It is important to note that keeping additional references to
 GstBuffer instances can potentially increase the number
 of memcpy operations in a pipeline.
 </p>
@@ -959,6 +978,39 @@
 <a name="gst-buffer-get-sizes"></a><h3>gst_buffer_get_sizes()</h3>
 <pre class="programlisting">#define     gst_buffer_get_sizes(b,of,ms)  gst_buffer_get_sizes_range ((b), 0, -1, (of), (ms))
 </pre>
+<p>
+Get the total size of the memory blocks in <em class="parameter"><code>b</code></em>.
+</p>
+<p>
+When not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>of</code></em> will contain the offset of the data in the first
+memory block in <em class="parameter"><code>buffer</code></em> and <em class="parameter"><code>maxsize</code></em> will contain the sum of the size
+and <em class="parameter"><code>of</code></em> and the amount of extra padding on the last memory block.
+<em class="parameter"><code>of</code></em> and <em class="parameter"><code>ms</code></em> can be used to resize the buffer memory blocks with
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize()"><code class="function">gst_buffer_resize()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>of</code></em> :</span></p></td>
+<td>a pointer to the offset. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ms</code></em> :</span></p></td>
+<td>a pointer to the maxsize. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>total size of the memory blocks in <em class="parameter"><code>b</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -966,14 +1018,109 @@
 <pre class="programlisting">#define     gst_buffer_get_size(b)         gst_buffer_get_sizes_range ((b), 0, -1, NULL, NULL)
 </pre>
 <p>
-Get the size of <em class="parameter"><code>b</code></em>.
+Get the total size of the memory blocks in <em class="parameter"><code>b</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody><tr>
+<tbody>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
 <td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
-</tr></tbody>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>total size of the memory blocks in <em class="parameter"><code>b</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-sizes-range"></a><h3>gst_buffer_get_sizes_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">gsize</span>               gst_buffer_get_sizes_range          (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> *maxsize</code></em>);</pre>
+<p>
+Get the total size of <em class="parameter"><code>length</code></em> memory blocks stating from <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>.
+</p>
+<p>
+When not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>offset</code></em> will contain the offset of the data in the
+memory block in <em class="parameter"><code>buffer</code></em> at <em class="parameter"><code>idx</code></em> and <em class="parameter"><code>maxsize</code></em> will contain the sum of the size
+and <em class="parameter"><code>offset</code></em> and the amount of extra padding on the memory block at <em class="parameter"><code>idx</code></em> +
+<em class="parameter"><code>length</code></em> -1.
+<em class="parameter"><code>offset</code></em> and <em class="parameter"><code>maxsize</code></em> can be used to resize the buffer memory blocks with
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-resize-range" title="gst_buffer_resize_range ()"><code class="function">gst_buffer_resize_range()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>a length</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>a pointer to the offset. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
+<td>a pointer to the maxsize. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>total size of <em class="parameter"><code>length</code></em> memory blocks starting at <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-resize-range"></a><h3>gst_buffer_resize_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_resize_range             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);</pre>
+<p>
+Set the total size of the <em class="parameter"><code>length</code></em> memory blocks starting at <em class="parameter"><code>idx</code></em> in
+<em class="parameter"><code>buffer</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>a length</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>the offset adjustement</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the new size or -1 to just adjust the offset</td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <hr>
@@ -981,6 +1128,26 @@
 <a name="gst-buffer-resize"></a><h3>gst_buffer_resize()</h3>
 <pre class="programlisting">#define     gst_buffer_resize(b,of,s)      gst_buffer_resize_range ((b), 0, -1, (of), (s))
 </pre>
+<p>
+Set the offset and total size of the memory blocks in <em class="parameter"><code>b</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>of</code></em> :</span></p></td>
+<td>the offset adjustement</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
+<td>the new size or -1 to just adjust the offset</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -988,8 +1155,7 @@
 <pre class="programlisting">#define     gst_buffer_set_size(b,s)       gst_buffer_resize_range ((b), 0, -1, 0, (s))
 </pre>
 <p>
-Set the size of <em class="parameter"><code>b</code></em> to <em class="parameter"><code>s</code></em>. This will remove or trim the memory blocks
-in the buffer.
+Set the total size of the memory blocks in <em class="parameter"><code>b</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1000,7 +1166,41 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
-<td>a new size</td>
+<td>the new size</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-peek-memory"></a><h3>gst_buffer_peek_memory ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_buffer_peek_memory              (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
+<p>
+Get the memory block at <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>. The memory block stays valid until
+the memory block in <em class="parameter"><code>buffer</code></em> is removed, replaced or merged, typically with
+any call that modifies the memory in <em class="parameter"><code>buffer</code></em>.
+</p>
+<p>
+Since this call does not influence the refcount of the memory,
+<a class="link" href="gstreamer-GstMemory.html#gst-memory-is-writable" title="gst_memory_is_writable()"><code class="function">gst_memory_is_writable()</code></a> can be used to check if <em class="parameter"><code>buffer</code></em> is the sole owner
+of the returned memory.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> at <em class="parameter"><code>idx</code></em>. <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>
@@ -1230,36 +1430,151 @@
 <a name="gst-buffer-prepend-memory"></a><h3>gst_buffer_prepend_memory()</h3>
 <pre class="programlisting">#define     gst_buffer_prepend_memory(b,m)     gst_buffer_insert_memory ((b), 0, (m))
 </pre>
+<p>
+Prepend the memory block <em class="parameter"><code>m</code></em> to <em class="parameter"><code>b</code></em>. This function takes ownership
+of <em class="parameter"><code>m</code></em> and thus doesn't increase its refcount.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-append-memory"></a><h3>gst_buffer_append_memory()</h3>
 <pre class="programlisting">#define     gst_buffer_append_memory(b,m)      gst_buffer_insert_memory ((b), -1, (m))
 </pre>
+<p>
+Append the memory block <em class="parameter"><code>m</code></em> to <em class="parameter"><code>b</code></em>. This function takes ownership
+of <em class="parameter"><code>m</code></em> and thus doesn't increase its refcount.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-replace-memory"></a><h3>gst_buffer_replace_memory()</h3>
 <pre class="programlisting">#define     gst_buffer_replace_memory(b,i,m)   gst_buffer_replace_memory_range ((b), (i), 1, (m))
 </pre>
+<p>
+Replaces the memory block at index <em class="parameter"><code>i</code></em> in <em class="parameter"><code>b</code></em> with <em class="parameter"><code>m</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-replace-all-memory"></a><h3>gst_buffer_replace_all_memory()</h3>
-<pre class="programlisting">#define     gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory ((b), 0, -1, (m))
+<pre class="programlisting">#define     gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory_range ((b), 0, -1, (m))
 </pre>
+<p>
+Replaces all memory in <em class="parameter"><code>b</code></em> with <em class="parameter"><code>m</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-memory"></a><h3>gst_buffer_get_memory()</h3>
 <pre class="programlisting">#define     gst_buffer_get_memory(b,i)         gst_buffer_get_memory_range ((b), (i), 1)
 </pre>
+<p>
+Get the memory block at index <em class="parameter"><code>i</code></em> in <em class="parameter"><code>buffer</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> that contains the data of the
+memory block at <em class="parameter"><code>idx</code></em>. Use <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_unref()</code></a> after usage. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-all-memory"></a><h3>gst_buffer_get_all_memory()</h3>
 <pre class="programlisting">#define     gst_buffer_get_all_memory(b)       gst_buffer_get_memory_range ((b), 0, -1)
 </pre>
+<p>
+Get all the memory block in <em class="parameter"><code>buffer</code></em>. The memory blocks will be merged
+into one large <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> that contains the merged memory.
+Use <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_unref()</code></a> after usage. <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>
 <hr>
 <div class="refsect2">
@@ -1267,7 +1582,7 @@
 <pre class="programlisting">#define     gst_buffer_remove_memory(b,i)      gst_buffer_remove_memory_range ((b), (i), 1)
 </pre>
 <p>
-Remove the memory block in <em class="parameter"><code>b</code></em> at <em class="parameter"><code>i</code></em>.
+Remove the memory block in <em class="parameter"><code>b</code></em> at index <em class="parameter"><code>i</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1288,12 +1603,121 @@
 <a name="gst-buffer-remove-all-memory"></a><h3>gst_buffer_remove_all_memory()</h3>
 <pre class="programlisting">#define     gst_buffer_remove_all_memory(b)    gst_buffer_remove_memory_range ((b), 0, -1)
 </pre>
+<p>
+Remove all the memory blocks in <em class="parameter"><code>b</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr></tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-map"></a><h3>gst_buffer_map()</h3>
 <pre class="programlisting">#define     gst_buffer_map(b,i,f)          gst_buffer_map_range ((b), 0, -1, (i), (f))
 </pre>
+<p>
+This function fills <em class="parameter"><code>i</code></em> with the <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> of all merged memory blocks
+in <em class="parameter"><code>buffer</code></em>.
+</p>
+<p>
+<em class="parameter"><code>flags</code></em> describe the desired access of the memory. When <em class="parameter"><code>flags</code></em> is
+<a class="link" href="gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS"><span class="type">GST_MAP_WRITE</span></a>, <em class="parameter"><code>buffer</code></em> should be writable (as returned from
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>).
+</p>
+<p>
+When <em class="parameter"><code>buffer</code></em> is writable but the memory isn't, a writable copy will
+automatically be created and returned. The readonly copy of the buffer memory
+will then also be replaced with this writable copy.
+</p>
+<p>
+The memory in <em class="parameter"><code>i</code></em> should be unmapped with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()"><code class="function">gst_buffer_unmap()</code></a> after usage.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>info about the mapping. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>f</code></em> :</span></p></td>
+<td>flags for the mapping</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the map succeeded and <em class="parameter"><code>i</code></em> contains valid data.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-map-range"></a><h3>gst_buffer_map_range ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_map_range                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
+<p>
+This function fills <em class="parameter"><code>info</code></em> with the <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> of <em class="parameter"><code>length</code></em> merged memory blocks
+starting at <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>. When <em class="parameter"><code>length</code></em> is -1, all memory blocks starting
+from <em class="parameter"><code>idx</code></em> are merged and mapped.
+</p>
+<p>
+<em class="parameter"><code>flags</code></em> describe the desired access of the memory. When <em class="parameter"><code>flags</code></em> is
+<a class="link" href="gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS"><span class="type">GST_MAP_WRITE</span></a>, <em class="parameter"><code>buffer</code></em> should be writable (as returned from
+<a class="link" href="gstreamer-GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>).
+</p>
+<p>
+When <em class="parameter"><code>buffer</code></em> is writable but the memory isn't, a writable copy will
+automatically be created and returned. The readonly copy of the buffer memory
+will then also be replaced with this writable copy.
+</p>
+<p>
+The memory in <em class="parameter"><code>info</code></em> should be unmapped with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()"><code class="function">gst_buffer_unmap()</code></a> after usage.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>an index</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
+<td>a length</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>info about the mapping. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags for the mapping</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the map succeeded and <em class="parameter"><code>info</code></em> contains valid
+data.</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1667,10 +2091,9 @@
 <pre class="programlisting">#define         gst_buffer_is_writable(buf)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (buf))
 </pre>
 <p>
-Tests if you can safely write data into a buffer's data array or validly
-modify the caps and timestamp metadata. Metadata in a GstBuffer is always
-writable, but it is only safe to change it when there is only one owner
-of the buffer - ie, the refcount is 1.
+Tests if you can safely write to a buffer's metadata or its memory array.
+It is only safe to change buffer metadata when the current reference is
+writable, i.e. nobody can see the modifications you will make.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1746,9 +2169,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-buffer-append"></a><h3>gst_buffer_append ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_append                   (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);</pre>
+<a name="gst-buffer-append"></a><h3>gst_buffer_append()</h3>
+<pre class="programlisting">#define         gst_buffer_append(b1,b2)        gst_buffer_append_region ((b1), (b2), 0, -1)
+</pre>
 <p>
 Append all the memory from <em class="parameter"><code>buf2</code></em> to <em class="parameter"><code>buf1</code></em>. The result buffer will contain a
 concatenation of the memory of <em class="parameter"><code>buf1</code></em> and <em class="parameter"><code>buf2</code></em>.
@@ -1777,6 +2200,50 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-buffer-append-region"></a><h3>gst_buffer_append_region ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_append_region            (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">gssize</span> size</code></em>);</pre>
+<p>
+Append <em class="parameter"><code>size</code></em> bytes at <em class="parameter"><code>offset</code></em> from <em class="parameter"><code>buf2</code></em> to <em class="parameter"><code>buf1</code></em>. The result buffer will
+contain a concatenation of the memory of <em class="parameter"><code>buf1</code></em> and the requested region of
+<em class="parameter"><code>buf2</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf1</code></em> :</span></p></td>
+<td>the first source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to append. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf2</code></em> :</span></p></td>
+<td>the second source <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> to append. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>the offset in <em class="parameter"><code>buf2</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size or -1 of <em class="parameter"><code>buf2</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> that contains the memory
+of the two source buffers. <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>
+<hr>
+<div class="refsect2">
 <a name="gst-buffer-get-meta"></a><h3>gst_buffer_get_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *           gst_buffer_get_meta                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
@@ -1798,7 +2265,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the metadata for <em class="parameter"><code>api</code></em> on <em class="parameter"><code>buffer</code></em>.</td>
+<td>the metadata for <em class="parameter"><code>api</code></em> on <em class="parameter"><code>buffer</code></em>. <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>
@@ -1894,7 +2362,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The next <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there are no more items.</td>
+<td>The next <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there are
+no more items. <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>
@@ -1948,7 +2418,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-foreach-meta"></a><h3>gst_buffer_foreach_meta ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_foreach_meta             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_foreach_meta             (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
@@ -1977,6 +2447,11 @@
 <td>user data passed to <em class="parameter"><code>func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when <em class="parameter"><code>func</code></em> returned <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> for one of the metadata.</td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstBufferList.html b/docs/gst/html/gstreamer-GstBufferList.html
index 6d15c74..9175146 100644
--- a/docs/gst/html/gstreamer-GstBufferList.html
+++ b/docs/gst/html/gstreamer-GstBufferList.html
@@ -47,7 +47,7 @@
 #define             <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-add" title="gst_buffer_list_add()">gst_buffer_list_add</a>                 (l,
                                                          b)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-insert" title="gst_buffer_list_insert ()">gst_buffer_list_insert</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-remove" title="gst_buffer_list_remove ()">gst_buffer_list_remove</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
@@ -60,7 +60,7 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstBufferList.html#GstBufferListFunc" title="GstBufferListFunc ()">*GstBufferListFunc</a>)                (<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-foreach" title="gst_buffer_list_foreach ()">gst_buffer_list_foreach</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-foreach" title="gst_buffer_list_foreach ()">gst_buffer_list_foreach</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferListFunc" title="GstBufferListFunc ()"><span class="type">GstBufferListFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-GstBufferList.html#gst-buffer-list-get" title="gst_buffer_list_get ()">gst_buffer_list_get</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
@@ -93,7 +93,6 @@
 <p>
 Opaque list of grouped buffers.
 </p>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -115,7 +114,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -144,7 +142,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -167,19 +164,36 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-add"></a><h3>gst_buffer_list_add()</h3>
 <pre class="programlisting">#define gst_buffer_list_add(l,b) gst_buffer_list_insert((l),-1,(b));
 </pre>
+<p>
+Append <em class="parameter"><code>b</code></em> at the end of <em class="parameter"><code>l</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>l</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-insert"></a><h3>gst_buffer_list_insert ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_list_insert              (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
 <p>
 Insert <em class="parameter"><code>buffer</code></em> at <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>list</code></em>. Other buffers are moved to make room for
@@ -202,7 +216,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -266,7 +280,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -284,7 +297,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -310,7 +322,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -328,7 +339,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -356,7 +366,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -406,7 +415,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-foreach"></a><h3>gst_buffer_list_foreach ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_list_foreach             (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_list_foreach             (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferList" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBufferList.html#GstBufferListFunc" title="GstBufferListFunc ()"><span class="type">GstBufferListFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
@@ -435,9 +444,14 @@
 <td>user data passed to <em class="parameter"><code>func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
 </td>
 </tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>func</code></em> returned <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for each buffer in <em class="parameter"><code>list</code></em> or when
+<em class="parameter"><code>list</code></em> is empty.</td>
+</tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -467,7 +481,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/gstreamer-GstBufferPool.html b/docs/gst/html/gstreamer-GstBufferPool.html
index 537aeb7..8bdeac6 100644
--- a/docs/gst/html/gstreamer-GstBufferPool.html
+++ b/docs/gst/html/gstreamer-GstBufferPool.html
@@ -56,12 +56,12 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-get-allocator" title="gst_buffer_pool_config_get_allocator ()">gst_buffer_pool_config_get_allocator</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> **allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstAllocationParams</span> *params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-set-allocator" title="gst_buffer_pool_config_set_allocator ()">gst_buffer_pool_config_set_allocator</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">GstAllocationParams</span> *params</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-n-options" title="gst_buffer_pool_config_n_options ()">gst_buffer_pool_config_n_options</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-config-add-option" title="gst_buffer_pool_config_add_option ()">gst_buffer_pool_config_add_option</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *option</code></em>);
@@ -79,10 +79,10 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-is-active" title="gst_buffer_pool_is_active ()">gst_buffer_pool_is_active</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);
 enum                <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags" title="enum GstBufferPoolAcquireFlags">GstBufferPoolAcquireFlags</a>;
-                    <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams">GstBufferPoolAcquireParams</a>;
+struct              <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="struct GstBufferPoolAcquireParams">GstBufferPoolAcquireParams</a>;
 <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()">gst_buffer_pool_acquire_buffer</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="struct GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer" title="gst_buffer_pool_release_buffer ()">gst_buffer_pool_release_buffer</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
 </pre>
@@ -369,8 +369,8 @@
 <a name="gst-buffer-pool-config-get-allocator"></a><h3>gst_buffer_pool_config_get_allocator ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_buffer_pool_config_get_allocator
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> **allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstAllocationParams</span> *params</code></em>);</pre>
 <p>
 Get the allocator and params from <em class="parameter"><code>config</code></em>.
 </p>
@@ -384,12 +384,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>a <span class="type">GstAllocator</span>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a></td>
+<td><span class="type">GstAllocationParams</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -399,8 +399,8 @@
 <a name="gst-buffer-pool-config-set-allocator"></a><h3>gst_buffer_pool_config_set_allocator ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_pool_config_set_allocator
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">GstAllocationParams</span> *params</code></em>);</pre>
 <p>
 Set the <em class="parameter"><code>allocator</code></em> and <em class="parameter"><code>params</code></em> on <em class="parameter"><code>config</code></em>.
 </p>
@@ -408,7 +408,7 @@
 One of <em class="parameter"><code>allocator</code></em> and <em class="parameter"><code>params</code></em> can be NULL, but not both. When <em class="parameter"><code>allocator</code></em>
 is NULL, the default allocator of the pool will use the values in <em class="parameter"><code>param</code></em>
 to perform its allocation. When <em class="parameter"><code>param</code></em> is NULL, the pool will use the
-provided allocator with its default <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>.
+provided allocator with its default <span class="type">GstAllocationParams</span>.
 </p>
 <p>
 A call to <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a> can update the allocator and params
@@ -426,12 +426,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
+<td>a <span class="type">GstAllocator</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a></td>
+<td><span class="type">GstAllocationParams</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -630,6 +630,11 @@
 the pool. A default and mandatory set of parameters can be configured with
 <code class="function">gst_buffer_pool_config_set()</code>. This function takes ownership of <em class="parameter"><code>config</code></em>.
 </p>
+<p>
+If the parameters in <em class="parameter"><code>config</code></em> can not be set exactly, this function returns
+FALSE and will try to update as much state as possible. The new state can
+then be retrieved and refined with <code class="function">gst_buffer_pool_config_get()</code>.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -762,13 +767,13 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstBufferPoolAcquireParams"></a><h3>GstBufferPoolAcquireParams</h3>
-<pre class="programlisting">typedef struct {
+<a name="GstBufferPoolAcquireParams"></a><h3>struct GstBufferPoolAcquireParams</h3>
+<pre class="programlisting">struct GstBufferPoolAcquireParams {
   GstFormat                 format;
   gint64                    start;
   gint64                    stop;
   GstBufferPoolAcquireFlags flags;
-} GstBufferPoolAcquireParams;
+};
 </pre>
 <p>
 Parameters passed to the <a class="link" href="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> function to control the
@@ -807,7 +812,7 @@
 <a name="gst-buffer-pool-acquire-buffer"></a><h3>gst_buffer_pool_acquire_buffer ()</h3>
 <pre class="programlisting"><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_buffer_pool_acquire_buffer      (<em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams" title="struct GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);</pre>
 <p>
 Acquire a buffer from <em class="parameter"><code>pool</code></em>. <em class="parameter"><code>buffer</code></em> should point to a memory location that
 can hold a pointer to the new buffer.
diff --git a/docs/gst/html/gstreamer-GstCaps.html b/docs/gst/html/gstreamer-GstCaps.html
index ed50c3c..a2aaa9f 100644
--- a/docs/gst/html/gstreamer-GstCaps.html
+++ b/docs/gst/html/gstreamer-GstCaps.html
@@ -160,7 +160,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp16595824"></a><p class="title"><b>Example 4. Creating caps</b></p>
+<a name="idp16949152"></a><p class="title"><b>Example 4. Creating caps</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -174,7 +174,7 @@
 7
 8</pre></td>
         <td class="listing_code"><pre class="programlisting">GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
-caps <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-new-simple">gst_caps_new_simple</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;video/x-raw&quot;</span><span class="gtkdoc opt">,</span>
+caps <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-new-simple">gst_caps_new_simple</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;video/x-raw&quot;</span><span class="gtkdoc opt">,</span>
      <span class="string">&quot;format&quot;</span><span class="gtkdoc opt">,</span> G_TYPE_STRING<span class="gtkdoc opt">,</span> <span class="string">&quot;I420&quot;</span><span class="gtkdoc opt">,</span>
      <span class="string">&quot;framerate&quot;</span><span class="gtkdoc opt">,</span> GST_TYPE_FRACTION<span class="gtkdoc opt">,</span> <span class="number">25</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span>
      <span class="string">&quot;pixel-aspect-ratio&quot;</span><span class="gtkdoc opt">,</span> GST_TYPE_FRACTION<span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span>
@@ -309,7 +309,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -682,7 +681,7 @@
 </pre>
 <p>
 Tests if you can safely modify <em class="parameter"><code>caps</code></em>. It is only safe to modify caps when
-there is only one owner of the caps - ie, the refcount is 1.
+there is only one owner of the caps - ie, the object is writable.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -847,7 +846,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -924,7 +922,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1049,7 +1046,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1061,13 +1057,6 @@
 Sets fields in a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.  The arguments must be passed in the same
 manner as <a class="link" href="gstreamer-GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>, and be NULL-terminated.
 </p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>Prior to GStreamer version 0.10.26, this function failed when
-<em class="parameter"><code>caps</code></em> was not simple. If your code needs to work with those versions
-of GStreamer, you may only call this function when <a class="link" href="gstreamer-GstCaps.html#GST-CAPS-IS-SIMPLE:CAPS" title="GST_CAPS_IS_SIMPLE()"><code class="function">GST_CAPS_IS_SIMPLE()</code></a>
-is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for <em class="parameter"><code>caps</code></em>.</div>
-<p>
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1096,13 +1085,6 @@
 Sets fields in a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>.  The arguments must be passed in the same
 manner as <a class="link" href="gstreamer-GstStructure.html#gst-structure-set" title="gst_structure_set ()"><code class="function">gst_structure_set()</code></a>, and be NULL-terminated.
 </p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>Prior to GStreamer version 0.10.26, this function failed when
-<em class="parameter"><code>caps</code></em> was not simple. If your code needs to work with those versions
-of GStreamer, you may only call this function when <a class="link" href="gstreamer-GstCaps.html#GST-CAPS-IS-SIMPLE:CAPS" title="GST_CAPS_IS_SIMPLE()"><code class="function">GST_CAPS_IS_SIMPLE()</code></a>
-is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for <em class="parameter"><code>caps</code></em>.</div>
-<p>
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1254,9 +1236,6 @@
 <p>
 Checks if the given caps are exactly the same set of caps.
 </p>
-<p>
-This function deals correctly with passing NULL for any of the caps.
-</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -1276,7 +1255,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1371,7 +1349,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1400,7 +1377,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1463,7 +1439,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1607,7 +1582,7 @@
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;caps are %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span></pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;caps are %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> caps<span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
diff --git a/docs/gst/html/gstreamer-GstDateTime.html b/docs/gst/html/gstreamer-GstDateTime.html
index 54dc3f8..a65000d 100644
--- a/docs/gst/html/gstreamer-GstDateTime.html
+++ b/docs/gst/html/gstreamer-GstDateTime.html
@@ -61,6 +61,9 @@
                                                         (<em class="parameter"><code><span class="type">gint64</span> secs</code></em>);
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc" title="gst_date_time_new_from_unix_epoch_utc ()">gst_date_time_new_from_unix_epoch_utc</a>
                                                         (<em class="parameter"><code><span class="type">gint64</span> secs</code></em>);
+<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-ymd" title="gst_date_time_new_ymd ()">gst_date_time_new_ymd</a>               (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> day</code></em>);
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-local-time" title="gst_date_time_new_local_time ()">gst_date_time_new_local_time</a>        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> day</code></em>,
@@ -71,6 +74,19 @@
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-now-utc" title="gst_date_time_new_now_utc ()">gst_date_time_new_now_utc</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-ref" title="gst_date_time_ref ()">gst_date_time_ref</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-unref" title="gst_date_time_unref ()">gst_date_time_unref</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-day" title="gst_date_time_has_day ()">gst_date_time_has_day</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-month" title="gst_date_time_has_month ()">gst_date_time_has_month</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-second" title="gst_date_time_has_second ()">gst_date_time_has_second</a>            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-time" title="gst_date_time_has_time ()">gst_date_time_has_time</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-has-year" title="gst_date_time_has_year ()">gst_date_time_has_year</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-y" title="gst_date_time_new_y ()">gst_date_time_new_y</a>                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>);
+<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-ym" title="gst_date_time_new_ym ()">gst_date_time_new_ym</a>                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>);
+<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-iso8601-string" title="gst_date_time_new_from_iso8601_string ()">gst_date_time_new_from_iso8601_string</a>
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *string</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-to-iso8601-string" title="gst_date_time_to_iso8601_string ()">gst_date_time_to_iso8601_string</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
+<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-new-from-g-date-time" title="gst_date_time_new_from_g_date_time ()">gst_date_time_new_from_g_date_time</a>  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a> *dt</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="returnvalue">GDateTime</span></a> *         <a class="link" href="gstreamer-GstDateTime.html#gst-date-time-to-g-date-time" title="gst_date_time_to_g_date_time ()">gst_date_time_to_g_date_time</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -115,14 +131,14 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstDateTime</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-date-time-get-day"></a><h3>gst_date_time_get_day ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_date_time_get_day               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
 <p>
-Returns the day of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>.
+Returns the day of the month of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>.
+Call gst_date_time_has_day before, to avoid warnings.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -139,7 +155,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -147,6 +162,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_date_time_get_month             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
 <p>
 Returns the month of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>. January is 1, February is 2, etc..
+Call gst_date_time_has_month before, to avoid warnings.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -163,7 +179,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -172,6 +187,7 @@
 <p>
 Retrieves the hour of the day represented by <em class="parameter"><code>datetime</code></em> in the gregorian
 calendar. The return is in the range of 0 to 23.
+Call gst_date_time_has_haur before, to avoid warnings.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -187,7 +203,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -211,7 +226,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -220,6 +234,7 @@
 <p>
 Retrieves the minute of the hour represented by <em class="parameter"><code>datetime</code></em> in the gregorian
 calendar.
+Call gst_date_time_has_minute before, to avoid warnings.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -235,7 +250,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -261,7 +275,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -270,6 +283,7 @@
 <p>
 Retrieves the second of the minute represented by <em class="parameter"><code>datetime</code></em> in the gregorian
 calendar.
+Call gst_date_time_has_second before, to avoid warnings.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -286,7 +300,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -294,6 +307,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                gst_date_time_get_year              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
 <p>
 Returns the year of this <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
+Call gst_date_time_has_year before, to avoid warnings.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -310,7 +324,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -336,6 +349,12 @@
 represeting it in hours for most timezones.
 </p>
 <p>
+If value is -1 then all over value will be ignored. For example
+if <em class="parameter"><code>month</code></em> == -1, then <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> will created only for <em class="parameter"><code>year</code></em>. If
+<em class="parameter"><code>day</code></em> == -1, then <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> will created for <em class="parameter"><code>year</code></em> and <em class="parameter"><code>month</code></em> and
+so on.
+</p>
+<p>
 Free-function: gst_date_time_unref
 </p>
 <div class="variablelist"><table border="0">
@@ -376,7 +395,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -404,7 +422,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -432,24 +449,26 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-date-time-new-local-time"></a><h3>gst_date_time_new_local_time ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_local_time        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
+<a name="gst-date-time-new-ymd"></a><h3>gst_date_time_new_ymd ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_ymd               (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> day</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hour</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> minute</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> seconds</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> day</code></em>);</pre>
 <p>
 Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> using the date and times in the gregorian calendar
 in the local timezone.
 </p>
 <p>
 <em class="parameter"><code>year</code></em> should be from 1 to 9999, <em class="parameter"><code>month</code></em> should be from 1 to 12, <em class="parameter"><code>day</code></em> from
-1 to 31, <em class="parameter"><code>hour</code></em> from 0 to 23, <em class="parameter"><code>minutes</code></em> and <em class="parameter"><code>seconds</code></em> from 0 to 59.
+1 to 31.
+</p>
+<p>
+If value is -1 then all over value will be ignored. For example
+if <em class="parameter"><code>month</code></em> == -1, then <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> will created only for <em class="parameter"><code>year</code></em>. If
+<em class="parameter"><code>day</code></em> == -1, then <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> will created for <em class="parameter"><code>year</code></em> and <em class="parameter"><code>month</code></em> and
+so on.
 </p>
 <p>
 Free-function: gst_date_time_unref
@@ -470,16 +489,72 @@
 <td>the day of the gregorian month</td>
 </tr>
 <tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-new-local-time"></a><h3>gst_date_time_new_local_time ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_local_time        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> day</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> hour</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> minute</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> seconds</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> using the date and times in the gregorian calendar
+in the local timezone.
+</p>
+<p>
+<em class="parameter"><code>year</code></em> should be from 1 to 9999, <em class="parameter"><code>month</code></em> should be from 1 to 12, <em class="parameter"><code>day</code></em> from
+1 to 31, <em class="parameter"><code>hour</code></em> from 0 to 23, <em class="parameter"><code>minutes</code></em> and <em class="parameter"><code>seconds</code></em> from 0 to 59.
+</p>
+<p>
+If <em class="parameter"><code>month</code></em> is -1, then the <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> created will only contain <em class="parameter"><code>year</code></em>,
+and all other fields will be considered not set.
+</p>
+<p>
+If <em class="parameter"><code>day</code></em> is -1, then the <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> created will only contain <em class="parameter"><code>year</code></em> and
+<em class="parameter"><code>month</code></em> and all other fields will be considered not set.
+</p>
+<p>
+If <em class="parameter"><code>hour</code></em> is -1, then the <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> created will only contain <em class="parameter"><code>year</code></em> and
+<em class="parameter"><code>month</code></em> and <em class="parameter"><code>day</code></em>, and the time fields will be considered not set. In this
+case <em class="parameter"><code>minute</code></em> and <em class="parameter"><code>seconds</code></em> should also be -1.
+</p>
+<p>
+Free-function: gst_date_time_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
+<td>the gregorian year</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
+<td>the gregorian month, or -1</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
+<td>the day of the gregorian month, or -1</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>hour</code></em> :</span></p></td>
-<td>the hour of the day</td>
+<td>the hour of the day, or -1</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>minute</code></em> :</span></p></td>
-<td>the minute of the hour</td>
+<td>the minute of the hour, or -1</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>seconds</code></em> :</span></p></td>
-<td>the second of the minute</td>
+<td>the second of the minute, or -1</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -488,7 +563,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -509,7 +583,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -531,7 +604,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -555,7 +627,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -573,7 +644,273 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-has-day"></a><h3>gst_date_time_has_day ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_day               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>datetime</code></em>'s day field is set, otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-has-month"></a><h3>gst_date_time_has_month ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_month             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>datetime</code></em>'s month field is set, otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-has-second"></a><h3>gst_date_time_has_second ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_second            (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>datetime</code></em>'s second field is set, otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-has-time"></a><h3>gst_date_time_has_time ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_time              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>datetime</code></em>'s hour and minute fields are set,
+otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-has-year"></a><h3>gst_date_time_has_year ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_date_time_has_year              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>datetime</code></em>'s year field is set (which should always
+be the case), otherwise FALSE</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-new-y"></a><h3>gst_date_time_new_y ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_y                 (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> using the date and times in the gregorian calendar
+in the local timezone.
+</p>
+<p>
+<em class="parameter"><code>year</code></em> should be from 1 to 9999.
+</p>
+<p>
+Free-function: gst_date_time_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
+<td>the gregorian year</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-new-ym"></a><h3>gst_date_time_new_ym ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_ym                (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> year</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> month</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> using the date and times in the gregorian calendar
+in the local timezone.
+</p>
+<p>
+<em class="parameter"><code>year</code></em> should be from 1 to 9999, <em class="parameter"><code>month</code></em> should be from 1 to 12.
+</p>
+<p>
+If value is -1 then all over value will be ignored. For example
+if <em class="parameter"><code>month</code></em> == -1, then <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> will created only for <em class="parameter"><code>year</code></em>.
+</p>
+<p>
+Free-function: gst_date_time_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
+<td>the gregorian year</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
+<td>the gregorian month</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-new-from-iso8601-string"></a><h3>gst_date_time_new_from_iso8601_string ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_from_iso8601_string
+                                                        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *string</code></em>);</pre>
+<p>
+Tries to parse common variants of ISO-8601 datetime strings into a
+<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>.
+</p>
+<p>
+Free-function: gst_date_time_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
+<td>ISO 8601-formatted datetime string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>, or NULL on error. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-to-iso8601-string"></a><h3>gst_date_time_to_iso8601_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             gst_date_time_to_iso8601_string     (<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<p>
+Create a minimal string compatible with ISO-8601. Possible output formats
+are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
+2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>GstDateTime.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated string formatted according to ISO 8601 and
+only including the datetime fields that are valid, or NULL in case
+there was an error. The string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-new-from-g-date-time"></a><h3>gst_date_time_new_from_g_date_time ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="returnvalue">GstDateTime</span></a> *       gst_date_time_new_from_g_date_time  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a> *dt</code></em>);</pre>
+<p>
+Creates a new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> from a <a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a> object.
+</p>
+<p>
+Free-function: gst_date_time_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dt</code></em> :</span></p></td>
+<td>the <a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a>. The new <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> takes ownership. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly created <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a>, or NULL on error. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-date-time-to-g-date-time"></a><h3>gst_date_time_to_g_date_time ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="returnvalue">GDateTime</span></a> *         gst_date_time_to_g_date_time        (<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> *datetime</code></em>);</pre>
+<p>
+Creates a new <a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a> from a fully defined <a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> object.
+</p>
+<p>
+Free-function: g_date_time_unref
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>datetime</code></em> :</span></p></td>
+<td>GstDateTime.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly created <a href="http://library.gnome.org/devel/glib/unstable/glib-GDateTime.html#GDateTime"><span class="type">GDateTime</span></a>, or NULL on error. <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>
 </div>
diff --git a/docs/gst/html/gstreamer-GstEvent.html b/docs/gst/html/gstreamer-GstEvent.html
index 0dfda61..f79555d 100644
--- a/docs/gst/html/gstreamer-GstEvent.html
+++ b/docs/gst/html/gstreamer-GstEvent.html
@@ -87,14 +87,15 @@
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-gap" title="gst_event_parse_gap ()">gst_event_parse_gap</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *duration</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-start" title="gst_event_new_stream_start ()">gst_event_new_stream_start</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-stream-start" title="gst_event_new_stream_start ()">gst_event_new_stream_start</a>          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-stream-start" title="gst_event_parse_stream_start ()">gst_event_parse_stream_start</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **stream_id</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-segment" title="gst_event_new_segment ()">gst_event_new_segment</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-segment" title="gst_event_parse_segment ()">gst_event_parse_segment</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> **segment</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-copy-segment" title="gst_event_copy_segment ()">gst_event_copy_segment</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-buffer-size" title="gst_event_new_buffer_size ()">gst_event_new_buffer_size</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
@@ -174,14 +175,19 @@
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **buf</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc" title="gst_event_new_toc ()">gst_event_new_toc</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc" title="gst_event_new_toc ()">gst_event_new_toc</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc" title="gst_event_parse_toc ()">gst_event_parse_toc</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);
 <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-toc-select" title="gst_event_new_toc_select ()">gst_event_new_toc_select</a>            (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc-select" title="gst_event_parse_toc_select ()">gst_event_parse_toc_select</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uid</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          <a class="link" href="gstreamer-GstEvent.html#gst-event-new-segment-done" title="gst_event_new_segment_done ()">gst_event_new_segment_done</a>          (<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">gint64</span> position</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-segment-done" title="gst_event_parse_segment_done ()">gst_event_parse_segment_done</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</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">gint64</span> *position</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -218,7 +224,7 @@
 the needed parameters to specify seeking time and mode.
 </p>
 <div class="example">
-<a name="idp21515712"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
+<a name="idp22888576"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -243,13 +249,13 @@
 <span class="gtkdoc opt">...</span>
 <span class="gtkdoc slc">// construct a seek event to play the media from second 2 to 5, flush</span>
 <span class="gtkdoc slc">// the pipeline to decrease latency.</span>
-event <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#gst-event-new-seek">gst_event_new_seek</a></span> <span class="gtkdoc opt">(</span><span class="number">1.0</span><span class="gtkdoc opt">,</span> 
+event <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-seek">gst_event_new_seek</a></span> <span class="gtkdoc opt">(</span><span class="number">1.0</span><span class="gtkdoc opt">,</span> 
    GST_FORMAT_TIME<span class="gtkdoc opt">,</span> 
    GST_SEEK_FLAG_FLUSH<span class="gtkdoc opt">,</span>
    GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">2</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">,</span>
    GST_SEEK_TYPE_SET<span class="gtkdoc opt">,</span> <span class="number">5</span> <span class="gtkdoc opt">*</span> GST_SECOND<span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">...</span>
-result <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-send-event">gst_element_send_event</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> event<span class="gtkdoc opt">);</span>
+result <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-send-event">gst_element_send_event</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> event<span class="gtkdoc opt">);</span>
 <span class="keyword">if</span> <span class="gtkdoc opt">(!</span>result<span class="gtkdoc opt">)</span>
   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;seek failed&quot;</span><span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">...</span></pre></td>
@@ -400,7 +406,7 @@
   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
   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)),
+  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, 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)),
@@ -469,7 +475,7 @@
 </tr>
 <tr>
 <td><p><a name="GST-EVENT-STREAM-CONFIG:CAPS"></a><span class="term"><code class="literal">GST_EVENT_STREAM_CONFIG</code></span></p></td>
-<td>contains configuration information for the stream,
+<td>(unimplemented) contains configuration information for the stream,
                 for example stream-headers and codec-data.
 </td>
 </tr>
@@ -497,7 +503,6 @@
 <td>An event that sinks turn into a message. Used to
                          send messages that should be emitted in sync with
                          rendering.
-                         Since: 0.10.26
 </td>
 </tr>
 <tr>
@@ -509,17 +514,17 @@
 <tr>
 <td><p><a name="GST-EVENT-TOC:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TOC</code></span></p></td>
 <td>An event which indicates that a new table of contents (TOC)
-                was found or updated. Since: 0.10.37
+                was found or updated.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-EVENT-SEGMENT-DONE:CAPS"></a><span class="term"><code class="literal">GST_EVENT_SEGMENT_DONE</code></span></p></td>
-<td>(unimplemented) Marks the end of a segment playback.
+<td>Marks the end of a segment playback.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-EVENT-GAP:CAPS"></a><span class="term"><code class="literal">GST_EVENT_GAP</code></span></p></td>
-<td>(unimplemented) Marks a gap in the datastream.
+<td>Marks a gap in the datastream.
 </td>
 </tr>
 <tr>
@@ -545,25 +550,23 @@
 <td><p><a name="GST-EVENT-LATENCY:CAPS"></a><span class="term"><code class="literal">GST_EVENT_LATENCY</code></span></p></td>
 <td>Notification of new latency adjustment. Sinks will use
                     the latency information to adjust their synchronisation.
-                    Since: 0.10.12
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-EVENT-STEP:CAPS"></a><span class="term"><code class="literal">GST_EVENT_STEP</code></span></p></td>
 <td>A request for stepping through the media. Sinks will usually
-                 execute the step operation. Since: 0.10.24
+                 execute the step operation.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-EVENT-RECONFIGURE:CAPS"></a><span class="term"><code class="literal">GST_EVENT_RECONFIGURE</code></span></p></td>
 <td>A request for upstream renegotiating caps and reconfiguring.
-                        Since: 0.11.0
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-EVENT-TOC-SELECT:CAPS"></a><span class="term"><code class="literal">GST_EVENT_TOC_SELECT</code></span></p></td>
 <td>A request for a new playback position based on TOC
-                       entry's UID. Since 0.10.37
+                       entry's UID.
 </td>
 </tr>
 <tr>
@@ -1114,7 +1117,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1150,7 +1152,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1181,7 +1182,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1368,7 +1368,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-event-new-stream-start"></a><h3>gst_event_new_stream_start ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_stream_start          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_stream_start          (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stream_id</code></em>);</pre>
 <p>
 Create a new STREAM_START event. The stream start event can only
 travel downstream synchronized with the buffer flow. It is expected
@@ -1382,13 +1382,50 @@
 combining multiple streams must ensure that this event is only forwarded
 downstream once and not for every single input stream.
 </p>
+<p>
+The <em class="parameter"><code>stream_id</code></em> should be a unique string that consists of the upstream
+stream-id, / as separator and a unique stream-id for this specific
+stream. A new stream-id should only be created for a stream if the upstream
+stream is split into (potentially) multiple new streams, e.g. in a demuxer,
+but not for every single element in the pipeline.
+<code class="function">gst_util_create_stream_id()</code> can be used to create a stream-id.
+</p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
-<tbody><tr>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_id</code></em> :</span></p></td>
+<td>Identifier for this stream</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>the new STREAM_START event. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
-</tr></tbody>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-stream-start"></a><h3>gst_event_parse_stream_start ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_stream_start        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **stream_id</code></em>);</pre>
+<p>
+Parse a stream-id <em class="parameter"><code>event</code></em> and store the result in the given <em class="parameter"><code>stream_id</code></em> location.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>a stream-start event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_id</code></em> :</span></p></td>
+<td>pointer to store the stream-id. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <hr>
@@ -1502,24 +1539,21 @@
 <hr>
 <div class="refsect2">
 <a name="gst-event-new-tag"></a><h3>gst_event_new_tag ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_tag                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_tag                   (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
 <p>
 Generates a metadata tag event from the given <em class="parameter"><code>taglist</code></em>.
 </p>
 <p>
-Since the TAG event has the <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY-MULTI:CAPS"><code class="literal">GST_EVENT_TYPE_STICKY_MULTI</code></a> flag set, the
-<em class="parameter"><code>name</code></em> will be used to keep track of multiple tag events.
+The scope of the taglist specifies if the taglist applies to the
+complete medium or only to this specific stream. As the tag event
+is a sticky event, elements should merge tags received from
+upstream with a given scope with their own tags with the same
+scope and create a new tag event from it.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the event. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
 <td>metadata list. The event will take ownership
 of the taglist. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -1680,7 +1714,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1936,7 +1969,7 @@
 <td><p><a name="GST-SEEK-FLAG-SKIP:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_SKIP</code></span></p></td>
 <td>when doing fast foward or fast reverse playback, allow
                     elements to skip frames instead of generating all
-                    frames. Since 0.10.22.
+                    frames.
 </td>
 </tr>
 <tr>
@@ -1944,14 +1977,13 @@
 <td>go to a location before the requested position,
                     if KEY_UNIT this means the keyframe at or before the
                     requested position the one at or before the seek target.
-                    Since 0.10.37.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-SEEK-FLAG-SNAP-AFTER:CAPS"></a><span class="term"><code class="literal">GST_SEEK_FLAG_SNAP_AFTER</code></span></p></td>
 <td>go to a location after the requested position,
                     if KEY_UNIT this means the keyframe at of after the
-                    requested position. Since 0.10.37.
+                    requested position.
 </td>
 </tr>
 <tr>
@@ -1959,7 +1991,7 @@
 <td>go to a position near the requested position,
                     if KEY_UNIT this means the keyframe closest to the
                     requested position, if both keyframes are at an equal
-                    distance, behaves like SNAP_BEFORE. Since 0.10.37.
+                    distance, behaves like SNAP_BEFORE.
 </td>
 </tr>
 </tbody>
@@ -2164,7 +2196,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2188,7 +2219,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2247,7 +2277,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2296,7 +2325,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2330,7 +2358,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2354,7 +2381,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2374,7 +2400,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.11.0</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2419,7 +2444,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>A pointer to the caps. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>A pointer to the caps. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -2647,7 +2672,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-event-new-toc"></a><h3>gst_event_new_toc ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_toc                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_toc                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);</pre>
 <p>
 Generate a TOC event from the given <em class="parameter"><code>toc</code></em>. The purpose of the TOC event is to
@@ -2657,13 +2682,10 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>a name for the event</td>
-</tr>
-<tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.</td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>updated</code></em> :</span></p></td>
@@ -2671,17 +2693,17 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>.</td>
+<td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-event-parse-toc"></a><h3>gst_event_parse_toc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_toc                 (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);</pre>
 <p>
 Parse a TOC <em class="parameter"><code>event</code></em> and store the results in the given <em class="parameter"><code>toc</code></em> and <em class="parameter"><code>updated</code></em> locations.
@@ -2695,7 +2717,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>pointer to <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>pointer to <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2705,7 +2727,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2729,7 +2750,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2753,7 +2773,63 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-event-new-segment-done"></a><h3>gst_event_new_segment_done ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> *          gst_event_new_segment_done          (<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">gint64</span> position</code></em>);</pre>
+<p>
+Create a new segment-done event. This event is sent by elements that
+finish playback of a segment as a result of a segment seek.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>The format of the position being done</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>The position of the segment being done</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-event-parse-segment-done"></a><h3>gst_event_parse_segment_done ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_event_parse_segment_done        (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</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">gint64</span> *position</code></em>);</pre>
+<p>
+Extracts the position and format from the segment done message.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A valid <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> of type GST_EVENT_SEGMENT_DONE.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>Result location for the format, or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>position</code></em> :</span></p></td>
+<td>Result location for the position, or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/gstreamer-GstFormat.html b/docs/gst/html/gstreamer-GstFormat.html
index f763b9c..a65df6e 100644
--- a/docs/gst/html/gstreamer-GstFormat.html
+++ b/docs/gst/html/gstreamer-GstFormat.html
@@ -284,7 +284,8 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>formats</code></em> :</span></p></td>
-<td>The format array to search</td>
+<td>The format array to search. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstGError.html b/docs/gst/html/gstreamer-GstGError.html
index f82a9e1..f3b0fbd 100644
--- a/docs/gst/html/gstreamer-GstGError.html
+++ b/docs/gst/html/gstreamer-GstGError.html
@@ -115,14 +115,14 @@
 <p>
 </p>
 <div class="example">
-<a name="idp6925664"></a><p class="title"><b>Example 7. Throwing an error</b></p>
+<a name="idp9531472"></a><p class="title"><b>Example 7. Throwing an error</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1
 2</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-ELEMENT-ERROR:CAPS">GST_ELEMENT_ERROR</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">,</span> RESOURCE<span class="gtkdoc opt">,</span> NOT_FOUND<span class="gtkdoc opt">,</span>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/GstElement.html#GST-ELEMENT-ERROR:CAPS">GST_ELEMENT_ERROR</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">,</span> RESOURCE<span class="gtkdoc opt">,</span> NOT_FOUND<span class="gtkdoc opt">,</span>
   <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-I18N.html#gettext-macro">_</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;No file name specified for reading.&quot;</span><span class="gtkdoc opt">)), (</span>NULL<span class="gtkdoc opt">));</span></pre></td>
       </tr>
     </tbody>
@@ -259,7 +259,7 @@
 <tr>
 <td><p><a name="GST-CORE-ERROR-DISABLED:CAPS"></a><span class="term"><code class="literal">GST_CORE_ERROR_DISABLED</code></span></p></td>
 <td>used if functionality has been disabled at
-                          compile time (Since: 0.10.13).
+                          compile time.
 </td>
 </tr>
 <tr>
@@ -533,13 +533,13 @@
 <tr>
 <td><p><a name="GST-STREAM-ERROR-DECRYPT:CAPS"></a><span class="term"><code class="literal">GST_STREAM_ERROR_DECRYPT</code></span></p></td>
 <td>used when the stream is encrypted and can't be
-decrypted because this is not supported by the element. (Since: 0.10.20)
+decrypted because this is not supported by the element.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-STREAM-ERROR-DECRYPT-NOKEY:CAPS"></a><span class="term"><code class="literal">GST_STREAM_ERROR_DECRYPT_NOKEY</code></span></p></td>
 <td>used when the stream is encrypted and
-can't be decrypted because no suitable key is available. (Since: 0.10.20)
+can't be decrypted because no suitable key is available.
 </td>
 </tr>
 <tr>
diff --git a/docs/gst/html/gstreamer-GstInfo.html b/docs/gst/html/gstreamer-GstInfo.html
index 2129d3d..d6fb6f4 100644
--- a/docs/gst/html/gstreamer-GstInfo.html
+++ b/docs/gst/html/gstreamer-GstInfo.html
@@ -55,7 +55,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> line</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code><span class="type">GstDebugMessage</span> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-log" title="gst_debug_log ()">gst_debug_log</a>                       (<em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugCategory" title="struct GstDebugCategory"><span class="type">GstDebugCategory</span></a> *category</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugLevel" title="enum GstDebugLevel"><span class="type">GstDebugLevel</span></a> level</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *file</code></em>,
@@ -83,7 +83,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> unused</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstInfo.html#gst-debug-level-get-name" title="gst_debug_level_get_name ()">gst_debug_level_get_name</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstDebugLevel" title="enum GstDebugLevel"><span class="type">GstDebugLevel</span></a> level</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstInfo.html#gst-debug-add-log-function" title="gst_debug_add_log_function ()">gst_debug_add_log_function</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstLogFunction" title="GstLogFunction ()"><span class="type">GstLogFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstInfo.html#gst-debug-remove-log-function" title="gst_debug_remove_log_function ()">gst_debug_remove_log_function</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstLogFunction" title="GstLogFunction ()"><span class="type">GstLogFunction</span></a> func</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstInfo.html#gst-debug-remove-log-function-by-data" title="gst_debug_remove_log_function_by_data ()">gst_debug_remove_log_function_by_data</a>
                                                         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
@@ -249,7 +250,7 @@
       <tr>
         <td class="listing_lines" align="right"><pre>1
 2</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>my_category<span class="gtkdoc opt">);</span>     <span class="gtkdoc slc">// define category (statically)</span>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>my_category<span class="gtkdoc opt">);</span>     <span class="gtkdoc slc">// define category (statically)</span>
 <span class="gtkdoc ppc">#define GST_CAT_DEFAULT my_category</span>     <span class="gtkdoc slc">// set as default</span><span class="gtkdoc ppc"></span></pre></td>
       </tr>
     </tbody>
@@ -265,7 +266,7 @@
       <tr>
         <td class="listing_lines" align="right"><pre>1
 2</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">GST_DEBUG_CATEGORY_INIT</a></span> <span class="gtkdoc opt">(</span>my_category<span class="gtkdoc opt">,</span> <span class="string">&quot;my category&quot;</span><span class="gtkdoc opt">,</span>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">GST_DEBUG_CATEGORY_INIT</a></span> <span class="gtkdoc opt">(</span>my_category<span class="gtkdoc opt">,</span> <span class="string">&quot;my category&quot;</span><span class="gtkdoc opt">,</span>
                          <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="string">&quot;This is my very own&quot;</span><span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
@@ -352,7 +353,7 @@
  in the executed code path is not fully implemented or handled yet. Note
  that this does not replace proper error handling in any way, the purpose
  of this message is to make it easier to spot incomplete/unfinished pieces
- of code when reading the debug log. (Since: 0.10.23)
+ of code when reading the debug log.
 </td>
 </tr>
 <tr>
@@ -385,7 +386,7 @@
 </tr>
 <tr>
 <td><p><a name="GST-LEVEL-TRACE:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_TRACE</code></span></p></td>
-<td>Tracing-related messages (Since: 0.10.30)
+<td>Tracing-related messages.
  Examples for this are referencing/dereferencing of objects.
 </td>
 </tr>
@@ -393,7 +394,7 @@
 <td><p><a name="GST-LEVEL-MEMDUMP:CAPS"></a><span class="term"><code class="literal">GST_LEVEL_MEMDUMP</code></span></p></td>
 <td>memory dump messages are used to log (small) chunks of
  data as memory dumps in the log. They will be displayed as hexdump with
- ASCII characters. (Since: 0.10.23)
+ ASCII characters.
 </td>
 </tr>
 <tr>
@@ -601,7 +602,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -665,7 +665,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> line</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
                                                          <em class="parameter"><code><span class="type">GstDebugMessage</span> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 Function prototype for a logging function that can be registered with
 <a class="link" href="gstreamer-GstInfo.html#gst-debug-add-log-function" title="gst_debug_add_log_function ()"><code class="function">gst_debug_add_log_function()</code></a>.
@@ -706,7 +706,7 @@
 <td>the message</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>user data for the log function</td>
 </tr>
 </tbody>
@@ -929,7 +929,8 @@
 <div class="refsect2">
 <a name="gst-debug-add-log-function"></a><h3>gst_debug_add_log_function ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_debug_add_log_function          (<em class="parameter"><code><a class="link" href="gstreamer-GstInfo.html#GstLogFunction" title="GstLogFunction ()"><span class="type">GstLogFunction</span></a> func</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
 <p>
 Adds the logging function to the list of logging functions.
 Be sure to use <a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Macros.html#G-GNUC-NO-INSTRUMENT:CAPS"><span class="type">G_GNUC_NO_INSTRUMENT</span></a> on that function, it is needed.
@@ -942,9 +943,12 @@
 <td>the function to use</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>user data. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
-</td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
+<td>called when <em class="parameter"><code>user_data</code></em> is not used anymore</td>
 </tr>
 </tbody>
 </table></div>
@@ -961,7 +965,8 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
-<td>the log function to remove</td>
+<td>the log function to remove. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -1267,12 +1272,12 @@
 4
 5
 6</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>gst_myplugin_debug<span class="gtkdoc opt">);</span>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>gst_myplugin_debug<span class="gtkdoc opt">);</span>
 <span class="gtkdoc ppc">#define GST_CAT_DEFAULT gst_myplugin_debug</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>GST_CAT_PERFORMANCE<span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS">GST_DEBUG_CATEGORY_STATIC</a></span> <span class="gtkdoc opt">(</span>GST_CAT_PERFORMANCE<span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">...</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">GST_DEBUG_CATEGORY_INIT</a></span> <span class="gtkdoc opt">(</span>gst_myplugin_debug<span class="gtkdoc opt">,</span> <span class="string">&quot;myplugin&quot;</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="string">&quot;nice element&quot;</span><span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS">GST_DEBUG_CATEGORY_GET</a></span> <span class="gtkdoc opt">(</span>GST_CAT_PERFORMANCE<span class="gtkdoc opt">,</span> <span class="string">&quot;GST_PERFORMANCE&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS">GST_DEBUG_CATEGORY_INIT</a></span> <span class="gtkdoc opt">(</span>gst_myplugin_debug<span class="gtkdoc opt">,</span> <span class="string">&quot;myplugin&quot;</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="string">&quot;nice element&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS">GST_DEBUG_CATEGORY_GET</a></span> <span class="gtkdoc opt">(</span>GST_CAT_PERFORMANCE<span class="gtkdoc opt">,</span> <span class="string">&quot;GST_PERFORMANCE&quot;</span><span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -1293,7 +1298,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1518,7 +1522,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1707,7 +1710,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1735,7 +1737,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1770,7 +1771,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1903,7 +1903,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1926,7 +1925,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1956,7 +1954,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2091,7 +2088,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2114,7 +2110,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2144,7 +2139,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2241,7 +2235,6 @@
 <td>printf-style message to output</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2258,7 +2251,6 @@
 <td>printf-style message to output</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2284,7 +2276,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2304,7 +2295,6 @@
 <td>pointer to the function to register</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2394,7 +2384,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2423,7 +2412,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2452,7 +2440,7 @@
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function">printf</span><span class="gtkdoc opt">(</span><span class="string">&quot;%&quot;</span> GST_TIME_FORMAT <span class="string">&quot;</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span><span class="gtkdoc opt">(</span>ts<span class="gtkdoc opt">));</span></pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function">printf</span><span class="gtkdoc opt">(</span><span class="string">&quot;%&quot;</span> GST_TIME_FORMAT <span class="string">&quot;</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span><span class="gtkdoc opt">(</span>ts<span class="gtkdoc opt">));</span></pre></td>
       </tr>
     </tbody>
   </table>
diff --git a/docs/gst/html/gstreamer-GstIterator.html b/docs/gst/html/gstreamer-GstIterator.html
index 82147a4..054cc8e 100644
--- a/docs/gst/html/gstreamer-GstIterator.html
+++ b/docs/gst/html/gstreamer-GstIterator.html
@@ -122,7 +122,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp22563824"></a><p class="title"><b>Example 9. Using an iterator</b></p>
+<a name="idp21761296"></a><p class="title"><b>Example 9. Using an iterator</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -153,14 +153,14 @@
         <td class="listing_code"><pre class="programlisting">it <span class="gtkdoc opt">=</span> <span class="function">_get_iterator</span><span class="gtkdoc opt">(</span>object<span class="gtkdoc opt">);</span>
 done <span class="gtkdoc opt">=</span> FALSE<span class="gtkdoc opt">;</span>
 <span class="keyword">while</span> <span class="gtkdoc opt">(!</span>done<span class="gtkdoc opt">) {</span>
-  <span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstIterator.html#gst-iterator-next">gst_iterator_next</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">, &amp;</span>item<span class="gtkdoc opt">)) {</span>
+  <span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-next">gst_iterator_next</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">, &amp;</span>item<span class="gtkdoc opt">)) {</span>
     <span class="keyword">case</span> GST_ITERATOR_OK<span class="gtkdoc opt">:</span>
       <span class="gtkdoc opt">...</span> use<span class="gtkdoc opt">/</span>change item here<span class="gtkdoc opt">...</span>
       <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-reset">g_value_reset</a></span> <span class="gtkdoc opt">(&amp;</span>item<span class="gtkdoc opt">);</span>
       <span class="keyword">break</span><span class="gtkdoc opt">;</span>
     <span class="keyword">case</span> GST_ITERATOR_RESYNC<span class="gtkdoc opt">:</span>
       <span class="gtkdoc opt">...</span>rollback changes to items<span class="gtkdoc opt">...</span>
-      <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstIterator.html#gst-iterator-resync">gst_iterator_resync</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">);</span>
+      <span class="function"><a href="../gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-resync">gst_iterator_resync</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">);</span>
       <span class="keyword">break</span><span class="gtkdoc opt">;</span>
     <span class="keyword">case</span> GST_ITERATOR_ERROR<span class="gtkdoc opt">:</span>
       <span class="gtkdoc opt">...</span>wrong parameters were given<span class="gtkdoc opt">...</span>
@@ -172,7 +172,7 @@
   <span class="gtkdoc opt">}</span>
 <span class="gtkdoc opt">}</span>
 <span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset">g_value_unset</a></span> <span class="gtkdoc opt">(&amp;</span>item<span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstIterator.html#gst-iterator-free">gst_iterator_free</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">);</span></pre></td>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstIterator.html#gst-iterator-free">gst_iterator_free</a></span> <span class="gtkdoc opt">(</span>it<span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -689,7 +689,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/gstreamer-GstMemory.html b/docs/gst/html/gstreamer-GstMemory.html
index 945f0e2..92e8a05 100644
--- a/docs/gst/html/gstreamer-GstMemory.html
+++ b/docs/gst/html/gstreamer-GstMemory.html
@@ -47,23 +47,18 @@
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS" title="GST_MEMORY_FLAG_UNSET()">GST_MEMORY_FLAG_UNSET</a>               (mem,
                                                          flag)
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS" title="GST_MEMORY_IS_READONLY()">GST_MEMORY_IS_READONLY</a>              (mem)
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE:CAPS" title="GST_MEMORY_IS_NO_SHARE()">GST_MEMORY_IS_NO_SHARE</a>              (mem)
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS" title="GST_MEMORY_IS_ZERO_PADDED()">GST_MEMORY_IS_ZERO_PADDED</a>           (mem)
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS" title="GST_MEMORY_IS_ZERO_PREFIXED()">GST_MEMORY_IS_ZERO_PREFIXED</a>         (mem)
 struct              <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory">GstMemory</a>;
 enum                <a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags">GstMapFlags</a>;
+#define             <a class="link" href="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS" title="GST_MAP_READWRITE">GST_MAP_READWRITE</a>
                     <a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo">GstMapInfo</a>;
 #define             <a class="link" href="gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS" title="GST_MAP_INFO_INIT">GST_MAP_INFO_INIT</a>
-#define             <a class="link" href="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS" title="GST_MAP_READWRITE">GST_MAP_READWRITE</a>
-struct              <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams">GstAllocationParams</a>;
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (<a class="link" href="gstreamer-GstMemory.html#GstAllocatorAllocFunction" title="GstAllocatorAllocFunction ()">*GstAllocatorAllocFunction</a>)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            (<a class="link" href="gstreamer-GstMemory.html#GstMemoryMapFunction" title="GstMemoryMapFunction ()">*GstMemoryMapFunction</a>)             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()">*GstMemoryUnmapFunction</a>)           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMemory.html#GstMemoryFreeFunction" title="GstMemoryFreeFunction ()">*GstMemoryFreeFunction</a>)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (<a class="link" href="gstreamer-GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()">*GstMemoryCopyFunction</a>)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
                                                          <em class="parameter"><code><span class="type">gssize</span> size</code></em>);
@@ -73,41 +68,27 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()">*GstMemoryIsSpanFunction</a>)          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem2</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>);
-struct              <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo">GstMemoryInfo</a>;
-                    <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator">GstAllocator</a>;
-<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gstreamer-GstMemory.html#gst-allocator-new" title="gst_allocator_new ()">gst_allocator_new</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstMemory.html#gst-allocator-get-memory-type" title="gst_allocator_get_memory_type ()">gst_allocator_get_memory_type</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
-<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gstreamer-GstMemory.html#gst-allocator-ref" title="gst_allocator_ref ()">gst_allocator_ref</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-unref" title="gst_allocator_unref ()">gst_allocator_unref</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
-#define             <a class="link" href="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS" title="GST_ALLOCATOR_SYSMEM">GST_ALLOCATOR_SYSMEM</a>
-<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      <a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()">gst_allocator_find</a>                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()">gst_allocator_register</a>              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocator-set-default" title="gst_allocator_set_default ()">gst_allocator_set_default</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-init" title="gst_allocation_params_init ()">gst_allocation_params_init</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
-<a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="returnvalue">GstAllocationParams</span></a> * <a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-copy" title="gst_allocation_params_copy ()">gst_allocation_params_copy</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-free" title="gst_allocation_params_free ()">gst_allocation_params_free</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()">gst_allocator_alloc</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-new-wrapped" title="gst_memory_new_wrapped ()">gst_memory_new_wrapped</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-init" title="gst_memory_init ()">gst_memory_init</a>                     (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> align</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
-<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-ref" title="gst_memory_ref ()">gst_memory_ref</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()">gst_memory_unref</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-exclusive" title="gst_memory_is_exclusive ()">gst_memory_is_exclusive</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+<a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-ref" title="gst_memory_ref ()">gst_memory_ref</a>                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *memory</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()">gst_memory_unref</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *memory</code></em>);
 <span class="returnvalue">gsize</span>               <a class="link" href="gstreamer-GstMemory.html#gst-memory-get-sizes" title="gst_memory_get_sizes ()">gst_memory_get_sizes</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> *offset</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> *maxsize</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMemory.html#gst-memory-resize" title="gst_memory_resize ()">gst_memory_resize</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
+#define             <a class="link" href="gstreamer-GstMemory.html#gst-memory-lock" title="gst_memory_lock()">gst_memory_lock</a>                     (m,
+                                                         f)
+#define             <a class="link" href="gstreamer-GstMemory.html#gst-memory-unlock" title="gst_memory_unlock()">gst_memory_unlock</a>                   (m,
+                                                         f)
+#define             <a class="link" href="gstreamer-GstMemory.html#gst-memory-is-writable" title="gst_memory_is_writable()">gst_memory_is_writable</a>              (m)
 <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         <a class="link" href="gstreamer-GstMemory.html#gst-memory-make-mapped" title="gst_memory_make_mapped ()">gst_memory_make_mapped</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);
@@ -140,18 +121,18 @@
 in the allocated region.
 </p>
 <p>
-Memory is usually created by allocators with a <a class="link" href="gstreamer-GstMemory.html#gst-allocator-alloc" title="gst_allocator_alloc ()"><code class="function">gst_allocator_alloc()</code></a>
+Memory is usually created by allocators with a <code class="function">gst_allocator_alloc()</code>
 method call. When NULL is used as the allocator, the default allocator will
 be used.
 </p>
 <p>
-New allocators can be registered with <a class="link" href="gstreamer-GstMemory.html#gst-allocator-register" title="gst_allocator_register ()"><code class="function">gst_allocator_register()</code></a>.
+New allocators can be registered with <code class="function">gst_allocator_register()</code>.
 Allocators are identified by name and can be retrieved with
-<a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()"><code class="function">gst_allocator_find()</code></a>. <a class="link" href="gstreamer-GstMemory.html#gst-allocator-set-default" title="gst_allocator_set_default ()"><code class="function">gst_allocator_set_default()</code></a> can be used to change the
+<code class="function">gst_allocator_find()</code>. <code class="function">gst_allocator_set_default()</code> can be used to change the
 default allocator.
 </p>
 <p>
-New memory can be created with <a class="link" href="gstreamer-GstMemory.html#gst-memory-new-wrapped" title="gst_memory_new_wrapped ()"><code class="function">gst_memory_new_wrapped()</code></a> that wraps the memory
+New memory can be created with <code class="function">gst_memory_new_wrapped()</code> that wraps the memory
 allocated elsewhere.
 </p>
 <p>
@@ -185,12 +166,12 @@
 <div class="refsect2">
 <a name="GstMemoryFlags"></a><h3>enum GstMemoryFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_MEMORY_FLAG_READONLY      = (1 &lt;&lt; 0),
-  GST_MEMORY_FLAG_NO_SHARE      = (1 &lt;&lt; 1),
-  GST_MEMORY_FLAG_ZERO_PREFIXED = (1 &lt;&lt; 2),
-  GST_MEMORY_FLAG_ZERO_PADDED   = (1 &lt;&lt; 3),
+  GST_MEMORY_FLAG_READONLY      = GST_MINI_OBJECT_FLAG_LOCK_READONLY,
+  GST_MEMORY_FLAG_NO_SHARE      = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 0),
+  GST_MEMORY_FLAG_ZERO_PREFIXED = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 1),
+  GST_MEMORY_FLAG_ZERO_PADDED   = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 2),
 
-  GST_MEMORY_FLAG_LAST          = (1 &lt;&lt; 16)
+  GST_MEMORY_FLAG_LAST          = (GST_MINI_OBJECT_FLAG_LAST &lt;&lt; 16)
 } GstMemoryFlags;
 </pre>
 <p>
@@ -232,7 +213,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-MEMORY-FLAGS:CAPS"></a><h3>GST_MEMORY_FLAGS()</h3>
-<pre class="programlisting">#define GST_MEMORY_FLAGS(mem)  (GST_MEMORY_CAST (mem)-&gt;flags)
+<pre class="programlisting">#define GST_MEMORY_FLAGS(mem)  GST_MINI_OBJECT_FLAGS (mem)
 </pre>
 <p>
 A flags word containing <a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags set on <em class="parameter"><code>mem</code></em>
@@ -248,7 +229,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-MEMORY-FLAG-IS-SET:CAPS"></a><h3>GST_MEMORY_FLAG_IS_SET()</h3>
-<pre class="programlisting">#define GST_MEMORY_FLAG_IS_SET(mem,flag)   !!(GST_MEMORY_FLAGS (mem) &amp; (flag))
+<pre class="programlisting">#define GST_MEMORY_FLAG_IS_SET(mem,flag)   GST_MINI_OBJECT_FLAG_IS_SET (mem,flag)
 </pre>
 <p>
 Gives the status of a specific flag on a <em class="parameter"><code>mem</code></em>.
@@ -270,7 +251,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-MEMORY-FLAG-UNSET:CAPS"></a><h3>GST_MEMORY_FLAG_UNSET()</h3>
-<pre class="programlisting">#define GST_MEMORY_FLAG_UNSET(mem,flag)   (GST_MEMORY_FLAGS (mem) &amp;= ~(flag))
+<pre class="programlisting">#define GST_MEMORY_FLAG_UNSET(mem,flag)   GST_MINI_OBJECT_FLAG_UNSET (mem, flag)
 </pre>
 <p>
 Clear a specific flag on a <em class="parameter"><code>mem</code></em>.
@@ -307,6 +288,22 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-MEMORY-IS-NO-SHARE:CAPS"></a><h3>GST_MEMORY_IS_NO_SHARE()</h3>
+<pre class="programlisting">#define GST_MEMORY_IS_NO_SHARE(mem)        GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_NO_SHARE)
+</pre>
+<p>
+Check if <em class="parameter"><code>mem</code></em> cannot be shared between buffers
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-MEMORY-IS-ZERO-PADDED:CAPS"></a><h3>GST_MEMORY_IS_ZERO_PADDED()</h3>
 <pre class="programlisting">#define GST_MEMORY_IS_ZERO_PADDED(mem)     GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_ZERO_PADDED)
 </pre>
@@ -341,12 +338,11 @@
 <div class="refsect2">
 <a name="GstMemory"></a><h3>struct GstMemory</h3>
 <pre class="programlisting">struct GstMemory {
+  GstMiniObject   mini_object;
+
   GstAllocator   *allocator;
 
-  GstMemoryFlags  flags;
-  gint            refcount;
   GstMemory      *parent;
-  volatile gint   state;
   gsize           maxsize;
   gsize           align;
   gsize           offset;
@@ -361,27 +357,19 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *<em class="structfield"><code><a name="GstMemory.allocator"></a>allocator</code></em>;</span></p></td>
-<td>pointer to the <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstMemory.mini-object"></a>mini_object</code></em>;</span></p></td>
+<td>parent structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">GstAllocator</span> *<em class="structfield"><code><a name="GstMemory.allocator"></a>allocator</code></em>;</span></p></td>
+<td>pointer to the <span class="type">GstAllocator</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> <em class="structfield"><code><a name="GstMemory.flags"></a>flags</code></em>;</span></p></td>
-<td>memory flags</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstMemory.refcount"></a>refcount</code></em>;</span></p></td>
-<td>refcount</td>
-</tr>
-<tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *<em class="structfield"><code><a name="GstMemory.parent"></a>parent</code></em>;</span></p></td>
 <td>parent memory block</td>
 </tr>
 <tr>
-<td><p><span class="term">volatile <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstMemory.state"></a>state</code></em>;</span></p></td>
-<td>private state</td>
-</tr>
-<tr>
 <td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMemory.maxsize"></a>maxsize</code></em>;</span></p></td>
 <td>the maximum size allocated</td>
 </tr>
@@ -404,8 +392,8 @@
 <div class="refsect2">
 <a name="GstMapFlags"></a><h3>enum GstMapFlags</h3>
 <pre class="programlisting">typedef enum {
-  GST_MAP_READ      = (1 &lt;&lt; 0),
-  GST_MAP_WRITE     = (1 &lt;&lt; 1),
+  GST_MAP_READ      = GST_LOCK_FLAG_READ,
+  GST_MAP_WRITE     = GST_LOCK_FLAG_WRITE,
 
   GST_MAP_FLAG_LAST = (1 &lt;&lt; 16)
 } GstMapFlags;
@@ -436,6 +424,15 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-MAP-READWRITE:CAPS"></a><h3>GST_MAP_READWRITE</h3>
+<pre class="programlisting">#define GST_MAP_READWRITE      (GST_MAP_READ | GST_MAP_WRITE)
+</pre>
+<p>
+GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE
+</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GstMapInfo"></a><h3>GstMapInfo</h3>
 <pre class="programlisting">typedef struct {
   GstMemory *memory;
@@ -462,7 +459,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint8</span> *<em class="structfield"><code><a name="GstMapInfo.data"></a>data</code></em>;</span></p></td>
-<td>a pointer to the mapped data</td>
+<td>a pointer to the mapped data. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMapInfo.size"></a>size</code></em>;</span></p></td>
@@ -488,97 +486,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-MAP-READWRITE:CAPS"></a><h3>GST_MAP_READWRITE</h3>
-<pre class="programlisting">#define GST_MAP_READWRITE      (GST_MAP_READ | GST_MAP_WRITE)
-</pre>
-<p>
-Map for readwrite access
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAllocationParams"></a><h3>struct GstAllocationParams</h3>
-<pre class="programlisting">struct GstAllocationParams {
-  GstMemoryFlags flags;
-  gsize          align;
-  gsize          prefix;
-  gsize          padding;
-};
-</pre>
-<p>
-Parameters to control the allocation of memory
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> <em class="structfield"><code><a name="GstAllocationParams.flags"></a>flags</code></em>;</span></p></td>
-<td>flags to control allocation</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstAllocationParams.align"></a>align</code></em>;</span></p></td>
-<td>the desired alignment of the memory</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstAllocationParams.prefix"></a>prefix</code></em>;</span></p></td>
-<td>the disired prefix</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstAllocationParams.padding"></a>padding</code></em>;</span></p></td>
-<td>the desired padding</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAllocatorAllocFunction"></a><h3>GstAllocatorAllocFunction ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (*GstAllocatorAllocFunction)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Allocate a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> from <em class="parameter"><code>allocator</code></em> that can hold at least <em class="parameter"><code>size</code></em>
-bytes (+ padding) and is aligned to (<em class="parameter"><code>align</code></em> + 1) bytes.
-</p>
-<p>
-The offset and size of the memory should be set and the prefix/padding must
-be filled with 0 if <em class="parameter"><code>params</code></em> flags contains <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and
-<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
-</p>
-<p>
-<em class="parameter"><code>user_data</code></em> is the data that was used when creating <em class="parameter"><code>allocator</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>allocator params</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. Free with <a class="link" href="gstreamer-GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_unref()</code></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMemoryMapFunction"></a><h3>GstMemoryMapFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            (*GstMemoryMapFunction)             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
@@ -637,23 +544,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMemoryFreeFunction"></a><h3>GstMemoryFreeFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMemoryFreeFunction)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
-<p>
-Free the memory used by <em class="parameter"><code>mem</code></em>. This function is usually called when the
-refcount of the <em class="parameter"><code>mem</code></em> has reached 0.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMemoryCopyFunction"></a><h3>GstMemoryCopyFunction ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         (*GstMemoryCopyFunction)            (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><span class="type">gssize</span> offset</code></em>,
@@ -758,414 +648,56 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMemoryInfo"></a><h3>struct GstMemoryInfo</h3>
-<pre class="programlisting">struct GstMemoryInfo {
-  const gchar              *mem_type;
-
-  GstAllocatorAllocFunction alloc;
-
-  GstMemoryMapFunction      mem_map;
-  GstMemoryUnmapFunction    mem_unmap;
-  GstMemoryFreeFunction     mem_free;
-
-  GstMemoryCopyFunction     mem_copy;
-  GstMemoryShareFunction    mem_share;
-  GstMemoryIsSpanFunction   mem_is_span;
-};
-</pre>
-<p>
-The <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> is used to register new memory allocators and contain
-the implementations for various memory operations.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstMemoryInfo.mem-type"></a>mem_type</code></em>;</span></p></td>
-<td>the memory type this allocator provides</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstAllocatorAllocFunction" title="GstAllocatorAllocFunction ()"><span class="type">GstAllocatorAllocFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.alloc"></a>alloc</code></em>;</span></p></td>
-<td>the implementation of the GstAllocatorAllocFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryMapFunction" title="GstMemoryMapFunction ()"><span class="type">GstMemoryMapFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-map"></a>mem_map</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryMapFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()"><span class="type">GstMemoryUnmapFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-unmap"></a>mem_unmap</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryUnmapFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryFreeFunction" title="GstMemoryFreeFunction ()"><span class="type">GstMemoryFreeFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-free"></a>mem_free</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryFreeFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()"><span class="type">GstMemoryCopyFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-copy"></a>mem_copy</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryCopyFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryShareFunction" title="GstMemoryShareFunction ()"><span class="type">GstMemoryShareFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-share"></a>mem_share</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryShareFunction</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()"><span class="type">GstMemoryIsSpanFunction</span></a> <em class="structfield"><code><a name="GstMemoryInfo.mem-is-span"></a>mem_is_span</code></em>;</span></p></td>
-<td>the implementation of the GstMemoryIsSpanFunction</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstAllocator"></a><h3>GstAllocator</h3>
-<pre class="programlisting">typedef struct _GstAllocator GstAllocator;</pre>
-<p>
-An opaque type returned from <a class="link" href="gstreamer-GstMemory.html#gst-allocator-new" title="gst_allocator_new ()"><code class="function">gst_allocator_new()</code></a> or <a class="link" href="gstreamer-GstMemory.html#gst-allocator-find" title="gst_allocator_find ()"><code class="function">gst_allocator_find()</code></a>
-that can be used to allocator memory.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-new"></a><h3>gst_allocator_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      gst_allocator_new                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
-<p>
-Create a new memory allocator with <em class="parameter"><code>info</code></em> and <em class="parameter"><code>user_data</code></em>.
-</p>
-<p>
-All functions in <em class="parameter"><code>info</code></em> are mandatory exept the copy and is_span
-functions, which will have a default implementation when left NULL.
-</p>
-<p>
-The <em class="parameter"><code>user_data</code></em> will be passed to all calls of the alloc function. <em class="parameter"><code>notify</code></em>
-will be called with <em class="parameter"><code>user_data</code></em> when the allocator is freed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemoryInfo" title="struct GstMemoryInfo"><span class="type">GstMemoryInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>user_data</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-get-memory-type"></a><h3>gst_allocator_get_memory_type ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_allocator_get_memory_type       (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
-<p>
-Get the memory type allocated by this allocator
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the memory type provided by <em class="parameter"><code>allocator</code></em>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-ref"></a><h3>gst_allocator_ref ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      gst_allocator_ref                   (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
-<p>
-Increases the refcount of <em class="parameter"><code>allocator</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<em class="parameter"><code>allocator</code></em> with increased refcount</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-unref"></a><h3>gst_allocator_unref ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_unref                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
-<p>
-Decreases the refcount of <em class="parameter"><code>allocator</code></em>. When the refcount reaches 0, the notify
-function of <em class="parameter"><code>allocator</code></em> will be called and the allocator will be freed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-ALLOCATOR-SYSMEM:CAPS"></a><h3>GST_ALLOCATOR_SYSMEM</h3>
-<pre class="programlisting">#define GST_ALLOCATOR_SYSMEM   "SystemMemory"
-</pre>
-<p>
-The allocator name for the default system memory allocator
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-find"></a><h3>gst_allocator_find ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *      gst_allocator_find                  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>
-Find a previously registered allocator with <em class="parameter"><code>name</code></em>. When <em class="parameter"><code>name</code></em> is NULL, the
-default allocator will be returned.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the allocator</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> or NULL when the allocator with <em class="parameter"><code>name</code></em> was not
-registered. Use <a class="link" href="gstreamer-GstMemory.html#gst-allocator-unref" title="gst_allocator_unref ()"><code class="function">gst_allocator_unref()</code></a> to release the allocator after usage. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-register"></a><h3>gst_allocator_register ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_register              (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
-<p>
-Registers the memory <em class="parameter"><code>allocator</code></em> with <em class="parameter"><code>name</code></em>. This function takes ownership of
-<em class="parameter"><code>allocator</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
-<td>the name of the allocator</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>
-<a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-set-default"></a><h3>gst_allocator_set_default ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocator_set_default           (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
-<p>
-Set the default allocator. This function takes ownership of <em class="parameter"><code>allocator</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a>. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-allocation-params-init"></a><h3>gst_allocation_params_init ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocation_params_init          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>
-Initialize <em class="parameter"><code>params</code></em> to its default values
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocation-params-copy"></a><h3>gst_allocation_params_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="returnvalue">GstAllocationParams</span></a> * gst_allocation_params_copy        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>
-Create a copy of <em class="parameter"><code>params</code></em>.
-</p>
-<p>
-Free-function: gst_allocation_params_free
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new #<a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>, free with
-<a class="link" href="gstreamer-GstMemory.html#gst-allocation-params-free" title="gst_allocation_params_free ()"><code class="function">gst_allocation_params_free()</code></a>. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-allocation-params-free"></a><h3>gst_allocation_params_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_allocation_params_free          (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>
-Free <em class="parameter"><code>params</code></em>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-allocator-alloc"></a><h3>gst_allocator_alloc ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_allocator_alloc                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>
-Use <em class="parameter"><code>allocator</code></em> to allocate a new memory block with memory that is at least
-<em class="parameter"><code>size</code></em> big.
-</p>
-<p>
-The optional <em class="parameter"><code>params</code></em> can specify the prefix and padding for the memory. If
-NULL is passed, no flags, no extra prefix/padding and a default alignment is
-used.
-</p>
-<p>
-The prefix/padding will be filled with 0 if flags contains
-<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
-</p>
-<p>
-When <em class="parameter"><code>allocator</code></em> is NULL, the default allocator will be used.
-</p>
-<p>
-The alignment in <em class="parameter"><code>params</code></em> is given as a bitmask so that <em class="parameter"><code>align</code></em> + 1 equals
-the amount of bytes to align to. For example, to align to 8 bytes,
-use an alignment of 7.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> to use. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>size of the visible memory area</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>optional parameters. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-memory-new-wrapped"></a><h3>gst_memory_new_wrapped ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_new_wrapped              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+<a name="gst-memory-init"></a><h3>gst_memory_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_memory_init                     (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> maxsize</code></em>,
+                                                         <em class="parameter"><code><span class="type">gsize</span> align</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> offset</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
-Allocate a new memory block that wraps the given <em class="parameter"><code>data</code></em>.
-</p>
-<p>
-The prefix/padding must be filled with 0 if <em class="parameter"><code>flags</code></em> contains
-<a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="gstreamer-GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.
+Initializes a newly allocated <em class="parameter"><code>mem</code></em> with the given parameters. This function
+will call <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-init" title="gst_mini_object_init ()"><code class="function">gst_mini_object_init()</code></a> with the default memory parameters.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 <td><a class="link" href="gstreamer-GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>data to wrap</td>
+<td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
+<td>the <span class="type">GstAllocator</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>the parent of <em class="parameter"><code>mem</code></em>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>maxsize</code></em> :</span></p></td>
-<td>allocated size of <em class="parameter"><code>data</code></em>
-</td>
+<td>the total size of the memory</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>align</code></em> :</span></p></td>
+<td>the alignment of the memory</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>offset in <em class="parameter"><code>data</code></em>
-</td>
+<td>The offset in the memory</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>size of valid data</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user_data</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
-<td>called with <em class="parameter"><code>user_data</code></em> when the memory is freed</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>.</td>
+<td>the size of valid data in the memory</td>
 </tr>
 </tbody>
 </table></div>
@@ -1173,22 +705,22 @@
 <hr>
 <div class="refsect2">
 <a name="gst-memory-ref"></a><h3>gst_memory_ref ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_ref                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_ref                      (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *memory</code></em>);</pre>
 <p>
-Increases the refcount of <em class="parameter"><code>mem</code></em>.
+Increase the refcount of this memory.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
-</td>
+<td><p><span class="term"><em class="parameter"><code>memory</code></em> :</span></p></td>
+<td>The memory to refcount</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<em class="parameter"><code>mem</code></em> with increased refcount</td>
+<em class="parameter"><code>memory</code></em> (for convenience when doing assignments). <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>
@@ -1196,33 +728,15 @@
 <hr>
 <div class="refsect2">
 <a name="gst-memory-unref"></a><h3>gst_memory_unref ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_memory_unref                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_memory_unref                    (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *memory</code></em>);</pre>
 <p>
-Decreases the refcount of <em class="parameter"><code>mem</code></em>. When the refcount reaches 0, the free
-function of <em class="parameter"><code>mem</code></em> will be called.
+Decrease the refcount of an memory, freeing it if the refcount reaches 0.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-memory-is-exclusive"></a><h3>gst_memory_is_exclusive ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_memory_is_exclusive             (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
-<p>
-Check if the current ref to <em class="parameter"><code>mem</code></em> is exclusive, this means that no other
-references exist other than <em class="parameter"><code>mem</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a>
+<td><p><span class="term"><em class="parameter"><code>memory</code></em> :</span></p></td>
+<td>the memory to refcount. <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>
@@ -1295,6 +809,24 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-memory-lock"></a><h3>gst_memory_lock()</h3>
+<pre class="programlisting">#define        gst_memory_lock(m,f)        gst_mini_object_lock (GST_MINI_OBJECT_CAST (m), (f))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-memory-unlock"></a><h3>gst_memory_unlock()</h3>
+<pre class="programlisting">#define        gst_memory_unlock(m,f)      gst_mini_object_unlock (GST_MINI_OBJECT_CAST (m), (f))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-memory-is-writable"></a><h3>gst_memory_is_writable()</h3>
+<pre class="programlisting">#define        gst_memory_is_writable(m)   gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (m))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-memory-make-mapped"></a><h3>gst_memory_make_mapped ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="returnvalue">GstMemory</span></a> *         gst_memory_make_mapped              (<em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
diff --git a/docs/gst/html/gstreamer-GstMessage.html b/docs/gst/html/gstreamer-GstMessage.html
index c4cf15f..0cffd73 100644
--- a/docs/gst/html/gstreamer-GstMessage.html
+++ b/docs/gst/html/gstreamer-GstMessage.html
@@ -168,9 +168,9 @@
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-latency" title="gst_message_new_latency ()">gst_message_new_latency</a>             (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-async-start" title="gst_message_new_async_start ()">gst_message_new_async_start</a>         (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-async-done" title="gst_message_new_async_done ()">gst_message_new_async_done</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> reset_time</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-async-done" title="gst_message_parse_async_done ()">gst_message_parse_async_done</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *reset_time</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-step-start" title="gst_message_new_step_start ()">gst_message_new_step_start</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</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>,
@@ -214,11 +214,15 @@
                                                          <em class="parameter"><code><span class="type">guint64</span> *processed</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *dropped</code></em>);
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-toc" title="gst_message_new_toc ()">gst_message_new_toc</a>                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-toc" title="gst_message_parse_toc ()">gst_message_parse_toc</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);
+<a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-reset-time" title="gst_message_new_reset_time ()">gst_message_new_reset_time</a>          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-reset-time" title="gst_message_parse_reset_time ()">gst_message_parse_reset_time</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>);
 enum                <a class="link" href="gstreamer-GstMessage.html#GstStructureChangeType" title="enum GstStructureChangeType">GstStructureChangeType</a>;
 <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        <a class="link" href="gstreamer-GstMessage.html#gst-message-new-structure-change" title="gst_message_new_structure_change ()">gst_message_new_structure_change</a>    (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstStructureChangeType" title="enum GstStructureChangeType"><span class="type">GstStructureChangeType</span></a> type</code></em>,
@@ -273,13 +277,13 @@
 <p>
 </p>
 <div class="example">
-<a name="idp30136752"></a><p class="title"><b>Example 10. Posting a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a></b></p>
+<a name="idp30377120"></a><p class="title"><b>Example 10. Posting a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a></b></p>
 <div class="example-contents">
   <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"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html#gst-bus-post">gst_bus_post</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-eos">gst_message_new_eos</a></span><span class="gtkdoc opt">());</span></pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/GstBus.html#gst-bus-post">gst_bus_post</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-eos">gst_message_new_eos</a></span><span class="gtkdoc opt">());</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -370,6 +374,8 @@
   GST_MESSAGE_QOS               = (1 &lt;&lt; 24),
   GST_MESSAGE_PROGRESS          = (1 &lt;&lt; 25),
   GST_MESSAGE_TOC               = (1 &lt;&lt; 26),
+  GST_MESSAGE_RESET_TIME        = (1 &lt;&lt; 27),
+  GST_MESSAGE_STREAM_START      = (1 &lt;&lt; 28),
   GST_MESSAGE_ANY               = ~0
 } GstMessageType;
 </pre>
@@ -507,53 +513,61 @@
 <tr>
 <td><p><a name="GST-MESSAGE-LATENCY:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_LATENCY</code></span></p></td>
 <td>Posted by elements when their latency changes. The
-application should recalculate and distribute a new latency. Since: 0.10.12
+application should recalculate and distribute a new latency.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-ASYNC-START:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_ASYNC_START</code></span></p></td>
 <td>Posted by elements when they start an ASYNC
 <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>. This message is not forwarded to the application but is used
-internally. Since: 0.10.13.
+internally.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-ASYNC-DONE:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></span></p></td>
 <td>Posted by elements when they complete an ASYNC
 <a class="link" href="GstElement.html#GstStateChange" title="enum GstStateChange"><span class="type">GstStateChange</span></a>. The application will only receive this message from the toplevel
-pipeline. Since: 0.10.13
+pipeline.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-REQUEST-STATE:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_REQUEST_STATE</code></span></p></td>
 <td>Posted by elements when they want the pipeline to
 change state. This message is a suggestion to the application which can
-decide to perform the state change on (part of) the pipeline. Since: 0.10.23.
+decide to perform the state change on (part of) the pipeline.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-STEP-START:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_STEP_START</code></span></p></td>
-<td>A stepping operation was started. Since: 0.10.24
+<td>A stepping operation was started.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-QOS:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_QOS</code></span></p></td>
 <td>A buffer was dropped or an element changed its processing
-strategy for Quality of Service reasons. Since: 0.10.29
+strategy for Quality of Service reasons.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-PROGRESS:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_PROGRESS</code></span></p></td>
-<td>A progress message. Since: 0.10.33
+<td>A progress message.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-MESSAGE-TOC:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_TOC</code></span></p></td>
 <td>A new table of contents (TOC) was found or previously found TOC
-was updated. Since: 0.10.37
+was updated. Since:
 </td>
 </tr>
 <tr>
+<td><p><a name="GST-MESSAGE-RESET-TIME:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_RESET_TIME</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><a name="GST-MESSAGE-STREAM-START:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_STREAM_START</code></span></p></td>
+<td></td>
+</tr>
+<tr>
 <td><p><a name="GST-MESSAGE-ANY:CAPS"></a><span class="term"><code class="literal">GST_MESSAGE_ANY</code></span></p></td>
 <td>mask for all of the above messages.
 </td>
@@ -594,7 +608,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -664,7 +677,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -854,7 +866,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -885,7 +896,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -914,7 +924,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1070,14 +1079,14 @@
 16
 17</pre></td>
         <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">...</span>
-<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
+<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
   <span class="keyword">case</span> GST_MESSAGE_ERROR<span class="gtkdoc opt">: {</span>
     GError <span class="gtkdoc opt">*</span>err <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
     gchar <span class="gtkdoc opt">*</span>dbg_info <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
     
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-parse-error">gst_message_parse_error</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>err<span class="gtkdoc opt">, &amp;</span>dbg_info<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-error">gst_message_parse_error</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>err<span class="gtkdoc opt">, &amp;</span>dbg_info<span class="gtkdoc opt">);</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;ERROR from element %s: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
-        <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">),</span> err<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">);</span>
+        <span class="function"><a href="../gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">),</span> err<span class="gtkdoc opt">-&gt;</span>message<span class="gtkdoc opt">);</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Debugging info: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">, (</span>dbg_info<span class="gtkdoc opt">)</span> ? dbg_info <span class="gtkdoc opt">:</span> <span class="string">&quot;none&quot;</span><span class="gtkdoc opt">);</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#g-error-free">g_error_free</a></span> <span class="gtkdoc opt">(</span>err<span class="gtkdoc opt">);</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span> <span class="gtkdoc opt">(</span>dbg_info<span class="gtkdoc opt">);</span>
@@ -1224,7 +1233,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1259,7 +1267,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1323,14 +1330,14 @@
 13
 14</pre></td>
         <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">...</span>
-<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
+<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
   <span class="keyword">case</span> GST_MESSAGE_TAG<span class="gtkdoc opt">: {</span>
     GstTagList <span class="gtkdoc opt">*</span>tags <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
     
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-parse-tag">gst_message_parse_tag</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>tags<span class="gtkdoc opt">);</span>
-    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Got tags from element %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">));</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-tag">gst_message_parse_tag</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>tags<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Got tags from element %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">));</span>
     <span class="function">handle_tags</span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#gst-tag-list-unref">gst_tag_list_unref</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-unref">gst_tag_list_unref</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
     <span class="keyword">break</span><span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">}</span>
   <span class="gtkdoc opt">...</span>
@@ -1377,7 +1384,7 @@
 The application must be prepared to receive BUFFERING messages in the
 PREROLLING state and may only set the pipeline to PLAYING after receiving a
 message with <em class="parameter"><code>percent</code></em> set to 100, which can happen after the pipeline
-completed prerolling. 
+completed prerolling.
 </p>
 <p>
 MT safe.
@@ -1401,7 +1408,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1429,7 +1435,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1467,7 +1472,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1510,7 +1514,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1585,15 +1588,15 @@
 14
 15</pre></td>
         <td class="listing_code"><pre class="programlisting"><span class="gtkdoc opt">...</span>
-<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
+<span class="keyword">switch</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">)) {</span>
   <span class="keyword">case</span> GST_MESSAGE_STATE_CHANGED<span class="gtkdoc opt">: {</span>
     GstState old_state<span class="gtkdoc opt">,</span> new_state<span class="gtkdoc opt">;</span>
     
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-parse-state-changed">gst_message_parse_state_changed</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>old_state<span class="gtkdoc opt">, &amp;</span>new_state<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-state-changed">gst_message_parse_state_changed</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>old_state<span class="gtkdoc opt">, &amp;</span>new_state<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
     <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Element %s changed state from %s to %s.</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
-        <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">),</span>
-        <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-state-get-name">gst_element_state_get_name</a></span> <span class="gtkdoc opt">(</span>old_state<span class="gtkdoc opt">),</span>
-        <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-state-get-name">gst_element_state_get_name</a></span> <span class="gtkdoc opt">(</span>new_state<span class="gtkdoc opt">));</span>
+        <span class="function"><a href="../gstreamer-1.0/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">),</span>
+        <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-state-get-name">gst_element_state_get_name</a></span> <span class="gtkdoc opt">(</span>old_state<span class="gtkdoc opt">),</span>
+        <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-state-get-name">gst_element_state_get_name</a></span> <span class="gtkdoc opt">(</span>new_state<span class="gtkdoc opt">));</span>
     <span class="keyword">break</span><span class="gtkdoc opt">;</span>
   <span class="gtkdoc opt">}</span>
   <span class="gtkdoc opt">...</span>
@@ -1723,7 +1726,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1786,7 +1788,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2325,7 +2326,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2355,11 +2355,13 @@
 <div class="refsect2">
 <a name="gst-message-new-async-done"></a><h3>gst_message_new_async_done ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_async_done          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> reset_time</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>);</pre>
 <p>
 The message is posted when elements completed an ASYNC state change.
-<em class="parameter"><code>reset_time</code></em> is set to TRUE when the element requests a new running_time
-before going to PLAYING.
+<em class="parameter"><code>running_time</code></em> contains the time of the desired running_time when this
+elements goes to PLAYING. A value of <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> for <em class="parameter"><code>running_time</code></em>
+means that the element has no clock interaction and thus doesn't care about
+the running_time of the pipeline.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2370,8 +2372,8 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>reset_time</code></em> :</span></p></td>
-<td>if the running_time should be reset</td>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>the desired running_time</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -2386,9 +2388,9 @@
 <div class="refsect2">
 <a name="gst-message-parse-async-done"></a><h3>gst_message_parse_async_done ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_async_done        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *reset_time</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>);</pre>
 <p>
-Extract the reset_time from the async_done message.
+Extract the running_time from the async_done message.
 </p>
 <p>
 MT safe.
@@ -2401,8 +2403,8 @@
 <td>A valid <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> of type GST_MESSAGE_ASYNC_DONE.</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>reset_time</code></em> :</span></p></td>
-<td>Result location for the reset_time or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>Result location for the running_time or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -2472,7 +2474,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2529,7 +2530,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2592,7 +2592,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2630,7 +2629,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2675,7 +2673,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2735,7 +2732,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2778,7 +2774,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2827,13 +2822,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-message-new-toc"></a><h3>gst_message_new_toc ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_toc                 (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> updated</code></em>);</pre>
 <p>
 Create a new TOC message. The message is posted by elements
@@ -2849,7 +2843,8 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure for the message.</td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure for the message. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>updated</code></em> :</span></p></td>
@@ -2858,22 +2853,22 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new TOC message.
-MT safe.</td>
+MT safe. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-message-parse-toc"></a><h3>gst_message_parse_toc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_toc               (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *updated</code></em>);</pre>
 <p>
 Extract thef TOC from the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The TOC returned in the
 output argument is a copy; the caller must free it with
-<a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a> when done.
+<a class="link" href="gstreamer-GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a> when done.
 </p>
 <p>
 MT safe.
@@ -2887,7 +2882,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>return location for the TOC. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+<td>return location for the TOC. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2897,7 +2892,62 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-message-new-reset-time"></a><h3>gst_message_new_reset_time ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> *        gst_message_new_reset_time          (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>);</pre>
+<p>
+This message is posted when the pipeline running-time should be reset to
+<em class="parameter"><code>running_time</code></em>, like after a flushing seek.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>The object originating the message. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>the requested running-time</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new reset_time message.
+MT safe. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-message-parse-reset-time"></a><h3>gst_message_parse_reset_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_message_parse_reset_time        (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>);</pre>
+<p>
+Extract the running-time from the RESET_TIME message.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>message</code></em> :</span></p></td>
+<td>A valid <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> of type GST_MESSAGE_RESET_TIME.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>Result location for the running_time or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2925,7 +2975,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2971,7 +3020,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3012,7 +3060,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3044,7 +3091,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3071,7 +3117,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3131,7 +3176,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3167,7 +3211,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3202,7 +3245,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3227,7 +3269,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3252,7 +3293,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3300,7 +3340,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3344,7 +3383,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3380,7 +3418,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/gstreamer-GstMeta.html b/docs/gst/html/gstreamer-GstMeta.html
index a12f9c6..996ae4e 100644
--- a/docs/gst/html/gstreamer-GstMeta.html
+++ b/docs/gst/html/gstreamer-GstMeta.html
@@ -561,17 +561,17 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>init_func</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a>
+<td>(scope async) a <a class="link" href="gstreamer-GstMeta.html#GstMetaInitFunction" title="GstMetaInitFunction ()"><span class="type">GstMetaInitFunction</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>free_func</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a>
+<td>(scope async) a <a class="link" href="gstreamer-GstMeta.html#GstMetaFreeFunction" title="GstMetaFreeFunction ()"><span class="type">GstMetaFreeFunction</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>transform_func</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a>
+<td>(scope async) a <a class="link" href="gstreamer-GstMeta.html#GstMetaTransformFunction" title="GstMetaTransformFunction ()"><span class="type">GstMetaTransformFunction</span></a>
 </td>
 </tr>
 <tr>
diff --git a/docs/gst/html/gstreamer-GstMiniObject.html b/docs/gst/html/gstreamer-GstMiniObject.html
index 3903994..44374a3 100644
--- a/docs/gst/html/gstreamer-GstMiniObject.html
+++ b/docs/gst/html/gstreamer-GstMiniObject.html
@@ -41,13 +41,13 @@
 #include &lt;gst/gst.h&gt;
 
 struct              <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject">GstMiniObject</a>;
-enum                <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectFlags" title="enum GstMiniObjectFlags">GstMiniObjectFlags</a>;
 <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     (<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction" title="GstMiniObjectCopyFunction ()">*GstMiniObjectCopyFunction</a>)        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction" title="GstMiniObjectDisposeFunction ()">*GstMiniObjectDisposeFunction</a>)     (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction" title="GstMiniObjectFreeFunction ()">*GstMiniObjectFreeFunction</a>)        (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()">*GstMiniObjectWeakNotify</a>)          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *where_the_mini_object_was</code></em>);
+<span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()">*GstMiniObjectNotify</a>)              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-TYPE:CAPS" title="GST_MINI_OBJECT_TYPE()">GST_MINI_OBJECT_TYPE</a>                (obj)
+enum                <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectFlags" title="enum GstMiniObjectFlags">GstMiniObjectFlags</a>;
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAGS:CAPS" title="GST_MINI_OBJECT_FLAGS()">GST_MINI_OBJECT_FLAGS</a>               (obj)
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-IS-SET:CAPS" title="GST_MINI_OBJECT_FLAG_IS_SET()">GST_MINI_OBJECT_FLAG_IS_SET</a>         (obj,
                                                          flag)
@@ -55,30 +55,47 @@
                                                          flag)
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-UNSET:CAPS" title="GST_MINI_OBJECT_FLAG_UNSET()">GST_MINI_OBJECT_FLAG_UNSET</a>          (obj,
                                                          flag)
+#define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-IS-LOCKABLE:CAPS" title="GST_MINI_OBJECT_IS_LOCKABLE()">GST_MINI_OBJECT_IS_LOCKABLE</a>         (obj)
+enum                <a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags">GstLockFlags</a>;
+#define             <a class="link" href="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-READWRITE:CAPS" title="GST_LOCK_FLAG_READWRITE">GST_LOCK_FLAG_READWRITE</a>
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT:CAPS" title="GST_MINI_OBJECT_REFCOUNT()">GST_MINI_OBJECT_REFCOUNT</a>            (obj)
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS" title="GST_MINI_OBJECT_REFCOUNT_VALUE()">GST_MINI_OBJECT_REFCOUNT_VALUE</a>      (obj)
-#define             <a class="link" href="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-SIZE:CAPS" title="GST_MINI_OBJECT_SIZE()">GST_MINI_OBJECT_SIZE</a>                (obj)
 #define             <a class="link" href="gstreamer-GstMiniObject.html#GST-DEFINE-MINI-OBJECT-TYPE:CAPS" title="GST_DEFINE_MINI_OBJECT_TYPE()">GST_DEFINE_MINI_OBJECT_TYPE</a>         (TypeName,
                                                          type_name)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-init" title="gst_mini_object_init ()">gst_mini_object_init</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
-<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-copy" title="gst_mini_object_copy ()">gst_mini_object_copy</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-is-writable" title="gst_mini_object_is_writable ()">gst_mini_object_is_writable</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
-<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-make-writable" title="gst_mini_object_make_writable ()">gst_mini_object_make_writable</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction" title="GstMiniObjectCopyFunction ()"><span class="type">GstMiniObjectCopyFunction</span></a> copy_func</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction" title="GstMiniObjectDisposeFunction ()"><span class="type">GstMiniObjectDisposeFunction</span></a> dispose_func</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction" title="GstMiniObjectFreeFunction ()"><span class="type">GstMiniObjectFreeFunction</span></a> free_func</code></em>);
 <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-ref" title="gst_mini_object_ref ()">gst_mini_object_ref</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unref" title="gst_mini_object_unref ()">gst_mini_object_unref</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-weak-ref" title="gst_mini_object_weak_ref ()">gst_mini_object_weak_ref</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()"><span class="type">GstMiniObjectWeakNotify</span></a> notify</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()"><span class="type">GstMiniObjectNotify</span></a> notify</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-weak-unref" title="gst_mini_object_weak_unref ()">gst_mini_object_weak_unref</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()"><span class="type">GstMiniObjectWeakNotify</span></a> notify</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()"><span class="type">GstMiniObjectNotify</span></a> notify</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-lock" title="gst_mini_object_lock ()">gst_mini_object_lock</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags"><span class="type">GstLockFlags</span></a> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unlock" title="gst_mini_object_unlock ()">gst_mini_object_unlock</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags"><span class="type">GstLockFlags</span></a> flags</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-is-writable" title="gst_mini_object_is_writable ()">gst_mini_object_is_writable</a>         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
+<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-make-writable" title="gst_mini_object_make_writable ()">gst_mini_object_make_writable</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
+<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-copy" title="gst_mini_object_copy ()">gst_mini_object_copy</a>                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()">gst_mini_object_set_qdata</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-get-qdata" title="gst_mini_object_get_qdata ()">gst_mini_object_get_qdata</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-steal-qdata" title="gst_mini_object_steal_qdata ()">gst_mini_object_steal_qdata</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-replace" title="gst_mini_object_replace ()">gst_mini_object_replace</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *newdata</code></em>);
-<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-steal" title="gst_mini_object_steal ()">gst_mini_object_steal</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-take" title="gst_mini_object_take ()">gst_mini_object_take</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *newdata</code></em>);
+<a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-steal" title="gst_mini_object_steal ()">gst_mini_object_steal</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -107,7 +124,17 @@
 object, which might be a new copy when the refcount was not 1.
 </p>
 <p>
-Last reviewed on 2012-03-28 (0.11.3)
+Opaque data can be associated with a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> with
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()"><code class="function">gst_mini_object_set_qdata()</code></a> and <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-get-qdata" title="gst_mini_object_get_qdata ()"><code class="function">gst_mini_object_get_qdata()</code></a>. The data is
+meant to be specific to the particular object and is not automatically copied
+with <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-copy" title="gst_mini_object_copy ()"><code class="function">gst_mini_object_copy()</code></a> or similar methods.
+</p>
+<p>
+A weak reference can be added and remove with <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-weak-ref" title="gst_mini_object_weak_ref ()"><code class="function">gst_mini_object_weak_ref()</code></a>
+and <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-weak-unref" title="gst_mini_object_weak_unref ()"><code class="function">gst_mini_object_weak_unref()</code></a> respectively.
+</p>
+<p>
+Last reviewed on 2012-06-15 (0.11.93)
 </p>
 </div>
 <div class="refsect1">
@@ -118,8 +145,8 @@
   GType   type;
 
   gint    refcount;
+  gint    lockstate;
   guint   flags;
-  gsize   size;
 
   GstMiniObjectCopyFunction copy;
   GstMiniObjectDisposeFunction dispose;
@@ -145,12 +172,12 @@
 <td>atomic refcount</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstMiniObject.flags"></a>flags</code></em>;</span></p></td>
-<td>extra flags.</td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstMiniObject.lockstate"></a>lockstate</code></em>;</span></p></td>
+<td>atomic state of the locks</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="type">gsize</span> <em class="structfield"><code><a name="GstMiniObject.size"></a>size</code></em>;</span></p></td>
-<td>the size of the structure</td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstMiniObject.flags"></a>flags</code></em>;</span></p></td>
+<td>extra flags.</td>
 </tr>
 <tr>
 <td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction" title="GstMiniObjectCopyFunction ()"><span class="type">GstMiniObjectCopyFunction</span></a> <em class="structfield"><code><a name="GstMiniObject.copy"></a>copy</code></em>;</span></p></td>
@@ -169,26 +196,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMiniObjectFlags"></a><h3>enum GstMiniObjectFlags</h3>
-<pre class="programlisting">typedef enum {
-  /* padding */
-  GST_MINI_OBJECT_FLAG_LAST = (1&lt;&lt;4)
-} GstMiniObjectFlags;
-</pre>
-<p>
-Flags for the mini object
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><a name="GST-MINI-OBJECT-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_MINI_OBJECT_FLAG_LAST</code></span></p></td>
-<td>first flag that can be used by subclasses.
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GstMiniObjectCopyFunction"></a><h3>GstMiniObjectCopyFunction ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     (*GstMiniObjectCopyFunction)        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);</pre>
 <p>
@@ -252,30 +259,26 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstMiniObjectWeakNotify"></a><h3>GstMiniObjectWeakNotify ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMiniObjectWeakNotify)          (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *where_the_mini_object_was</code></em>);</pre>
+<a name="GstMiniObjectNotify"></a><h3>GstMiniObjectNotify ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*GstMiniObjectNotify)              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);</pre>
 <p>
-A <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()"><span class="type">GstMiniObjectWeakNotify</span></a> function can be added to a mini object as a
-callback that gets triggered when the mini object is finalized. Since the
-mini object is already being finalized when the <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()"><span class="type">GstMiniObjectWeakNotify</span></a> is
-called, there's not much you could do with the object, apart from e.g. using
-its adress as hash-index or the like.
+A <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()"><span class="type">GstMiniObjectNotify</span></a> function can be added to a mini object as a
+callback that gets triggered with <code class="function">gst_mini_object_notify()</code>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>data that was provided when the weak reference was established</td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>data that was provided when the notify was added</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>where_the_mini_object_was</code></em> :</span></p></td>
-<td>the mini object being finalized</td>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>the mini object</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -295,6 +298,42 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GstMiniObjectFlags"></a><h3>enum GstMiniObjectFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_MINI_OBJECT_FLAG_LOCKABLE      = (1 &lt;&lt; 0),
+  GST_MINI_OBJECT_FLAG_LOCK_READONLY = (1 &lt;&lt; 1),
+  /* padding */
+  GST_MINI_OBJECT_FLAG_LAST          = (1 &lt;&lt; 4)
+} GstMiniObjectFlags;
+</pre>
+<p>
+Flags for the mini object
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-MINI-OBJECT-FLAG-LOCKABLE:CAPS"></a><span class="term"><code class="literal">GST_MINI_OBJECT_FLAG_LOCKABLE</code></span></p></td>
+<td>the object can be locked and unlocked with
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-lock" title="gst_mini_object_lock ()"><code class="function">gst_mini_object_lock()</code></a> and <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unlock" title="gst_mini_object_unlock ()"><code class="function">gst_mini_object_unlock()</code></a>.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MINI-OBJECT-FLAG-LOCK-READONLY:CAPS"></a><span class="term"><code class="literal">GST_MINI_OBJECT_FLAG_LOCK_READONLY</code></span></p></td>
+<td>the object is permanently locked in
+READONLY mode. Only read locks can be performed on the object.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MINI-OBJECT-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_MINI_OBJECT_FLAG_LAST</code></span></p></td>
+<td>first flag that can be used by subclasses.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-MINI-OBJECT-FLAGS:CAPS"></a><h3>GST_MINI_OBJECT_FLAGS()</h3>
 <pre class="programlisting">#define GST_MINI_OBJECT_FLAGS(obj)  (GST_MINI_OBJECT_CAST(obj)-&gt;flags)
 </pre>
@@ -377,6 +416,73 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="GST-MINI-OBJECT-IS-LOCKABLE:CAPS"></a><h3>GST_MINI_OBJECT_IS_LOCKABLE()</h3>
+<pre class="programlisting">#define GST_MINI_OBJECT_IS_LOCKABLE(obj)  GST_MINI_OBJECT_FLAG_IS_SET(obj, GST_MINI_OBJECT_FLAG_LOCKABLE)
+</pre>
+<p>
+Check if <em class="parameter"><code>obj</code></em> is lockable. A lockable object can be locked and unlocked with
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-lock" title="gst_mini_object_lock ()"><code class="function">gst_mini_object_lock()</code></a> and <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-unlock" title="gst_mini_object_unlock ()"><code class="function">gst_mini_object_unlock()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstLockFlags"></a><h3>enum GstLockFlags</h3>
+<pre class="programlisting">typedef enum {
+  GST_LOCK_FLAG_READ      = (1 &lt;&lt; 0),
+  GST_LOCK_FLAG_WRITE     = (1 &lt;&lt; 1),
+  GST_LOCK_FLAG_EXCLUSIVE = (1 &lt;&lt; 2),
+
+  GST_LOCK_FLAG_LAST      = (1 &lt;&lt; 8)
+} GstLockFlags;
+</pre>
+<p>
+Flags used when locking miniobjects
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-LOCK-FLAG-READ:CAPS"></a><span class="term"><code class="literal">GST_LOCK_FLAG_READ</code></span></p></td>
+<td>lock for read access
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-LOCK-FLAG-WRITE:CAPS"></a><span class="term"><code class="literal">GST_LOCK_FLAG_WRITE</code></span></p></td>
+<td>lock for write access
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-LOCK-FLAG-EXCLUSIVE:CAPS"></a><span class="term"><code class="literal">GST_LOCK_FLAG_EXCLUSIVE</code></span></p></td>
+<td>lock for exclusive access
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-LOCK-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_LOCK_FLAG_LAST</code></span></p></td>
+<td>first flag that can be used for custom purposes
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-LOCK-FLAG-READWRITE:CAPS"></a><h3>GST_LOCK_FLAG_READWRITE</h3>
+<pre class="programlisting">#define GST_LOCK_FLAG_READWRITE  (GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE)
+</pre>
+<p>
+GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE
+</p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="GST-MINI-OBJECT-REFCOUNT:CAPS"></a><h3>GST_MINI_OBJECT_REFCOUNT()</h3>
 <pre class="programlisting">#define GST_MINI_OBJECT_REFCOUNT(obj)           ((GST_MINI_OBJECT_CAST(obj))-&gt;refcount)
 </pre>
@@ -411,23 +517,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GST-MINI-OBJECT-SIZE:CAPS"></a><h3>GST_MINI_OBJECT_SIZE()</h3>
-<pre class="programlisting">#define GST_MINI_OBJECT_SIZE(obj)              ((GST_MINI_OBJECT_CAST(obj))-&gt;size)
-</pre>
-<p>
-Get the allocated size of <em class="parameter"><code>obj</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="GST-DEFINE-MINI-OBJECT-TYPE:CAPS"></a><h3>GST_DEFINE_MINI_OBJECT_TYPE()</h3>
 <pre class="programlisting">#define             GST_DEFINE_MINI_OBJECT_TYPE(TypeName,type_name)</pre>
 <p>
@@ -451,13 +540,14 @@
 <div class="refsect2">
 <a name="gst-mini-object-init"></a><h3>gst_mini_object_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_mini_object_init                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction" title="GstMiniObjectCopyFunction ()"><span class="type">GstMiniObjectCopyFunction</span></a> copy_func</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction" title="GstMiniObjectDisposeFunction ()"><span class="type">GstMiniObjectDisposeFunction</span></a> dispose_func</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction" title="GstMiniObjectFreeFunction ()"><span class="type">GstMiniObjectFreeFunction</span></a> free_func</code></em>);</pre>
 <p>
-Initializes a mini-object with the desired type and size.
-</p>
-<p>
-MT safe
+Initializes a mini-object with the desired type and copy/dispose/free
+functions.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -472,93 +562,16 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of the mini-object to create</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
-<td>the size of the data</td>
+<td><p><span class="term"><em class="parameter"><code>copy_func</code></em> :</span></p></td>
+<td>the copy function, or NULL</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new mini-object. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-mini-object-copy"></a><h3>gst_mini_object_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     gst_mini_object_copy                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
-<p>
-Creates a copy of the mini-object.
-</p>
-<p>
-MT safe
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
-<td>the mini-object to copy</td>
+<td><p><span class="term"><em class="parameter"><code>dispose_func</code></em> :</span></p></td>
+<td>the dispose function, or NULL</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new mini-object. <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>
-<hr>
-<div class="refsect2">
-<a name="gst-mini-object-is-writable"></a><h3>gst_mini_object_is_writable ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_mini_object_is_writable         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
-<p>
-Checks if a mini-object is writable.  A mini-object is writable
-if the reference count is one. Modification of a mini-object should
-only be done after verifying that it is writable.
-</p>
-<p>
-MT safe
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
-<td>the mini-object to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the object is writable.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-mini-object-make-writable"></a><h3>gst_mini_object_make_writable ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     gst_mini_object_make_writable       (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
-<p>
-Checks if a mini-object is writable.  If not, a writable copy is made and
-returned.  This gives away the reference to the original mini object,
-and returns a reference to the new object.
-</p>
-<p>
-MT safe
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
-<td>the mini-object to make writable. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a mini-object (possibly the same pointer) that
-is writable. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td><p><span class="term"><em class="parameter"><code>free_func</code></em> :</span></p></td>
+<td>the free function or NULL</td>
 </tr>
 </tbody>
 </table></div>
@@ -613,7 +626,7 @@
 <div class="refsect2">
 <a name="gst-mini-object-weak-ref"></a><h3>gst_mini_object_weak_ref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_mini_object_weak_ref            (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()"><span class="type">GstMiniObjectWeakNotify</span></a> notify</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()"><span class="type">GstMiniObjectNotify</span></a> notify</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
 <p>
 Adds a weak reference callback to a mini object. Weak references are
@@ -641,16 +654,15 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mini-object-weak-unref"></a><h3>gst_mini_object_weak_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_mini_object_weak_unref          (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" title="GstMiniObjectWeakNotify ()"><span class="type">GstMiniObjectWeakNotify</span></a> notify</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObjectNotify" title="GstMiniObjectNotify ()"><span class="type">GstMiniObjectNotify</span></a> notify</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
 <p>
-Removes a weak reference callback to a mini object.
+Removes a weak reference callback from a mini object.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -670,7 +682,244 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.35</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-lock"></a><h3>gst_mini_object_lock ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_mini_object_lock                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags"><span class="type">GstLockFlags</span></a> flags</code></em>);</pre>
+<p>
+Lock the mini-object with the specified access mode in <em class="parameter"><code>flags</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the mini-object to lock</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td><a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags"><span class="type">GstLockFlags</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>object</code></em> could be locked.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-unlock"></a><h3>gst_mini_object_unlock ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_mini_object_unlock              (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags"><span class="type">GstLockFlags</span></a> flags</code></em>);</pre>
+<p>
+Unlock the mini-object with the specified access mode in <em class="parameter"><code>flags</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>the mini-object to unlock</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td><a class="link" href="gstreamer-GstMiniObject.html#GstLockFlags" title="enum GstLockFlags"><span class="type">GstLockFlags</span></a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-is-writable"></a><h3>gst_mini_object_is_writable ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_mini_object_is_writable         (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
+<p>
+If <em class="parameter"><code>mini_object</code></em> has the LOCKABLE flag set, check if the current EXCLUSIVE
+lock on <em class="parameter"><code>object</code></em> is the only one, this means that changes to the object will
+not be visible to any other object.
+</p>
+<p>
+If the LOCKABLE flag is not set, check if the refcount of <em class="parameter"><code>mini_object</code></em> is
+exactly 1, meaning that no other reference exists to the object and that the
+object is therefore writable.
+</p>
+<p>
+Modification of a mini-object should only be done after verifying that it
+is writable.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
+<td>the mini-object to check</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the object is writable.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-make-writable"></a><h3>gst_mini_object_make_writable ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     gst_mini_object_make_writable       (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
+<p>
+Checks if a mini-object is writable.  If not, a writable copy is made and
+returned.  This gives away the reference to the original mini object,
+and returns a reference to the new object.
+</p>
+<p>
+MT safe
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
+<td>the mini-object to make writable. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a mini-object (possibly the same pointer) that
+is writable. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-copy"></a><h3>gst_mini_object_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     gst_mini_object_copy                (<em class="parameter"><code>const <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *mini_object</code></em>);</pre>
+<p>
+Creates a copy of the mini-object.
+</p>
+<p>
+MT safe
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mini_object</code></em> :</span></p></td>
+<td>the mini-object to copy</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new mini-object. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-set-qdata"></a><h3>gst_mini_object_set_qdata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_mini_object_set_qdata           (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
+<p>
+This sets an opaque, named pointer on a miniobject.
+The name is specified through a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> (retrived e.g. via
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#g-quark-from-static-string"><code class="function">g_quark_from_static_string()</code></a>), and the pointer
+can be gotten back from the <em class="parameter"><code>object</code></em> with <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-get-qdata" title="gst_mini_object_get_qdata ()"><code class="function">gst_mini_object_get_qdata()</code></a>
+until the <em class="parameter"><code>object</code></em> is disposed.
+Setting a previously set user data pointer, overrides (frees)
+the old pointer set, using <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> as pointer essentially
+removes the data stored.
+</p>
+<p>
+<em class="parameter"><code>destroy</code></em> may be specified which is called with <em class="parameter"><code>data</code></em> as argument
+when the <em class="parameter"><code>object</code></em> is disposed, or the data is being overwritten by
+a call to <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()"><code class="function">gst_mini_object_set_qdata()</code></a> with the same <em class="parameter"><code>quark</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>quark</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>, naming the user data pointer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>An opaque user data pointer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>destroy</code></em> :</span></p></td>
+<td>Function to invoke with <em class="parameter"><code>data</code></em> as argument, when <em class="parameter"><code>data</code></em>
+needs to be freed</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-get-qdata"></a><h3>gst_mini_object_get_qdata ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gst_mini_object_get_qdata           (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);</pre>
+<p>
+This function gets back user data pointers stored via
+<a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()"><code class="function">gst_mini_object_set_qdata()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>The GstMiniObject to get a stored user data pointer from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>quark</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>, naming the user data pointer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The user data pointer set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-mini-object-steal-qdata"></a><h3>gst_mini_object_steal_qdata ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            gst_mini_object_steal_qdata         (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *object</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);</pre>
+<p>
+This function gets back user data pointers stored via <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata" title="gst_mini_object_set_qdata ()"><code class="function">gst_mini_object_set_qdata()</code></a>
+and removes the data from <em class="parameter"><code>object</code></em> without invoking its <code class="function">destroy()</code> function (if
+any was set).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>The GstMiniObject to get a stored user data pointer from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>quark</code></em> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a>, naming the user data pointer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The user data pointer set, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <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>
 <hr>
 <div class="refsect2">
@@ -708,6 +957,41 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-mini-object-take"></a><h3>gst_mini_object_take ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_mini_object_take                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *newdata</code></em>);</pre>
+<p>
+Modifies a pointer to point to a new mini-object. The modification
+is done atomically. This version is similar to <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-replace" title="gst_mini_object_replace ()"><code class="function">gst_mini_object_replace()</code></a>
+except that it does not increase the refcount of <em class="parameter"><code>newdata</code></em> and thus
+takes ownership of <em class="parameter"><code>newdata</code></em>.
+</p>
+<p>
+Either <em class="parameter"><code>newdata</code></em> and the value pointed to by <em class="parameter"><code>olddata</code></em> may be NULL.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>olddata</code></em> :</span></p></td>
+<td>pointer to a pointer to a mini-object to
+be replaced. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>newdata</code></em> :</span></p></td>
+<td>pointer to new mini-object</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>newdata</code></em> was different from <em class="parameter"><code>olddata</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-mini-object-steal"></a><h3>gst_mini_object_steal ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="returnvalue">GstMiniObject</span></a> *     gst_mini_object_steal               (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>);</pre>
 <p>
@@ -731,41 +1015,6 @@
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-mini-object-take"></a><h3>gst_mini_object_take ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_mini_object_take                (<em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> **olddata</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> *newdata</code></em>);</pre>
-<p>
-Modifies a pointer to point to a new mini-object. The modification
-is done atomically. This version is similar to <a class="link" href="gstreamer-GstMiniObject.html#gst-mini-object-replace" title="gst_mini_object_replace ()"><code class="function">gst_mini_object_replace()</code></a>
-except that it does not increase the refcount of <em class="parameter"><code>newdata</code></em> and thus
-takes ownership of <em class="parameter"><code>newdata</code></em>.
-</p>
-<p>
-Either <em class="parameter"><code>newdata</code></em> and the value pointed to by <em class="parameter"><code>olddata</code></em> may be NULL.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>olddata</code></em> :</span></p></td>
-<td>pointer to a pointer to a mini-object to
-be replaced. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>newdata</code></em> :</span></p></td>
-<td>pointer to new mini-object</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if <em class="parameter"><code>newdata</code></em> was different from <em class="parameter"><code>olddata</code></em>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/gstreamer-GstParamSpec.html b/docs/gst/html/gstreamer-GstParamSpec.html
index 3716355..f160059 100644
--- a/docs/gst/html/gstreamer-GstParamSpec.html
+++ b/docs/gst/html/gstreamer-GstParamSpec.html
@@ -99,7 +99,6 @@
 they can be changed when the element is in the PAUSED or lower state.
 This flag implies GST_PARAM_MUTABLE_READY.
 </p>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -111,7 +110,6 @@
 they can be changed when the element is in the PLAYING or lower state.
 This flag implies GST_PARAM_MUTABLE_PAUSED.
 </p>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -122,7 +120,6 @@
 Use this flag on GObject properties of GstElements to indicate that
 they can be changed when the element is in the READY or lower state.
 </p>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -242,7 +239,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.14</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstParse.html b/docs/gst/html/gstreamer-GstParse.html
index 15b4a03..a073684 100644
--- a/docs/gst/html/gstreamer-GstParse.html
+++ b/docs/gst/html/gstreamer-GstParse.html
@@ -173,7 +173,6 @@
 <p>
 Opaque structure.
 </p>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -203,7 +202,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -281,7 +279,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -359,7 +356,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -396,12 +392,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly-created bin, or NULL if an error occurred. <span class="annotation">[transfer floating]</span>
+<td>a newly-created bin,
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error occurred. <span class="annotation">[transfer floating][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> Gst.Bin]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.3</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -451,12 +447,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly-created bin, or NULL if an error occurred. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a newly-created bin, or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error occurred. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> Gst.Bin]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -478,7 +474,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -495,7 +490,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -524,7 +518,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstPoll.html b/docs/gst/html/gstreamer-GstPoll.html
index 1201175..d83e95b 100644
--- a/docs/gst/html/gstreamer-GstPoll.html
+++ b/docs/gst/html/gstreamer-GstPoll.html
@@ -150,7 +150,6 @@
 be assigned to a variable. In that case you have to use
 <a class="link" href="gstreamer-GstPoll.html#gst-poll-fd-init" title="gst_poll_fd_init ()"><code class="function">gst_poll_fd_init()</code></a>.
 </p>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -178,7 +177,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -206,7 +204,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -234,7 +231,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -268,7 +264,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -302,7 +297,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -330,7 +324,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -358,7 +351,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -389,7 +381,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -407,7 +398,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -424,7 +414,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -453,7 +442,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -479,7 +467,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -505,7 +492,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.32</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -533,7 +519,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -553,7 +538,6 @@
 <td>a <a class="link" href="gstreamer-GstPoll.html#GstPoll" title="GstPoll"><span class="type">GstPoll</span></a>.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -583,7 +567,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -610,7 +593,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -650,7 +632,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -676,7 +657,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -708,7 +688,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstQuery.html b/docs/gst/html/gstreamer-GstQuery.html
index 0e8a04a..d733740 100644
--- a/docs/gst/html/gstreamer-GstQuery.html
+++ b/docs/gst/html/gstreamer-GstQuery.html
@@ -143,9 +143,6 @@
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-caps-result" title="gst_query_parse_caps_result ()">gst_query_parse_caps_result</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-intersect-caps-result" title="gst_query_intersect_caps_result ()">gst_query_intersect_caps_result</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a> mode</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-accept-caps" title="gst_query_new_accept_caps ()">gst_query_new_accept_caps</a>           (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-accept-caps" title="gst_query_parse_accept_caps ()">gst_query_parse_accept_caps</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> **caps</code></em>);
@@ -218,28 +215,31 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> min_buffers</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max_buffers</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-param" title="gst_query_add_allocation_param ()">gst_query_add_allocation_param</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">GstAllocationParams</span> *params</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-params" title="gst_query_get_n_allocation_params ()">gst_query_get_n_allocation_params</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-param" title="gst_query_parse_nth_allocation_param ()">gst_query_parse_nth_allocation_param</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> **allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstAllocationParams</span> *params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-nth-allocation-param" title="gst_query_set_nth_allocation_param ()">gst_query_set_nth_allocation_param</a>  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">GstAllocationParams</span> *params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-add-allocation-meta" title="gst_query_add_allocation_meta ()">gst_query_add_allocation_meta</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *params</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-get-n-allocation-metas" title="gst_query_get_n_allocation_metas ()">gst_query_get_n_allocation_metas</a>    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta" title="gst_query_parse_nth_allocation_meta ()">gst_query_parse_nth_allocation_meta</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> **params</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta" title="gst_query_remove_nth_allocation_meta ()">gst_query_remove_nth_allocation_meta</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-has-allocation-meta" title="gst_query_has_allocation_meta ()">gst_query_has_allocation_meta</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-find-allocation-meta" title="gst_query_find_allocation_meta ()">gst_query_find_allocation_meta</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *index</code></em>);
 enum                <a class="link" href="gstreamer-GstQuery.html#GstSchedulingFlags" title="enum GstSchedulingFlags">GstSchedulingFlags</a>;
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-scheduling" title="gst_query_new_scheduling ()">gst_query_new_scheduling</a>            (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-scheduling" title="gst_query_parse_scheduling ()">gst_query_parse_scheduling</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
@@ -260,13 +260,6 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstQuery.html#gst-query-has-scheduling-mode" title="gst_query_has_scheduling_mode ()">gst_query_has_scheduling_mode</a>       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadMode" title="enum GstPadMode"><span class="type">GstPadMode</span></a> mode</code></em>);
 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-drain" title="gst_query_new_drain ()">gst_query_new_drain</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          <a class="link" href="gstreamer-GstQuery.html#gst-query-new-toc" title="gst_query_new_toc ()">gst_query_new_toc</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-parse-toc" title="gst_query_parse_toc ()">gst_query_parse_toc</a>                 (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **extend_uid</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstQuery.html#gst-query-set-toc" title="gst_query_set_toc ()">gst_query_set_toc</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extend_uid</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -287,7 +280,7 @@
 <p>
 </p>
 <div class="example">
-<a name="idp39385888"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
+<a name="idp40045456"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
 <div class="example-contents">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -307,17 +300,17 @@
 13</pre></td>
         <td class="listing_code"><pre class="programlisting">GstQuery <span class="gtkdoc opt">*</span>query<span class="gtkdoc opt">;</span>
 gboolean res<span class="gtkdoc opt">;</span>
-query <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#gst-query-new-duration">gst_query_new_duration</a></span> <span class="gtkdoc opt">(</span>GST_FORMAT_TIME<span class="gtkdoc opt">);</span>
-res <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-query">gst_element_query</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> query<span class="gtkdoc opt">);</span>
+query <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-duration">gst_query_new_duration</a></span> <span class="gtkdoc opt">(</span>GST_FORMAT_TIME<span class="gtkdoc opt">);</span>
+res <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-query">gst_element_query</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> query<span class="gtkdoc opt">);</span>
 <span class="keyword">if</span> <span class="gtkdoc opt">(</span>res<span class="gtkdoc opt">) {</span>
   gint64 duration<span class="gtkdoc opt">;</span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#gst-query-parse-duration">gst_query_parse_duration</a></span> <span class="gtkdoc opt">(</span>query<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">, &amp;</span>duration<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;duration = %&quot;</span>GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span>duration<span class="gtkdoc opt">));</span>
+  <span class="function"><a href="../gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-duration">gst_query_parse_duration</a></span> <span class="gtkdoc opt">(</span>query<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">, &amp;</span>duration<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;duration = %&quot;</span>GST_TIME_FORMAT<span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS">GST_TIME_ARGS</a></span> <span class="gtkdoc opt">(</span>duration<span class="gtkdoc opt">));</span>
 <span class="gtkdoc opt">}</span>
 <span class="keyword">else</span> <span class="gtkdoc opt">{</span>
   <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;duration query failed...&quot;</span><span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">}</span>
-<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#gst-query-unref">gst_query_unref</a></span> <span class="gtkdoc opt">(</span>query<span class="gtkdoc opt">);</span></pre></td>
+<span class="function"><a href="../gstreamer-1.0/gstreamer-GstQuery.html#gst-query-unref">gst_query_unref</a></span> <span class="gtkdoc opt">(</span>query<span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -445,8 +438,7 @@
   GST_QUERY_SCHEDULING   = GST_QUERY_MAKE_TYPE (150, FLAG(UPSTREAM)),
   GST_QUERY_ACCEPT_CAPS  = GST_QUERY_MAKE_TYPE (160, FLAG(BOTH)),
   GST_QUERY_CAPS         = GST_QUERY_MAKE_TYPE (170, FLAG(BOTH)),
-  GST_QUERY_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-  GST_QUERY_TOC          = GST_QUERY_MAKE_TYPE (190, FLAG(BOTH))
+  GST_QUERY_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED))
 } GstQueryType;
 </pre>
 <p>
@@ -507,19 +499,17 @@
 </tr>
 <tr>
 <td><p><a name="GST-QUERY-BUFFERING:CAPS"></a><span class="term"><code class="literal">GST_QUERY_BUFFERING</code></span></p></td>
-<td>query available media for efficient seeking. Since
-0.10.20.
+<td>query available media for efficient seeking.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-QUERY-CUSTOM:CAPS"></a><span class="term"><code class="literal">GST_QUERY_CUSTOM</code></span></p></td>
-<td>a custom application or element defined query. Since
-0.10.22.
+<td>a custom application or element defined query.
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-QUERY-URI:CAPS"></a><span class="term"><code class="literal">GST_QUERY_URI</code></span></p></td>
-<td>query the URI of the source or sink. Since 0.10.22.
+<td>query the URI of the source or sink.
 </td>
 </tr>
 <tr>
@@ -547,12 +537,6 @@
 <td>wait till all serialized data is consumed downstream
 </td>
 </tr>
-<tr>
-<td><p><a name="GST-QUERY-TOC:CAPS"></a><span class="term"><code class="literal">GST_QUERY_TOC</code></span></p></td>
-<td>query the full table of contents (TOC) with the marker
-for an entry which can be used to extend received TOC. Since 0.10.37.
-</td>
-</tr>
 </tbody>
 </table></div>
 </div>
@@ -587,7 +571,6 @@
 <td>the query to query</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1242,7 +1225,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1279,7 +1261,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1313,7 +1294,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1443,7 +1423,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1504,7 +1483,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1529,7 +1507,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1804,13 +1781,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-intersect-caps-result"></a><h3>gst_query_intersect_caps_result ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_intersect_caps_result     (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *filter</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCapsIntersectMode" title="enum GstCapsIntersectMode"><span class="type">GstCapsIntersectMode</span></a> mode</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-query-new-accept-caps"></a><h3>gst_query_new_accept_caps ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_accept_caps           (<em class="parameter"><code><a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
@@ -1864,12 +1834,46 @@
 <a name="gst-query-set-accept-caps-result"></a><h3>gst_query_set_accept_caps_result ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_accept_caps_result    (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> result</code></em>);</pre>
+<p>
+Set <em class="parameter"><code>result</code></em> as the result for the <em class="parameter"><code>query</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ACCEPT_CAPS type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
+<td>the result to set</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-query-parse-accept-caps-result"></a><h3>gst_query_parse_accept_caps_result ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_accept_caps_result  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *result</code></em>);</pre>
+<p>
+Parse the result from <em class="parameter"><code>query</code></em> and store in <em class="parameter"><code>result</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
+<td>a GST_QUERY_ACCEPT_CAPS type query <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
+<td>location for the result</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1935,7 +1939,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1964,7 +1967,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1995,7 +1997,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2033,7 +2034,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2075,7 +2075,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2114,7 +2113,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2161,7 +2159,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2195,7 +2192,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2219,7 +2215,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2260,7 +2255,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2282,7 +2276,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2310,7 +2303,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2333,7 +2325,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2470,6 +2461,9 @@
 <p>
 Get the pool parameters in <em class="parameter"><code>query</code></em>.
 </p>
+<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="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -2483,7 +2477,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pool</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the <a class="link" href="gstreamer-GstBufferPool.html#GstBufferPool" title="GstBufferPool"><span class="type">GstBufferPool</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -2551,8 +2545,8 @@
 <div class="refsect2">
 <a name="gst-query-add-allocation-param"></a><h3>gst_query_add_allocation_param ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_param      (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">GstAllocationParams</span> *params</code></em>);</pre>
 <p>
 Add <em class="parameter"><code>allocator</code></em> and its <em class="parameter"><code>params</code></em> as a supported memory allocator.
 </p>
@@ -2566,11 +2560,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>the memory allocator</td>
+<td>the memory allocator. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a>
+<td>a <span class="type">GstAllocationParams</span>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -2609,8 +2604,8 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_nth_allocation_param
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> **allocator</code></em>,
+                                                         <em class="parameter"><code><span class="type">GstAllocationParams</span> *params</code></em>);</pre>
 <p>
 Parse an available query and get the alloctor and its params
 at <em class="parameter"><code>index</code></em> of the allocator array.
@@ -2629,12 +2624,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>variable to hold the result. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>variable to hold the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>parameters for the allocator</td>
+<td>parameters for the allocator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -2644,8 +2640,8 @@
 <a name="gst-query-set-nth-allocation-param"></a><h3>gst_query_set_nth_allocation_param ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_nth_allocation_param  (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstMemory.html#GstAllocator" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstMemory.html#GstAllocationParams" title="struct GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+                                                         <em class="parameter"><code><span class="type">GstAllocator</span> *allocator</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">GstAllocationParams</span> *params</code></em>);</pre>
 <p>
 Parse an available query and get the alloctor and its params
 at <em class="parameter"><code>index</code></em> of the allocator array.
@@ -2664,12 +2660,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>allocator</code></em> :</span></p></td>
-<td>new allocator to set. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>new allocator to set. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
-<td>parameters for the allocator</td>
+<td>parameters for the allocator. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
@@ -2678,9 +2675,10 @@
 <div class="refsect2">
 <a name="gst-query-add-allocation-meta"></a><h3>gst_query_add_allocation_meta ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_query_add_allocation_meta       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *params</code></em>);</pre>
 <p>
-Add <em class="parameter"><code>api</code></em> as aone of the supported metadata API to <em class="parameter"><code>query</code></em>.
+Add <em class="parameter"><code>api</code></em> with <em class="parameter"><code>params</code></em> as one of the supported metadata API to <em class="parameter"><code>query</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2694,6 +2692,11 @@
 <td><p><span class="term"><em class="parameter"><code>api</code></em> :</span></p></td>
 <td>the metadata API</td>
 </tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>API specific parameters. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -2724,7 +2727,8 @@
 <div class="refsect2">
 <a name="gst-query-parse-nth-allocation-meta"></a><h3>gst_query_parse_nth_allocation_meta ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>               gst_query_parse_nth_allocation_meta (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> **params</code></em>);</pre>
 <p>
 Parse an available query and get the metadata API
 at <em class="parameter"><code>index</code></em> of the metadata API array.
@@ -2742,6 +2746,11 @@
 <td>position in the metadata API array to read</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
+<td>API specific flags. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a <a href="http://library.gnome.org/devel/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>.</td>
 </tr>
@@ -2774,11 +2783,14 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-query-has-allocation-meta"></a><h3>gst_query_has_allocation_meta ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_has_allocation_meta       (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
+<a name="gst-query-find-allocation-meta"></a><h3>gst_query_find_allocation_meta ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_query_find_allocation_meta      (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *index</code></em>);</pre>
 <p>
-Check if <em class="parameter"><code>query</code></em> has metadata <em class="parameter"><code>api</code></em> set.
+Check if <em class="parameter"><code>query</code></em> has metadata <em class="parameter"><code>api</code></em> set. When this function returns TRUE,
+<em class="parameter"><code>index</code></em> will contain the index where the requested API and the flags can be
+found.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -2793,6 +2805,11 @@
 <td>the metadata API</td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>the index. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>TRUE when <em class="parameter"><code>api</code></em> is in the list of metadata.</td>
 </tr>
@@ -3045,85 +3062,6 @@
 </tr></tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-new-toc"></a><h3>gst_query_new_toc ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="returnvalue">GstQuery</span></a> *          gst_query_new_toc                   (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Constructs a new query TOC query object. Use <a class="link" href="gstreamer-GstQuery.html#gst-query-unref" title="gst_query_unref ()"><code class="function">gst_query_unref()</code></a>
-when done with it. A TOC query is used to query the full TOC with
-the UID marker for TOC extending (to insert some new entries).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>.</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-parse-toc"></a><h3>gst_query_parse_toc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_parse_toc                 (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **extend_uid</code></em>);</pre>
-<p>
-Parse a TOC query, writing the TOC into <em class="parameter"><code>toc</code></em> as a newly
-allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> and extend UID into <em class="parameter"><code>extend_uid</code></em>, if the respective parameters
-are non-NULL. Use <em class="parameter"><code>extend_uid</code></em> value to insert new entries into the TOC (<em class="parameter"><code>extend_uid</code></em> will
-act as root entry for newly inserted entries).
-Free <em class="parameter"><code>toc</code></em> with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a> and <em class="parameter"><code>extend_uid</code></em> with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>the storage for the received TOC (may be NULL). <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>extend_uid</code></em> :</span></p></td>
-<td>the storage for the received extend UID marker (may be NULL),
-0 means root TOC level. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-query-set-toc"></a><h3>gst_query_set_toc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_query_set_toc                   (<em class="parameter"><code><a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extend_uid</code></em>);</pre>
-<p>
-Answer a TOC query by setting appropriate <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a> with query type GST_QUERY_TOC.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>the GstToc to set.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>extend_uid</code></em> :</span></p></td>
-<td>UID which can be used for TOC extending (may be NULL),
-0 means root TOC level.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstQuery.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer-GstSample.html b/docs/gst/html/gstreamer-GstSample.html
index 3621b46..e500b1c 100644
--- a/docs/gst/html/gstreamer-GstSample.html
+++ b/docs/gst/html/gstreamer-GstSample.html
@@ -71,7 +71,7 @@
 <p>
 The opaque structure of a <a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a>. A sample contains a typed memory
 block and the associated timing information. It is mainly used to
-exchange buffers with and application.
+exchange buffers with an application.
 </p>
 </div>
 <hr>
@@ -188,22 +188,21 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>
+<td>a <a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a>, or NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>
+<td>a <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><span class="type">GstCaps</span></a>, or NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>segment</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>
-</td>
+<td>transfer none) (allow-none): a <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a>, or NULL</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>
+<td>a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -214,7 +213,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/gstreamer-GstSegment.html b/docs/gst/html/gstreamer-GstSegment.html
index 972a797..60fb442 100644
--- a/docs/gst/html/gstreamer-GstSegment.html
+++ b/docs/gst/html/gstreamer-GstSegment.html
@@ -109,11 +109,10 @@
 rate and applied_rate is 1.0.
 </p>
 <p>
-If the segment is used for managing seeks, the segment duration should be set with
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#gst-segment-set-duration"><code class="function">gst_segment_set_duration()</code></a>. The public duration field contains the duration of the
-segment. When using the segment for seeking, the start and time members should
-normally be left to their default 0 value. The stop position is left to -1 unless
-explicitly configured to a different value after a seek event.
+The public duration field contains the duration of the segment. When using
+the segment for seeking, the start and time members should normally be left
+to their default 0 value. The stop position is left to -1 unless explicitly
+configured to a different value after a seek event.
 </p>
 <p>
 The current position in the segment should be set by changing the position
@@ -123,7 +122,7 @@
 For elements that perform seeks, the current segment should be updated with the
 <a class="link" href="gstreamer-GstSegment.html#gst-segment-do-seek" title="gst_segment_do_seek ()"><code class="function">gst_segment_do_seek()</code></a> and the values from the seek event. This method will update
 all the segment fields. The position field will contain the new playback position.
-If the cur_type was different from GST_SEEK_TYPE_NONE, playback continues from
+If the start_type was different from GST_SEEK_TYPE_NONE, playback continues from
 the position position, possibly with updated flags or rate.
 </p>
 <p>
@@ -159,6 +158,7 @@
 
   GstFormat       format;
   guint64         base;
+  guint64         offset;
   guint64         start;
   guint64         stop;
   guint64         time;
@@ -192,7 +192,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.base"></a>base</code></em>;</span></p></td>
-<td>the base time of the segment</td>
+<td>the base of the segment</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.offset"></a>offset</code></em>;</span></p></td>
+<td>the offset to apply to <em class="parameter"><code>start</code></em> or <em class="parameter"><code>stop</code></em>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstSegment.start"></a>start</code></em>;</span></p></td>
@@ -223,7 +228,8 @@
 <pre class="programlisting">typedef enum {
   GST_SEGMENT_FLAG_NONE            = GST_SEEK_FLAG_NONE,
   GST_SEGMENT_FLAG_RESET           = GST_SEEK_FLAG_FLUSH,
-  GST_SEGMENT_FLAG_SKIP            = GST_SEEK_FLAG_SKIP
+  GST_SEGMENT_FLAG_SKIP            = GST_SEEK_FLAG_SKIP,
+  GST_SEGMENT_FLAG_SEGMENT         = GST_SEEK_FLAG_SEGMENT
 } GstSegmentFlags;
 </pre>
 <p>
@@ -249,6 +255,11 @@
 <td>perform skip playback
 </td>
 </tr>
+<tr>
+<td><p><a name="GST-SEGMENT-FLAG-SEGMENT:CAPS"></a><span class="term"><code class="literal">GST_SEGMENT_FLAG_SEGMENT</code></span></p></td>
+<td>send SEGMENT_DONE instead of EOS
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -389,7 +400,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -508,8 +518,7 @@
                                                          <em class="parameter"><code><span class="type">guint64</span> position</code></em>);</pre>
 <p>
 Translate <em class="parameter"><code>position</code></em> to the total running time using the currently configured
-and previously accumulated segments. Position is a value between <em class="parameter"><code>segment</code></em>
-start and stop time.
+segment. Position is a value between <em class="parameter"><code>segment</code></em> start and stop time.
 </p>
 <p>
 This function is typically used by elements that need to synchronize to the
@@ -617,7 +626,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -652,7 +660,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/gstreamer-GstStructure.html b/docs/gst/html/gstreamer-GstStructure.html
index 32ad2d4..4d9d619 100644
--- a/docs/gst/html/gstreamer-GstStructure.html
+++ b/docs/gst/html/gstreamer-GstStructure.html
@@ -503,7 +503,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -692,7 +691,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -727,7 +725,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -817,7 +814,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -861,7 +857,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -896,7 +891,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -985,7 +979,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1076,7 +1069,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1105,7 +1097,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1375,7 +1366,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1408,7 +1398,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1439,7 +1428,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1469,7 +1457,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1498,7 +1485,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1532,7 +1518,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1646,7 +1631,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1804,7 +1788,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2039,7 +2022,7 @@
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;structure is %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> structure<span class="gtkdoc opt">);</span></pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="../gstreamer-1.0/gstreamer-GstInfo.html#GST-LOG:CAPS">GST_LOG</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;structure is %&quot;</span> GST_PTR_FORMAT<span class="gtkdoc opt">,</span> structure<span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -2325,7 +2308,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/gst/html/gstreamer-GstTagList.html b/docs/gst/html/gstreamer-GstTagList.html
index 64d1c15..45e80af 100644
--- a/docs/gst/html/gstreamer-GstTagList.html
+++ b/docs/gst/html/gstreamer-GstTagList.html
@@ -155,6 +155,7 @@
 <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a>             (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
 <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</a>        (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>);
+#define             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free()">gst_tag_list_free</a>                   (taglist)
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-empty" title="gst_tag_list_is_empty ()">gst_tag_list_is_empty</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
@@ -287,13 +288,13 @@
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer" title="gst_tag_list_get_buffer ()">gst_tag_list_get_buffer</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-sample" title="gst_tag_list_get_sample ()">gst_tag_list_get_sample</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" title="gst_tag_list_get_buffer_index ()">gst_tag_list_get_buffer_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> **sample</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-sample-index" title="gst_tag_list_get_sample_index ()">gst_tag_list_get_sample_index</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> **sample</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -354,7 +355,7 @@
 <p>
 </p>
 <div class="table">
-<a name="idp44575472"></a><p class="title"><b>Table 1. merge mode</b></p>
+<a name="idp44799952"></a><p class="title"><b>Table 1. merge mode</b></p>
 <div class="table-contents"><table summary="merge mode" border="1">
 <colgroup>
 <col>
@@ -587,7 +588,6 @@
 <p>
 The title as it should be sorted, e.g. 'Doll House, The'
 </p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -614,7 +614,6 @@
 The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or
 'Guitar Heroes, The'
 </p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -639,7 +638,6 @@
 <p>
 The album name as it should be sorted, e.g. 'Jazz Guitar, The'
 </p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -649,7 +647,6 @@
 <p>
 The artist of the entire album, as it should be displayed.
 </p>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -659,7 +656,6 @@
 <p>
 The artist of the entire album, as it should be sorted.
 </p>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -678,7 +674,6 @@
 <p>
 date and time the data was created (<a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> structure)
 </p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -715,7 +710,6 @@
 This tag is used for unknown Vorbis comment tags,
 unknown APE tags and certain ID3v2 comment fields.
 </p>
-<p class="since">Since 0.10.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -771,7 +765,6 @@
 <p>
 Homepage for this media (i.e. artist or movie homepage) (string)
 </p>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -826,7 +819,6 @@
 <p>
 URI to location where copyright details can be found (string)
 </p>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -842,7 +834,6 @@
 Note: do not use this field to describe the encoding application. Use
 <a class="link" href="gstreamer-GstTagList.html#GST-TAG-APPLICATION-NAME:CAPS" title="GST_TAG_APPLICATION_NAME"><span class="type">GST_TAG_APPLICATION_NAME</span></a> or <a class="link" href="gstreamer-GstTagList.html#GST-TAG-COMMENT:CAPS" title="GST_TAG_COMMENT"><span class="type">GST_TAG_COMMENT</span></a> for that.
 </p>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -852,7 +843,6 @@
 <p>
 person(s) who composed the recording (string)
 </p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -880,7 +870,6 @@
 <p>
 URI to location where license details can be found (string)
 </p>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -935,7 +924,6 @@
 <p>
 codec/format the subtitle data is stored in (string)
 </p>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -945,7 +933,6 @@
 <p>
 container format the data is stored in (string)
 </p>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1055,7 +1042,6 @@
 <p>
 reference level of track and album gain values (double)
 </p>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1083,7 +1069,6 @@
 is not available. This tag should not be set in addition to a language
 code. It is undefined what language or locale the language name is in.
 </p>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1094,7 +1079,6 @@
 image (sample) (sample taglist should specify the content type and preferably
 also set "image-type" field as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttag.html#GstTagImageType"><span class="type">GstTagImageType</span></a>)
 </p>
-<p class="since">Since 0.10.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1105,7 +1089,6 @@
 image that is meant for preview purposes, e.g. small icon-sized version
 (sample) (sample taglist should specify the content type)
 </p>
-<p class="since">Since 0.10.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1117,7 +1100,6 @@
 type and if possible set "filename" to the file name of the
 attachment)
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1127,7 +1109,6 @@
 <p>
 number of beats per minute in audio (double)
 </p>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1137,7 +1118,6 @@
 <p>
 comma separated keywords describing the content (string).
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1148,7 +1128,6 @@
 human readable descriptive location of where the media has been recorded or
 produced. (string).
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1160,7 +1139,6 @@
 degrees according to WGS84 (zero at the equator, negative values for southern
 latitudes) (double).
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1172,7 +1150,6 @@
 degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,
 negative values for western longitudes). (double).
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1183,7 +1160,6 @@
 geo elevation of where the media has been recorded or produced in meters
 according to WGS84 (zero is average sea level) (double).
 </p>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1193,7 +1169,6 @@
 <p>
 The city (english name) where the media has been produced (string).
 </p>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1203,7 +1178,6 @@
 <p>
 The country (english name) where the media has been produced (string).
 </p>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1218,7 +1192,6 @@
 This tag has been added as this is how it is handled/named in XMP's
 Iptc4xmpcore schema.
 </p>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1229,7 +1202,6 @@
 Represents the expected error on the horizontal positioning in
 meters (double).
 </p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1244,7 +1216,6 @@
 <p>
 See also <a class="link" href="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS" title="GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION"><span class="type">GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION</span></a>
 </p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1258,9 +1229,6 @@
 <p>
 See also <a class="link" href="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS" title="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION"><span class="type">GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</span></a>
 </p>
-<p>
-Since 0.10.30
-</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1275,7 +1243,6 @@
 <p>
 See also <a class="link" href="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS" title="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION"><span class="type">GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</span></a>
 </p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1285,7 +1252,6 @@
 <p>
 Name of the show, used for displaying (string)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1295,7 +1261,6 @@
 <p>
 Name of the show, used for sorting (string)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1305,7 +1270,6 @@
 <p>
 Number of the episode within a season/show (unsigned integer)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1315,7 +1279,6 @@
 <p>
 Number of the season of a show/series (unsigned integer)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1325,7 +1288,6 @@
 <p>
 The lyrics of the media (string)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1335,7 +1297,6 @@
 <p>
 The composer's name, used for sorting (string)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1346,7 +1307,6 @@
 Groups together media that are related and spans multiple tracks. An
 example are multiple pieces of a concerto. (string)
 </p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1358,7 +1318,6 @@
 The higher the value, the more the user likes this media
 (unsigned int from 0 to 100)
 </p>
-<p class="since">Since 0.10.29</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1368,7 +1327,6 @@
 <p>
 Manufacturer of the device used to create the media (string)
 </p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1378,7 +1336,6 @@
 <p>
 Model of the device used to create the media (string)
 </p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1388,7 +1345,6 @@
 <p>
 Name of the application used to create the media (string)
 </p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1396,13 +1352,12 @@
 <pre class="programlisting">#define GST_TAG_APPLICATION_DATA          "application-data"
 </pre>
 <p>
-Arbitrary application data (buffer)
+Arbitrary application data (sample)
 </p>
 <p>
-Some formats allow application's to add their own arbitrary data
-into files. This data is application's dependent.
+Some formats allow applications to add their own arbitrary data
+into files. This data is application dependent.
 </p>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1433,7 +1388,6 @@
 Rotations indicated by the values are in clockwise direction and
 'flip' means an horizontal mirroring.
 </p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1762,7 +1716,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1809,7 +1762,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1832,7 +1784,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-free"></a><h3>gst_tag_list_free()</h3>
+<pre class="programlisting">#define gst_tag_list_free(taglist)    gst_tag_list_unref(taglist)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -1856,7 +1813,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1878,7 +1834,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1905,7 +1860,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2237,7 +2191,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2958,7 +2911,7 @@
 </p>
 <p>
 The resulting string in <em class="parameter"><code>value</code></em> will be in UTF-8 encoding and should be
-freed by the caller using g_free when no longer needed. Since 0.10.24 the
+freed by the caller using g_free when no longer needed. The
 returned string is also guaranteed to be non-NULL and non-empty.
 </p>
 <p>
@@ -3001,7 +2954,7 @@
 </p>
 <p>
 The resulting string in <em class="parameter"><code>value</code></em> will be in UTF-8 encoding and should be
-freed by the caller using g_free when no longer needed. Since 0.10.24 the
+freed by the caller using g_free when no longer needed. The
 returned string is also guaranteed to be non-NULL and non-empty.
 </p>
 <p>
@@ -3272,7 +3225,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3316,21 +3268,22 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-tag-list-get-buffer"></a><h3>gst_tag_list_get_buffer ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_buffer             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a name="gst-tag-list-get-sample"></a><h3>gst_tag_list_get_sample ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_sample             (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> **sample</code></em>);</pre>
 <p>
-Copies the first buffer for the given tag in the taglist into the variable
-pointed to by <em class="parameter"><code>value</code></em>. Free the buffer with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a> when it is
-no longer needed.
+Copies the first sample for the given tag in the taglist into the variable
+pointed to by <em class="parameter"><code>sample</code></em>. Free the sample with <a class="link" href="gstreamer-GstSample.html#gst-sample-unref" title="gst_sample_unref ()"><code class="function">gst_sample_unref()</code></a> when it is
+no longer needed. You can retrieve the buffer from the sample using
+<a class="link" href="gstreamer-GstSample.html#gst-sample-get-buffer" title="gst_sample_get_buffer ()"><code class="function">gst_sample_get_buffer()</code></a> and the associated caps (if any) with
+<a class="link" href="gstreamer-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_buffer_unref
+Free-function: gst_sample_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -3344,34 +3297,35 @@
 <td>tag to read out</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>address of a GstBuffer
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>address of a GstSample
 pointer variable to store the result into. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> callee-allocates][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a buffer was copied, FALSE if the tag didn't exist in the
-given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>.</td>
+<td>TRUE, if a sample was returned, FALSE if the tag didn't exist in
+the given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-tag-list-get-buffer-index"></a><h3>gst_tag_list_get_buffer_index ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_buffer_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a name="gst-tag-list-get-sample-index"></a><h3>gst_tag_list_get_sample_index ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_tag_list_get_sample_index       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);</pre>
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstSample.html#GstSample" title="GstSample"><span class="type">GstSample</span></a> **sample</code></em>);</pre>
 <p>
-Gets the buffer that is at the given index for the given tag in the given
-list and copies it into the variable pointed to by <em class="parameter"><code>value</code></em>. Free the buffer
-with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a> when it is no longer needed.
+Gets the sample that is at the given index for the given tag in the given
+list and copies it into the variable pointed to by <em class="parameter"><code>smple</code></em>. Free the sample
+with <a class="link" href="gstreamer-GstSample.html#gst-sample-unref" title="gst_sample_unref ()"><code class="function">gst_sample_unref()</code></a> when it is no longer needed. You can retrieve the
+buffer from the sample using <a class="link" href="gstreamer-GstSample.html#gst-sample-get-buffer" title="gst_sample_get_buffer ()"><code class="function">gst_sample_get_buffer()</code></a> and the associated
+caps (if any) with <a class="link" href="gstreamer-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_buffer_unref
+Free-function: gst_sample_unref
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -3389,19 +3343,18 @@
 <td>number of entry to read out</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>address of a GstBuffer
+<td><p><span class="term"><em class="parameter"><code>sample</code></em> :</span></p></td>
+<td>address of a GstSample
 pointer variable to store the result into. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> callee-allocates][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if a buffer was copied, FALSE if the tag didn't exist in the
+<td>TRUE, if a sample was copied, FALSE if the tag didn't exist in the
 given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstToc.html b/docs/gst/html/gstreamer-GstToc.html
index f7135f9..ea3d8f1 100644
--- a/docs/gst/html/gstreamer-GstToc.html
+++ b/docs/gst/html/gstreamer-GstToc.html
@@ -40,47 +40,77 @@
 <pre class="synopsis">
 #include &lt;gst/gst.h&gt;
 
-struct              <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc">GstToc</a>;
-struct              <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry">GstTocEntry</a>;
+                    <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc">GstToc</a>;
+enum                <a class="link" href="gstreamer-GstToc.html#GstTocScope" title="enum GstTocScope">GstTocScope</a>;
+                    <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry">GstTocEntry</a>;
 enum                <a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType">GstTocEntryType</a>;
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new" title="gst_toc_entry_new ()">gst_toc_entry_new</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-new" title="gst_toc_new ()">gst_toc_new</a>                         (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocScope" title="enum GstTocScope"><span class="type">GstTocScope</span></a> scope</code></em>);
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-ref" title="gst_toc_ref()">gst_toc_ref</a>                         (toc)
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-unref" title="gst_toc_unref()">gst_toc_unref</a>                       (toc)
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-copy" title="gst_toc_copy()">gst_toc_copy</a>                        (toc)
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-make-writable" title="gst_toc_make_writable()">gst_toc_make_writable</a>               (toc)
+<a class="link" href="gstreamer-GstToc.html#GstTocScope" title="enum GstTocScope"><span class="returnvalue">GstTocScope</span></a>         <a class="link" href="gstreamer-GstToc.html#gst-toc-get-scope" title="gst_toc_get_scope ()">gst_toc_get_scope</a>                   (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gstreamer-GstToc.html#gst-toc-get-entries" title="gst_toc_get_entries ()">gst_toc_get_entries</a>                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-append-entry" title="gst_toc_append_entry ()">gst_toc_append_entry</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstToc.html#gst-toc-get-tags" title="gst_toc_get_tags ()">gst_toc_get_tags</a>                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-merge-tags" title="gst_toc_merge_tags ()">gst_toc_merge_tags</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-set-tags" title="gst_toc_set_tags ()">gst_toc_set_tags</a>                    (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-dump" title="gst_toc_dump ()">gst_toc_dump</a>                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new" title="gst_toc_entry_new ()">gst_toc_entry_new</a>                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" title="gst_toc_entry_new_with_pad ()">gst_toc_entry_new_with_pad</a>          (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()">gst_toc_entry_free</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-new" title="gst_toc_new ()">gst_toc_new</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()">gst_toc_free</a>                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-copy" title="gst_toc_entry_copy ()">gst_toc_entry_copy</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-copy" title="gst_toc_copy ()">gst_toc_copy</a>                        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-ref" title="gst_toc_entry_ref()">gst_toc_entry_ref</a>                   (entry)
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()">gst_toc_entry_unref</a>                 (entry)
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-copy" title="gst_toc_entry_copy()">gst_toc_entry_copy</a>                  (entry)
+#define             <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-make-writable" title="gst_toc_entry_make_writable()">gst_toc_entry_make_writable</a>         (entry)
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" title="gst_toc_entry_get_start_stop ()">gst_toc_entry_get_start_stop</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-toc" title="gst_toc_entry_get_toc ()">gst_toc_entry_get_toc</a>               (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-uid" title="gst_toc_entry_get_uid ()">gst_toc_entry_get_uid</a>               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-parent" title="gst_toc_entry_get_parent ()">gst_toc_entry_get_parent</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-sub-entries" title="gst_toc_entry_get_sub_entries ()">gst_toc_entry_get_sub_entries</a>       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-append-sub-entry" title="gst_toc_entry_append_sub_entry ()">gst_toc_entry_append_sub_entry</a>      (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *subentry</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-start-stop-times" title="gst_toc_entry_get_start_stop_times ()">gst_toc_entry_get_start_stop_times</a>  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" title="gst_toc_entry_set_start_stop ()">gst_toc_entry_set_start_stop</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop-times" title="gst_toc_entry_set_start_stop_times ()">gst_toc_entry_set_start_stop_times</a>  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-tags" title="gst_toc_entry_get_tags ()">gst_toc_entry_get_tags</a>              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-merge-tags" title="gst_toc_entry_merge_tags ()">gst_toc_entry_merge_tags</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-tags" title="gst_toc_entry_set_tags ()">gst_toc_entry_set_tags</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" title="gst_toc_entry_type_get_nick ()">gst_toc_entry_type_get_nick</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="returnvalue">GstTocEntryType</span></a>     <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-get-entry-type" title="gst_toc_entry_get_entry_type ()">gst_toc_entry_get_entry_type</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-is-alternative" title="gst_toc_entry_is_alternative ()">gst_toc_entry_is_alternative</a>        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-is-sequence" title="gst_toc_entry_is_sequence ()">gst_toc_entry_is_sequence</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+#define             <a class="link" href="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-ALTERNATIVE:CAPS" title="GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE()">GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE</a>   (entry_type)
+#define             <a class="link" href="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-SEQUENCE:CAPS" title="GST_TOC_ENTRY_TYPE_IS_SEQUENCE()">GST_TOC_ENTRY_TYPE_IS_SEQUENCE</a>      (entry_type)
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstToc.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> functions are used to create/free <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> and <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structures.
-Also they are used to convert <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> into <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> and vice versa.
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> functions are used to create/free <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> and <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> structures.
+Also they are used to convert <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> into <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> and vice versa.
 </p>
 <p>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> lets you to inform other elements in pipeline or application that playing
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> lets you to inform other elements in pipeline or application that playing
 source has some kind of table of contents (TOC). These may be chapters, editions,
 angles or other types. For example: DVD chapters, Matroska chapters or cue sheet
 TOC. Such TOC will be useful for applications to display instead of just a
 playlist.
 </p>
 <p>
-Using TOC is very easy. Firstly, create <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure which represents root
+Using TOC is very easy. Firstly, create <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure which represents root
 contents of the source. You can also attach TOC-specific tags to it. Then fill
-it with <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> entries by appending them to <a class="link" href="gstreamer-GstToc.html#GstToc.entries"><span class="type">GstToc.entries</span></a> <a class="link" href="gstreamer-GstToc.html#GstTocEntry.subentries"><span class="type">GstTocEntry.subentries</span></a>
+it with <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> entries by appending them to <span class="type">GstToc.entries</span> <span class="type">GstTocEntry.subentries</span>
 lists. You should use GST_TOC_ENTRY_TYPE_CHAPTER for generic TOC entry and
 GST_TOC_ENTRY_TYPE_EDITION for the entries which are considered to be alternatives
 (like DVD angles, Matroska editions and so on).
@@ -92,7 +122,7 @@
  stop values.
 </p>
 <p>
-Please, use <a class="link" href="gstreamer-GstToc.html#GstToc.info"><span class="type">GstToc.info</span></a> and <a class="link" href="gstreamer-GstToc.html#GstTocEntry.info"><span class="type">GstTocEntry.info</span></a> fields in that way: create a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>,
+Please, use <span class="type">GstToc.info</span> and <span class="type">GstTocEntry.info</span> fields in that way: create a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>,
 put all info related to your element there and put this structure into the info field under
 the name of your element. Some fields in the info structure can be used for internal purposes,
 so you should use it in the way described above to not to overwrite already existent fields.
@@ -103,112 +133,109 @@
 and <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-toc-select" title="gst_event_parse_toc_select ()"><code class="function">gst_event_parse_toc_select()</code></a> to parse received TOC select event. The same rule for
 the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>: <a class="link" href="gstreamer-GstMessage.html#gst-message-new-toc" title="gst_message_new_toc ()"><code class="function">gst_message_new_toc()</code></a> to create new TOC <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>, and
 <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-toc" title="gst_message_parse_toc ()"><code class="function">gst_message_parse_toc()</code></a> to parse received TOC message. Also you can create a new TOC query
-with <a class="link" href="gstreamer-GstQuery.html#gst-query-new-toc" title="gst_query_new_toc ()"><code class="function">gst_query_new_toc()</code></a>, set it with <a class="link" href="gstreamer-GstQuery.html#gst-query-set-toc" title="gst_query_set_toc ()"><code class="function">gst_query_set_toc()</code></a> and parse it with
-<a class="link" href="gstreamer-GstQuery.html#gst-query-parse-toc" title="gst_query_parse_toc ()"><code class="function">gst_query_parse_toc()</code></a>.
+with <code class="function">gst_query_new_toc()</code>, set it with <code class="function">gst_query_set_toc()</code> and parse it with
+<code class="function">gst_query_parse_toc()</code>.
 </p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstToc.details"></a><h2>Details</h2>
 <div class="refsect2">
-<a name="GstToc"></a><h3>struct GstToc</h3>
-<pre class="programlisting">struct GstToc {
-  GList *entries;
-  GstTagList *tags;
-  GstStructure *info;
-};
+<a name="GstToc"></a><h3>GstToc</h3>
+<pre class="programlisting">typedef struct _GstToc GstToc;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTocScope"></a><h3>enum GstTocScope</h3>
+<pre class="programlisting">typedef enum {
+  GST_TOC_SCOPE_GLOBAL = 1,
+  GST_TOC_SCOPE_CURRENT = 2
+} GstTocScope;
 </pre>
 <p>
-Definition of TOC structure.
+The scope of a TOC.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstToc.entries"></a>entries</code></em>;</span></p></td>
-<td>list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> entries of the TOC.</td>
+<td><p><a name="GST-TOC-SCOPE-GLOBAL:CAPS"></a><span class="term"><code class="literal">GST_TOC_SCOPE_GLOBAL</code></span></p></td>
+<td>global TOC representing all selectable options
+    (this is what applications are usually interested in)
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstToc.tags"></a>tags</code></em>;</span></p></td>
-<td>tags related to the whole TOC.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstToc.info"></a>info</code></em>;</span></p></td>
-<td>extra information related to the TOC.</td>
+<td><p><a name="GST-TOC-SCOPE-CURRENT:CAPS"></a><span class="term"><code class="literal">GST_TOC_SCOPE_CURRENT</code></span></p></td>
+<td>TOC for the currently active/selected stream
+    (this is a TOC representing the current stream from start to EOS,
+    and is what a TOC writer / muxer is usually interested in; it will
+    usually be a subset of the global TOC, e.g. just the chapters of
+    the current title, or the chapters selected for playback from the
+    current title)
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTocEntry"></a><h3>struct GstTocEntry</h3>
-<pre class="programlisting">struct GstTocEntry {
-  gchar *uid;
-  GstTocEntryType type;
-  GList *subentries;
-  GList *pads;
-  GstTagList *tags;
-  GstStructure *info;
-};
-</pre>
-<p>
-Definition of TOC entry structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstTocEntry.uid"></a>uid</code></em>;</span></p></td>
-<td>unique (for a whole TOC) id of the entry. This value should be persistent and
-should not be changed while updating TOC. <em class="parameter"><code>uid</code></em> should be handled as "opaque" value
-without meaning (e.g. applications should not assume the /editionX/chapterY/chapter/Z structure,
-other demuxers could do something else), it should help to track updates of certain entries.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> <em class="structfield"><code><a name="GstTocEntry.type"></a>type</code></em>;</span></p></td>
-<td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> of this entry.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstTocEntry.subentries"></a>subentries</code></em>;</span></p></td>
-<td>list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> children.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstTocEntry.pads"></a>pads</code></em>;</span></p></td>
-<td>list of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> objects, related to this <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstTocEntry.tags"></a>tags</code></em>;</span></p></td>
-<td>tags related to this entry.</td>
-</tr>
-<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstTocEntry.info"></a>info</code></em>;</span></p></td>
-<td>extra information related to this entry.</td>
-</tr>
-</tbody>
-</table></div>
+<a name="GstTocEntry"></a><h3>GstTocEntry</h3>
+<pre class="programlisting">typedef struct _GstTocEntry GstTocEntry;</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTocEntryType"></a><h3>enum GstTocEntryType</h3>
 <pre class="programlisting">typedef enum {
-  GST_TOC_ENTRY_TYPE_CHAPTER     = 0,
-  GST_TOC_ENTRY_TYPE_EDITION     = 1
+  GST_TOC_ENTRY_TYPE_ANGLE       = -3,
+  GST_TOC_ENTRY_TYPE_VERSION     = -2,
+  GST_TOC_ENTRY_TYPE_EDITION     = -1,
+  GST_TOC_ENTRY_TYPE_INVALID     = 0,
+  GST_TOC_ENTRY_TYPE_TITLE       = 1,
+  GST_TOC_ENTRY_TYPE_TRACK       = 2,
+  GST_TOC_ENTRY_TYPE_CHAPTER     = 3,
 } GstTocEntryType;
 </pre>
 <p>
-The different types of TOC entry.
+The different types of TOC entries (see <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="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="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-TOC-ENTRY-TYPE-CHAPTER:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_CHAPTER</code></span></p></td>
-<td>a chapter type entry.
+<td><p><a name="GST-TOC-ENTRY-TYPE-ANGLE:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_ANGLE</code></span></p></td>
+<td>entry is an angle (i.e. an alternative)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-VERSION:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_VERSION</code></span></p></td>
+<td>entry is a version (i.e. alternative)
 </td>
 </tr>
 <tr>
 <td><p><a name="GST-TOC-ENTRY-TYPE-EDITION:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_EDITION</code></span></p></td>
-<td>an edition entry (angle or alternative in other terms).
+<td>entry is an edition (i.e. alternative)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-INVALID:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_INVALID</code></span></p></td>
+<td>invalid entry type value
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-TITLE:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_TITLE</code></span></p></td>
+<td>entry is a title (i.e. a part of a sequence)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-TRACK:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_TRACK</code></span></p></td>
+<td>entry is a track (i.e. a part of a sequence)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TOC-ENTRY-TYPE-CHAPTER:CAPS"></a><span class="term"><code class="literal">GST_TOC_ENTRY_TYPE_CHAPTER</code></span></p></td>
+<td>entry is a chapter (i.e. a part of a sequence)
 </td>
 </tr>
 </tbody>
@@ -216,11 +243,219 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-toc-new"></a><h3>gst_toc_new ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_new                         (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocScope" title="enum GstTocScope"><span class="type">GstTocScope</span></a> scope</code></em>);</pre>
+<p>
+Create a new <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>scope</code></em> :</span></p></td>
+<td>scope of this TOC</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> structure, free it
+with <a class="link" href="gstreamer-GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-ref"></a><h3>gst_toc_ref()</h3>
+<pre class="programlisting">#define gst_toc_ref(toc)            (GstToc*)gst_mini_object_ref(GST_MINI_OBJECT_CAST(toc))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-unref"></a><h3>gst_toc_unref()</h3>
+<pre class="programlisting">#define gst_toc_unref(toc)          gst_mini_object_unref(GST_MINI_OBJECT_CAST(toc))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-copy"></a><h3>gst_toc_copy()</h3>
+<pre class="programlisting">#define gst_toc_copy(toc)           (GstToc*)gst_mini_object_copy(GST_MINI_OBJECT_CAST(toc))
+</pre>
+<p>
+Copy <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> with all subentries (deep copy).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> to copy.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> in case of success, NULL otherwise;
+free it when done with <code class="function">gst_toc_free()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-make-writable"></a><h3>gst_toc_make_writable()</h3>
+<pre class="programlisting">#define gst_toc_make_writable(toc)  (GstToc*)gst_mini_object_make_writable(GST_MINI_OBJECT_CAST(toc))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-get-scope"></a><h3>gst_toc_get_scope ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-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="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>scope of <em class="parameter"><code>toc</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-get-entries"></a><h3>gst_toc_get_entries ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_toc_get_entries                 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<p>
+Gets the list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>toc</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> for <em class="parameter"><code>entry</code></em>. <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>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-append-entry"></a><h3>gst_toc_append_entry ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_append_entry                (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Appends the <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> <em class="parameter"><code>entry</code></em> to <em class="parameter"><code>toc</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-get-tags"></a><h3>gst_toc_get_tags ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_toc_get_tags                    (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<p>
+Gets the tags for <em class="parameter"><code>toc</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> for <em class="parameter"><code>entry</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-merge-tags"></a><h3>gst_toc_merge_tags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_merge_tags                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
+<p>
+Merge <em class="parameter"><code>tags</code></em> into the existing tags of <em class="parameter"><code>toc</code></em> using <em class="parameter"><code>mode</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tags</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-set-tags"></a><h3>gst_toc_set_tags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_set_tags                    (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>);</pre>
+<p>
+Set a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>toc</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tags</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-dump"></a><h3>gst_toc_dump ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_dump                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-toc-entry-new"></a><h3>gst_toc_entry_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_new                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_new                   (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
 <p>
-Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure.
+Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> structure.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -235,104 +470,30 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>.</td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-entry-new-with-pad"></a><h3>gst_toc_entry_new_with_pad ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_new_with_pad          (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure with <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> related.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>entry type.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
-<td>unique ID (UID) in the whole TOC.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>
-<a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> related to this entry.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>
-when done.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
+<a name="gst-toc-entry-ref"></a><h3>gst_toc_entry_ref()</h3>
+<pre class="programlisting">#define gst_toc_entry_ref(entry)            (GstTocEntry*)gst_mini_object_ref(GST_MINI_OBJECT_CAST(entry))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-entry-free"></a><h3>gst_toc_entry_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_free                  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
-<p>
-Free unused <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure. Note that <a class="link" href="gstreamer-GstToc.html#GstTocEntry.uid"><span class="type">GstTocEntry.uid</span></a> will
-be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> and all <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> objects in the <a class="link" href="gstreamer-GstToc.html#GstTocEntry.pads"><span class="type">GstTocEntry.pads</span></a>
-list will be unrefed with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure to free.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
+<a name="gst-toc-entry-unref"></a><h3>gst_toc_entry_unref()</h3>
+<pre class="programlisting">#define gst_toc_entry_unref(entry)          gst_mini_object_unref(GST_MINI_OBJECT_CAST(entry))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-new"></a><h3>gst_toc_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_new                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<a name="gst-toc-entry-copy"></a><h3>gst_toc_entry_copy()</h3>
+<pre class="programlisting">#define gst_toc_entry_copy(entry)           (GstTocEntry*)gst_mini_object_copy(GST_MINI_OBJECT_CAST(entry))
+</pre>
 <p>
-Create new <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure, free it with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a>.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-free"></a><h3>gst_toc_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_free                        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
-<p>
-Free unused <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure to free.</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-entry-copy"></a><h3>gst_toc_entry_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_copy                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
-<p>
-Copy <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with all subentries (deep copy).
+Copy <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> with all subentries (deep copy).
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -340,48 +501,29 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to copy.</td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> to copy.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> in case of success, NULL otherwise;
-free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>.</td>
+<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> in case of success, NULL otherwise;
+free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-unref" title="gst_toc_entry_unref()"><code class="function">gst_toc_entry_unref()</code></a>.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-copy"></a><h3>gst_toc_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_copy                        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
-<p>
-Copy <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> with all subentries (deep copy).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> to copy.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>newly allocated <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> in case of success, NULL otherwise;
-free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a>.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
+<a name="gst-toc-entry-make-writable"></a><h3>gst_toc_entry_make_writable()</h3>
+<pre class="programlisting">#define gst_toc_entry_make_writable(entry)  (GstTocEntry*)gst_mini_object_make_writable(GST_MINI_OBJECT_CAST(entry))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-toc-find-entry"></a><h3>gst_toc_find_entry ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_find_entry                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_find_entry                  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
 <p>
-Find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with given <em class="parameter"><code>uid</code></em> in the <em class="parameter"><code>toc</code></em>.
+Find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> with given <em class="parameter"><code>uid</code></em> in the <em class="parameter"><code>toc</code></em>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -389,25 +531,119 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> to search in.</td>
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> to search in.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
-<td>UID to find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> with.</td>
+<td>UID to find <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> with.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct 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>, or NULL if not found.</td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="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>, or NULL if not found. <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>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-entry-get-start-stop"></a><h3>gst_toc_entry_get_start_stop ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_entry_get_start_stop        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+<a name="gst-toc-entry-get-toc"></a><h3>gst_toc_entry_get_toc ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_entry_get_toc               (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Gets the parent <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The parent <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> of <em class="parameter"><code>entry</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-uid"></a><h3>gst_toc_entry_get_uid ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gst_toc_entry_get_uid               (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Gets the sub-entries of <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>. <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>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-parent"></a><h3>gst_toc_entry_get_parent ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_entry_get_parent            (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Gets the parent <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The parent <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> of <em class="parameter"><code>entry</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-sub-entries"></a><h3>gst_toc_entry_get_sub_entries ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_toc_entry_get_sub_entries       (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-append-sub-entry"></a><h3>gst_toc_entry_append_sub_entry ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_append_sub_entry      (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *subentry</code></em>);</pre>
+<p>
+Appends the <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> <em class="parameter"><code>subentry</code></em> to <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subentry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a>. <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>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-start-stop-times"></a><h3>gst_toc_entry_get_start_stop_times ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_entry_get_start_stop_times  (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *start</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *stop</code></em>);</pre>
 <p>
@@ -419,7 +655,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to get values from.</td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> to get values from.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
@@ -438,12 +674,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-entry-set-start-stop"></a><h3>gst_toc_entry_set_start_stop ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_set_start_stop        (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+<a name="gst-toc-entry-set-start-stop-times"></a><h3>gst_toc_entry_set_start_stop_times ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_set_start_stop_times  (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> start</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>);</pre>
 <p>
@@ -455,7 +690,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
 <td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to set values.</td>
+<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> to set values.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
@@ -467,7 +702,80 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-tags"></a><h3>gst_toc_entry_get_tags ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> *        gst_toc_entry_get_tags              (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<p>
+Gets the tags for <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> for <em class="parameter"><code>entry</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-merge-tags"></a><h3>gst_toc_entry_merge_tags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_merge_tags            (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
+<p>
+Merge <em class="parameter"><code>tags</code></em> into the existing tags of <em class="parameter"><code>entry</code></em> using <em class="parameter"><code>mode</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tags</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-set-tags"></a><h3>gst_toc_entry_set_tags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_entry_set_tags              (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tags</code></em>);</pre>
+<p>
+Set a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> with tags for the complete <em class="parameter"><code>entry</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> instance</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tags</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <hr>
 <div class="refsect2">
@@ -485,16 +793,91 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>Returns the human-readable <em class="parameter"><code>type</code></em>. Can be NULL if an error occurred.</td>
+<td>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
+interface.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.11.92</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-get-entry-type"></a><h3>gst_toc_entry_get_entry_type ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-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="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>entry</code></em>'s entry type</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-is-alternative"></a><h3>gst_toc_entry_is_alternative ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_entry_is_alternative        (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>'s type is an alternative type, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-is-sequence"></a><h3>gst_toc_entry_is_sequence ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_entry_is_sequence           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="GstTocEntry"><span class="type">GstTocEntry</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>'s type is a sequence type, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-TOC-ENTRY-TYPE-IS-ALTERNATIVE:CAPS"></a><h3>GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE()</h3>
+<pre class="programlisting">#define GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE(entry_type)  (entry_type &lt; 0)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-TOC-ENTRY-TYPE-IS-SEQUENCE:CAPS"></a><h3>GST_TOC_ENTRY_TYPE_IS_SEQUENCE()</h3>
+<pre class="programlisting">#define GST_TOC_ENTRY_TYPE_IS_SEQUENCE(entry_type)     (entry_type &gt; 0)
+</pre>
 </div>
 </div>
 <div class="refsect1">
 <a name="gstreamer-GstToc.see-also"></a><h2>See Also</h2>
-<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>, <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>, <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>, <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>, <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>
+<a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a>, <a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a>, <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>, <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/gstreamer-GstTocSetter.html b/docs/gst/html/gstreamer-GstTocSetter.html
index c9aec50..f5fe714 100644
--- a/docs/gst/html/gstreamer-GstTocSetter.html
+++ b/docs/gst/html/gstreamer-GstTocSetter.html
@@ -42,19 +42,11 @@
 #include &lt;gst/gst.h&gt;
 
                     <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter">GstTocSetter</a>;
-struct              <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterIFace" title="struct GstTocSetterIFace">GstTocSetterIFace</a>;
-const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *      <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" title="gst_toc_setter_get_toc ()">gst_toc_setter_get_toc</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" title="gst_toc_setter_get_toc_copy ()">gst_toc_setter_get_toc_copy</a>         (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc" title="gst_toc_setter_reset_toc ()">gst_toc_setter_reset_toc</a>            (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
+struct              <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterInterface" title="struct GstTocSetterInterface">GstTocSetterInterface</a>;
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc" title="gst_toc_setter_set_toc ()">gst_toc_setter_set_toc</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
-const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> * <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry" title="gst_toc_setter_get_toc_entry ()">gst_toc_setter_get_toc_entry</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" title="gst_toc_setter_get_toc_entry_copy ()">gst_toc_setter_get_toc_entry_copy</a>   (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry" title="gst_toc_setter_add_toc_entry ()">gst_toc_setter_add_toc_entry</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *parent_uid</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
+<a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="returnvalue">GstToc</span></a> *            <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" title="gst_toc_setter_get_toc ()">gst_toc_setter_get_toc</a>              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-reset" title="gst_toc_setter_reset ()">gst_toc_setter_reset</a>                (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -90,8 +82,8 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="GstTocSetterIFace"></a><h3>struct GstTocSetterIFace</h3>
-<pre class="programlisting">struct GstTocSetterIFace {
+<a name="GstTocSetterInterface"></a><h3>struct GstTocSetterInterface</h3>
+<pre class="programlisting">struct GstTocSetterInterface {
   GTypeInterface g_iface;
 
   /* signals */
@@ -100,26 +92,47 @@
 };
 </pre>
 <p>
-<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterIFace" title="struct GstTocSetterIFace"><span class="type">GstTocSetterIFace</span></a> interface.
+<a class="link" href="gstreamer-GstTocSetter.html#GstTocSetterInterface" title="struct GstTocSetterInterface"><span class="type">GstTocSetterInterface</span></a> interface.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTocSetterIFace.g-iface"></a>g_iface</code></em>;</span></p></td>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTocSetterInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
 <td>parent interface type.</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="gst-toc-setter-set-toc"></a><h3>gst_toc_setter_set_toc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_setter_set_toc              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
+<p>
+Set the given TOC on the setter. Previously setted TOC will be
+unrefed before setting a new one.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="type">GstToc</span></a> to set. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="gst-toc-setter-get-toc"></a><h3>gst_toc_setter_get_toc ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *      gst_toc_setter_get_toc              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_setter_get_toc              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
 <p>
 Return current TOC the setter uses. The TOC should not be
-modified or freed.
-</p>
-<p>
-This function is not thread-safe. Use <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" title="gst_toc_setter_get_toc_copy ()"><code class="function">gst_toc_setter_get_toc_copy()</code></a> instead.
+modified without making it writable first.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -130,43 +143,17 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a current snapshot of the TOC used in the setter
-or NULL if none is used.</td>
+<td>TOC set, or NULL. Unref with <a class="link" href="gstreamer-GstToc.html#gst-toc-unref" title="gst_toc_unref()"><code class="function">gst_toc_unref()</code></a>
+when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-toc-setter-get-toc-copy"></a><h3>gst_toc_setter_get_toc_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> *            gst_toc_setter_get_toc_copy         (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
-<p>
-Return current TOC the setter uses. The difference between this
-function and <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" title="gst_toc_setter_get_toc ()"><code class="function">gst_toc_setter_get_toc()</code></a> is that this function returns deep
-copy of the TOC, so you can modify it in any way. This function is thread-safe.
-Free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a copy of the current snapshot of the TOC used in the setter
-or NULL if none is used.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-setter-reset-toc"></a><h3>gst_toc_setter_reset_toc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_setter_reset_toc            (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
+<a name="gst-toc-setter-reset"></a><h3>gst_toc_setter_reset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_setter_reset                (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>);</pre>
 <p>
 Reset the internal TOC. Elements should call this from within the
 state-change handler.
@@ -178,126 +165,6 @@
 <td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-setter-set-toc"></a><h3>gst_toc_setter_set_toc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_toc_setter_set_toc              (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);</pre>
-<p>
-Set the given TOC on the setter. Previously setted TOC will be
-freed before setting a new one.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> to set.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-setter-get-toc-entry"></a><h3>gst_toc_setter_get_toc_entry ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> * gst_toc_setter_get_toc_entry        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
-<p>
-Return <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> (if any) with given <em class="parameter"><code>uid</code></em>. Returned entry should
-not be modified or freed.
-</p>
-<p>
-This function is not thread-safe. Use <a class="link" href="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" title="gst_toc_setter_get_toc_entry_copy ()"><code class="function">gst_toc_setter_get_toc_entry_copy()</code></a> instead.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
-<td>UID to find entry with.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a TOC entry with given <em class="parameter"><code>uid</code></em> from the TOC in the setter
-or NULL if none entry with such <em class="parameter"><code>uid</code></em> was found.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-setter-get-toc-entry-copy"></a><h3>gst_toc_setter_get_toc_entry_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> *       gst_toc_setter_get_toc_entry_copy   (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
-<p>
-Return <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> (if any) with given <em class="parameter"><code>uid</code></em>. It perform a deep copying,
-so you can modify returned value. Free it when done with <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()"><code class="function">gst_toc_entry_free()</code></a>.
-This function is thread-safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uid</code></em> :</span></p></td>
-<td>UID to find entry with.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a TOC entry with given <em class="parameter"><code>uid</code></em> from the TOC in the setter
-or NULL if none entry with such <em class="parameter"><code>uid</code></em> was found.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-toc-setter-add-toc-entry"></a><h3>gst_toc_setter_add_toc_entry ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_toc_setter_add_toc_entry        (<em class="parameter"><code><a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a> *setter</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *parent_uid</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);</pre>
-<p>
-Try to find entry with given <em class="parameter"><code>parent_uid</code></em> and append an <em class="parameter"><code>entry</code></em> to that <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>setter</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTocSetter.html#GstTocSetter" title="GstTocSetter"><span class="type">GstTocSetter</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>parent_uid</code></em> :</span></p></td>
-<td>UID of the parent entry to append given <em class="parameter"><code>entry</code></em>. Use 0 for the TOC root level.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>
-<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> to append.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if entry with <em class="parameter"><code>parent_uid</code></em> was found, FALSE otherwise.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.37</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstTypeFind.html b/docs/gst/html/gstreamer-GstTypeFind.html
index 432ec7d..2d7e06d 100644
--- a/docs/gst/html/gstreamer-GstTypeFind.html
+++ b/docs/gst/html/gstreamer-GstTypeFind.html
@@ -42,7 +42,7 @@
 
 struct              <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind">GstTypeFind</a>;
 <span class="returnvalue">void</span>                (<a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindFunction" title="GstTypeFindFunction ()">*GstTypeFindFunction</a>)              (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 enum                <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFindProbability" title="enum GstTypeFindProbability">GstTypeFindProbability</a>;
 const <span class="returnvalue">guint8</span> *      <a class="link" href="gstreamer-GstTypeFind.html#gst-type-find-peek" title="gst_type_find_peek ()">gst_type_find_peek</a>                  (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> offset</code></em>,
@@ -125,7 +125,7 @@
 <div class="refsect2">
 <a name="GstTypeFindFunction"></a><h3>GstTypeFindFunction ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                (*GstTypeFindFunction)              (<em class="parameter"><code><a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> *find</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 A function that will be called by typefinding.
 </p>
@@ -137,7 +137,7 @@
 <td>A <a class="link" href="gstreamer-GstTypeFind.html#GstTypeFind" title="struct GstTypeFind"><span class="type">GstTypeFind</span></a> structure</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
 <td>optionnal data to pass to the function</td>
 </tr>
 </tbody>
@@ -164,7 +164,7 @@
 <tbody>
 <tr>
 <td><p><a name="GST-TYPE-FIND-NONE:CAPS"></a><span class="term"><code class="literal">GST_TYPE_FIND_NONE</code></span></p></td>
-<td>type undetected. Since 0.10.36.
+<td>type undetected.
 </td>
 </tr>
 <tr>
@@ -314,7 +314,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -358,8 +357,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
-<td>A <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>, or NULL for a static typefind function (note that
-passing NULL only works in GStreamer 0.10.16 and later)</td>
+<td>A <a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a>, or NULL for a static typefind function</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstUriHandler.html b/docs/gst/html/gstreamer-GstUriHandler.html
index 2348701..6402400 100644
--- a/docs/gst/html/gstreamer-GstUriHandler.html
+++ b/docs/gst/html/gstreamer-GstUriHandler.html
@@ -62,7 +62,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
 <a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="gstreamer-GstUriHandler.html#gst-element-make-from-uri" title="gst_element_make_from_uri ()">gst_element_make_from_uri</a>           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *elementname</code></em>);
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *elementname</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
 <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a>          <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri-type" title="gst_uri_handler_get_uri_type ()">gst_uri_handler_get_uri_type</a>        (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * const * <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols" title="gst_uri_handler_get_protocols ()">gst_uri_handler_get_protocols</a>     (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri" title="gst_uri_handler_get_uri ()">gst_uri_handler_get_uri</a>             (<em class="parameter"><code><a class="link" href="gstreamer-GstUriHandler.html#GstURIHandler"><span class="type">GstURIHandler</span></a> *handler</code></em>);
@@ -189,7 +190,7 @@
 <div class="refsect2">
 <a name="GstURIError"></a><h3>enum GstURIError</h3>
 <pre class="programlisting">typedef enum {
-  GST_URI_ERROR_BAD_PROTOCOL,
+  GST_URI_ERROR_UNSUPPORTED_PROTOCOL,
   GST_URI_ERROR_BAD_URI,
   GST_URI_ERROR_BAD_STATE,
   GST_URI_ERROR_BAD_REFERENCE
@@ -202,7 +203,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><a name="GST-URI-ERROR-BAD-PROTOCOL:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_BAD_PROTOCOL</code></span></p></td>
+<td><p><a name="GST-URI-ERROR-UNSUPPORTED-PROTOCOL:CAPS"></a><span class="term"><code class="literal">GST_URI_ERROR_UNSUPPORTED_PROTOCOL</code></span></p></td>
 <td>The protocol is not supported
 </td>
 </tr>
@@ -298,7 +299,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.13</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -348,7 +348,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -394,9 +393,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the location for this
-URI. Returns NULL if the URI isn't valid. If the URI does not contain
-a location, an empty string is returned. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+<td>the location for this URI. Returns NULL if the
+URI isn't valid. If the URI does not contain a location, an empty
+string is returned. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -422,14 +421,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>location</code></em> :</span></p></td>
-<td>Location for URI. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>Location for URI. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new string for this
-URI. Returns NULL if the given URI protocol is not valid, or the given
-location is NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+<td>a new string for this URI. Returns NULL if the
+given URI protocol is not valid, or the given location is NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -462,14 +460,14 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-element-make-from-uri"></a><h3>gst_element_make_from_uri ()</h3>
 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        gst_element_make_from_uri           (<em class="parameter"><code>const <a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="type">GstURIType</span></a> type</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *elementname</code></em>);</pre>
+                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *elementname</code></em>,
+                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/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>
@@ -490,6 +488,11 @@
 </td>
 </tr>
 <tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>address where to store error information, or NULL. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new element or NULL if none could be created. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
@@ -536,9 +539,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the
-supported protocols. Returns NULL if the <em class="parameter"><code>handler</code></em> isn't implemented
-properly, or the <em class="parameter"><code>handler</code></em> doesn't support any protocols. <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]</span>
+<td>the supported protocols.
+Returns NULL if the <em class="parameter"><code>handler</code></em> isn't implemented properly, or the <em class="parameter"><code>handler</code></em>
+doesn't support any protocols. <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> utf8]</span>
 </td>
 </tr>
 </tbody>
diff --git a/docs/gst/html/gstreamer-GstUtils.html b/docs/gst/html/gstreamer-GstUtils.html
index d6dc072..7ff1198 100644
--- a/docs/gst/html/gstreamer-GstUtils.html
+++ b/docs/gst/html/gstreamer-GstUtils.html
@@ -110,12 +110,6 @@
 #define             <a class="link" href="gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS" title="GFLOAT_TO_LE()">GFLOAT_TO_LE</a>                        (val)
 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="gstreamer-GstUtils.html#gst-flow-get-name" title="gst_flow_get_name ()">gst_flow_get_name</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> ret</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a>              <a class="link" href="gstreamer-GstUtils.html#gst-flow-to-quark" title="gst_flow_to_quark ()">gst_flow_to_quark</a>                   (<em class="parameter"><code><a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> ret</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#gst-print-element-args" title="gst_print_element_args ()">gst_print_element_args</a>              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> indent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#gst-print-pad-caps" title="gst_print_pad_caps ()">gst_print_pad_caps</a>                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> indent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
 #define             <a class="link" href="gstreamer-GstUtils.html#gst-guint64-to-gdouble" title="gst_guint64_to_gdouble()">gst_guint64_to_gdouble</a>              (value)
 #define             <a class="link" href="gstreamer-GstUtils.html#gst-gdouble-to-guint64" title="gst_gdouble_to_guint64()">gst_gdouble_to_guint64</a>              (value)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-GstUtils.html#gst-util-dump-mem" title="gst_util_dump_mem ()">gst_util_dump_mem</a>                   (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *mem</code></em>,
@@ -265,7 +259,8 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT16-LE:CAPS"></a><h3>GST_READ_UINT16_LE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT16_LE(data)</pre>
+<pre class="programlisting">#  define GST_READ_UINT16_LE(data)      _GST_FAST_READ_SWAP (16, data)
+</pre>
 <p>
 Read a 16 bit unsigned integer value in little endian format from the memory buffer.
 </p>
@@ -280,7 +275,8 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT16-BE:CAPS"></a><h3>GST_READ_UINT16_BE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT16_BE(data)</pre>
+<pre class="programlisting">#  define GST_READ_UINT16_BE(data)      _GST_FAST_READ (16, data)
+</pre>
 <p>
 Read a 16 bit unsigned integer value in big endian format from the memory buffer.
 </p>
@@ -306,7 +302,6 @@
 <td>memory location</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -322,12 +317,12 @@
 <td>memory location</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT32-LE:CAPS"></a><h3>GST_READ_UINT32_LE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT32_LE(data)</pre>
+<pre class="programlisting">#  define GST_READ_UINT32_LE(data)      _GST_FAST_READ_SWAP (32, data)
+</pre>
 <p>
 Read a 32 bit unsigned integer value in little endian format from the memory buffer.
 </p>
@@ -342,7 +337,8 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT32-BE:CAPS"></a><h3>GST_READ_UINT32_BE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT32_BE(data)</pre>
+<pre class="programlisting">#  define GST_READ_UINT32_BE(data)      _GST_FAST_READ (32, data)
+</pre>
 <p>
 Read a 32 bit unsigned integer value in big endian format from the memory buffer.
 </p>
@@ -357,7 +353,8 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT64-LE:CAPS"></a><h3>GST_READ_UINT64_LE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT64_LE(data)</pre>
+<pre class="programlisting">#  define GST_READ_UINT64_LE(data)      _GST_FAST_READ_SWAP (64, data)
+</pre>
 <p>
 Read a 64 bit unsigned integer value in little endian format from the memory buffer.
 </p>
@@ -372,7 +369,8 @@
 <hr>
 <div class="refsect2">
 <a name="GST-READ-UINT64-BE:CAPS"></a><h3>GST_READ_UINT64_BE()</h3>
-<pre class="programlisting">#define             GST_READ_UINT64_BE(data)</pre>
+<pre class="programlisting">#  define GST_READ_UINT64_BE(data)      _GST_FAST_READ (64, data)
+</pre>
 <p>
 Read a 64 bit unsigned integer value in big endian format from the memory buffer.
 </p>
@@ -405,7 +403,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -428,7 +425,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -451,7 +447,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -474,7 +469,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -559,7 +553,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -581,7 +574,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -688,7 +680,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -711,7 +702,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -734,7 +724,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -757,7 +746,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -870,7 +858,6 @@
 <td>integer value to round down</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -887,7 +874,6 @@
 <td>integer value to round down</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -904,7 +890,6 @@
 <td>integer value to round down</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -921,7 +906,6 @@
 <td>integer value to round down</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -938,7 +922,6 @@
 <td>integer value to round down</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -955,7 +938,6 @@
 <td>integer value to round down</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -973,7 +955,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -991,7 +972,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1014,7 +994,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1032,7 +1011,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1050,7 +1028,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1068,7 +1045,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1086,7 +1062,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1109,7 +1084,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1127,7 +1101,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1145,7 +1118,6 @@
 <td>value</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1192,64 +1164,6 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="gst-print-element-args"></a><h3>gst_print_element_args ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_print_element_args              (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> indent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
-<p>
-Print the element argument in a human readable format in the given
-GString.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
-<td>the buffer to print the args in</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
-<td>initial indentation</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>the element to print the args of. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-print-pad-caps"></a><h3>gst_print_pad_caps ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_print_pad_caps                  (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> indent</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Write the pad capabilities in a human readable format into
-the given GString.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
-<td>the buffer to print the caps in</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
-<td>initial indentation</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the pad to print the caps from. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
 <a name="gst-guint64-to-gdouble"></a><h3>gst_guint64_to_gdouble()</h3>
 <pre class="programlisting">#define         gst_guint64_to_gdouble(value)   gst_util_guint64_to_gdouble(value)
 </pre>
@@ -1588,7 +1502,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1620,7 +1533,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.11.0</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1651,7 +1563,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1683,7 +1594,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1734,7 +1644,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1785,7 +1694,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1823,7 +1731,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1847,7 +1754,6 @@
 you handle wraparound correctly.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1878,7 +1784,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1955,7 +1860,6 @@
 <td>the timestamp</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1989,7 +1893,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2052,7 +1955,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-GstValue.html b/docs/gst/html/gstreamer-GstValue.html
index 2b9118b..f9f0caa 100644
--- a/docs/gst/html/gstreamer-GstValue.html
+++ b/docs/gst/html/gstreamer-GstValue.html
@@ -237,7 +237,7 @@
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">guint32 fourcc <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstValue.html#GST-MAKE-FOURCC:CAPS">GST_MAKE_FOURCC</a></span> <span class="gtkdoc opt">(</span><span class="string">'M'</span><span class="gtkdoc opt">,</span> <span class="string">'J'</span><span class="gtkdoc opt">,</span> <span class="string">'P'</span><span class="gtkdoc opt">,</span> <span class="string">'G'</span><span class="gtkdoc opt">);</span></pre></td>
+        <td class="listing_code"><pre class="programlisting">guint32 fourcc <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstValue.html#GST-MAKE-FOURCC:CAPS">GST_MAKE_FOURCC</a></span> <span class="gtkdoc opt">(</span><span class="string">'M'</span><span class="gtkdoc opt">,</span> <span class="string">'J'</span><span class="gtkdoc opt">,</span> <span class="string">'P'</span><span class="gtkdoc opt">,</span> <span class="string">'G'</span><span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -283,7 +283,7 @@
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">guint32 fourcc <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstValue.html#GST-STR-FOURCC:CAPS">GST_STR_FOURCC</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;MJPG&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+        <td class="listing_code"><pre class="programlisting">guint32 fourcc <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstValue.html#GST-STR-FOURCC:CAPS">GST_STR_FOURCC</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;MJPG&quot;</span><span class="gtkdoc opt">);</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -313,7 +313,7 @@
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;fourcc: %&quot;</span> GST_FOURCC_FORMAT <span class="string">&quot;</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstValue.html#GST-FOURCC-ARGS:CAPS">GST_FOURCC_ARGS</a></span> <span class="gtkdoc opt">(</span>fcc<span class="gtkdoc opt">));</span></pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;fourcc: %&quot;</span> GST_FOURCC_FORMAT <span class="string">&quot;</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="../gstreamer-1.0/gstreamer-GstValue.html#GST-FOURCC-ARGS:CAPS">GST_FOURCC_ARGS</a></span> <span class="gtkdoc opt">(</span>fcc<span class="gtkdoc opt">));</span></pre></td>
       </tr>
     </tbody>
   </table>
@@ -584,7 +584,6 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to check</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -601,7 +600,6 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of GstInt64Range</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -629,7 +627,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -651,7 +648,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -673,7 +669,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -706,7 +701,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.11.0</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -728,7 +722,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.11.0</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1017,7 +1010,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.32</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1400,7 +1392,6 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to check</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1481,7 +1472,6 @@
 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to check</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1504,7 +1494,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1527,7 +1516,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/gst/html/gstreamer-GstVersion.html b/docs/gst/html/gstreamer-GstVersion.html
index 351c2b8..1462ee8 100644
--- a/docs/gst/html/gstreamer-GstVersion.html
+++ b/docs/gst/html/gstreamer-GstVersion.html
@@ -129,7 +129,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 </div>
 </div>
diff --git a/docs/gst/html/gstreamer-hierarchy.html b/docs/gst/html/gstreamer-hierarchy.html
index 620c502..b55e2b8 100644
--- a/docs/gst/html/gstreamer-hierarchy.html
+++ b/docs/gst/html/gstreamer-hierarchy.html
@@ -26,6 +26,7 @@
     <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
         <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
             <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
+                GstAllocator
                 <a class="link" href="GstPad.html" title="GstPad">GstPad</a>
                     <a class="link" href="GstGhostPad.html#GstProxyPad">GstProxyPad</a>
                         <a class="link" href="GstGhostPad.html" title="GstGhostPad">GstGhostPad</a>
diff --git a/docs/gst/html/gstreamer.devhelp2 b/docs/gst/html/gstreamer.devhelp2
index 7c148fe..2c9faa2 100644
--- a/docs/gst/html/gstreamer.devhelp2
+++ b/docs/gst/html/gstreamer.devhelp2
@@ -70,28 +70,28 @@
     <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
-    <keyword type="" name="Environment variables" link="gst-running.html#idp11982640"/>
+    <keyword type="" name="Environment variables" link="gst-running.html#idp11902880"/>
     <keyword type="function" name="gst_init ()" link="gstreamer-Gst.html#gst-init"/>
     <keyword type="function" name="gst_init_check ()" link="gstreamer-Gst.html#gst-init-check"/>
     <keyword type="function" name="gst_init_get_option_group ()" link="gstreamer-Gst.html#gst-init-get-option-group"/>
-    <keyword type="function" name="gst_is_initialized ()" link="gstreamer-Gst.html#gst-is-initialized" since="0.10.31"/>
+    <keyword type="function" name="gst_is_initialized ()" link="gstreamer-Gst.html#gst-is-initialized"/>
     <keyword type="function" name="gst_deinit ()" link="gstreamer-Gst.html#gst-deinit"/>
     <keyword type="function" name="gst_version ()" link="gstreamer-Gst.html#gst-version"/>
     <keyword type="function" name="gst_version_string ()" link="gstreamer-Gst.html#gst-version-string"/>
-    <keyword type="function" name="gst_segtrap_is_enabled ()" link="gstreamer-Gst.html#gst-segtrap-is-enabled" since="0.10.10"/>
-    <keyword type="function" name="gst_segtrap_set_enabled ()" link="gstreamer-Gst.html#gst-segtrap-set-enabled" since="0.10.10"/>
-    <keyword type="function" name="gst_registry_fork_is_enabled ()" link="gstreamer-Gst.html#gst-registry-fork-is-enabled" since="0.10.10"/>
-    <keyword type="function" name="gst_registry_fork_set_enabled ()" link="gstreamer-Gst.html#gst-registry-fork-set-enabled" since="0.10.10"/>
-    <keyword type="function" name="gst_update_registry ()" link="gstreamer-Gst.html#gst-update-registry" since="0.10.12"/>
-    <keyword type="struct" name="GstAtomicQueue" link="gstreamer-GstAtomicQueue.html#GstAtomicQueue" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_new ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-new" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_ref ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-ref" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_unref ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-unref" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_push ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-push" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_peek ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_pop ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop" since="0.10.33"/>
-    <keyword type="function" name="gst_atomic_queue_length ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-length" since="0.10.33"/>
-    <keyword type="" name="Notes" link="GstBin.html#idp10089840"/>
+    <keyword type="function" name="gst_segtrap_is_enabled ()" link="gstreamer-Gst.html#gst-segtrap-is-enabled"/>
+    <keyword type="function" name="gst_segtrap_set_enabled ()" link="gstreamer-Gst.html#gst-segtrap-set-enabled"/>
+    <keyword type="function" name="gst_registry_fork_is_enabled ()" link="gstreamer-Gst.html#gst-registry-fork-is-enabled"/>
+    <keyword type="function" name="gst_registry_fork_set_enabled ()" link="gstreamer-Gst.html#gst-registry-fork-set-enabled"/>
+    <keyword type="function" name="gst_update_registry ()" link="gstreamer-Gst.html#gst-update-registry"/>
+    <keyword type="struct" name="GstAtomicQueue" link="gstreamer-GstAtomicQueue.html#GstAtomicQueue"/>
+    <keyword type="function" name="gst_atomic_queue_new ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-new"/>
+    <keyword type="function" name="gst_atomic_queue_ref ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-ref"/>
+    <keyword type="function" name="gst_atomic_queue_unref ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-unref"/>
+    <keyword type="function" name="gst_atomic_queue_push ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-push"/>
+    <keyword type="function" name="gst_atomic_queue_peek ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek"/>
+    <keyword type="function" name="gst_atomic_queue_pop ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop"/>
+    <keyword type="function" name="gst_atomic_queue_length ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-length"/>
+    <keyword type="" name="Notes" link="GstBin.html#idp6749552"/>
     <keyword type="struct" name="struct GstBin" link="GstBin.html#GstBin-struct"/>
     <keyword type="struct" name="struct GstBinClass" link="GstBin.html#GstBinClass"/>
     <keyword type="function" name="gst_bin_new ()" link="GstBin.html#gst-bin-new"/>
@@ -106,10 +106,10 @@
     <keyword type="function" name="gst_bin_iterate_sorted ()" link="GstBin.html#gst-bin-iterate-sorted"/>
     <keyword type="function" name="gst_bin_iterate_sources ()" link="GstBin.html#gst-bin-iterate-sources"/>
     <keyword type="function" name="gst_bin_iterate_all_by_interface ()" link="GstBin.html#gst-bin-iterate-all-by-interface"/>
-    <keyword type="function" name="gst_bin_recalculate_latency ()" link="GstBin.html#gst-bin-recalculate-latency" since="0.10.22."/>
+    <keyword type="function" name="gst_bin_recalculate_latency ()" link="GstBin.html#gst-bin-recalculate-latency"/>
     <keyword type="function" name="gst_bin_add_many ()" link="GstBin.html#gst-bin-add-many"/>
     <keyword type="function" name="gst_bin_remove_many ()" link="GstBin.html#gst-bin-remove-many"/>
-    <keyword type="function" name="gst_bin_find_unlinked_pad ()" link="GstBin.html#gst-bin-find-unlinked-pad" since="0.10.20"/>
+    <keyword type="function" name="gst_bin_find_unlinked_pad ()" link="GstBin.html#gst-bin-find-unlinked-pad"/>
     <keyword type="enum" name="enum GstBinFlags" link="GstBin.html#GstBinFlags"/>
     <keyword type="macro" name="GST_BIN_CHILDREN()" link="GstBin.html#GST-BIN-CHILDREN:CAPS"/>
     <keyword type="macro" name="GST_BIN_CHILDREN_COOKIE()" link="GstBin.html#GST-BIN-CHILDREN-COOKIE:CAPS"/>
@@ -136,7 +136,7 @@
     <keyword type="macro" name="GST_BUFFER_DTS_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-DTS-IS-VALID:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-IS-VALID:CAPS"/>
     <keyword type="macro" name="GST_BUFFER_OFFSET_END_IS_VALID()" link="gstreamer-GstBuffer.html#GST-BUFFER-OFFSET-END-IS-VALID:CAPS"/>
-    <keyword type="macro" name="GST_BUFFER_IS_DISCONT()" link="gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS" since="0.10.9"/>
+    <keyword type="macro" name="GST_BUFFER_IS_DISCONT()" link="gstreamer-GstBuffer.html#GST-BUFFER-IS-DISCONT:CAPS"/>
     <keyword type="function" name="gst_buffer_new ()" link="gstreamer-GstBuffer.html#gst-buffer-new"/>
     <keyword type="function" name="gst_buffer_new_allocate ()" link="gstreamer-GstBuffer.html#gst-buffer-new-allocate"/>
     <keyword type="function" name="gst_buffer_new_wrapped ()" link="gstreamer-GstBuffer.html#gst-buffer-new-wrapped"/>
@@ -145,8 +145,11 @@
     <keyword type="function" name="gst_buffer_unref ()" link="gstreamer-GstBuffer.html#gst-buffer-unref"/>
     <keyword type="macro" name="gst_buffer_get_sizes()" link="gstreamer-GstBuffer.html#gst-buffer-get-sizes"/>
     <keyword type="macro" name="gst_buffer_get_size()" link="gstreamer-GstBuffer.html#gst-buffer-get-size"/>
+    <keyword type="function" name="gst_buffer_get_sizes_range ()" link="gstreamer-GstBuffer.html#gst-buffer-get-sizes-range"/>
+    <keyword type="function" name="gst_buffer_resize_range ()" link="gstreamer-GstBuffer.html#gst-buffer-resize-range"/>
     <keyword type="macro" name="gst_buffer_resize()" link="gstreamer-GstBuffer.html#gst-buffer-resize"/>
     <keyword type="macro" name="gst_buffer_set_size()" link="gstreamer-GstBuffer.html#gst-buffer-set-size"/>
+    <keyword type="function" name="gst_buffer_peek_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-peek-memory"/>
     <keyword type="function" name="gst_buffer_n_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-n-memory"/>
     <keyword type="function" name="gst_buffer_insert_memory ()" link="gstreamer-GstBuffer.html#gst-buffer-insert-memory"/>
     <keyword type="function" name="gst_buffer_replace_memory_range ()" link="gstreamer-GstBuffer.html#gst-buffer-replace-memory-range"/>
@@ -162,6 +165,7 @@
     <keyword type="macro" name="gst_buffer_remove_memory()" link="gstreamer-GstBuffer.html#gst-buffer-remove-memory"/>
     <keyword type="macro" name="gst_buffer_remove_all_memory()" link="gstreamer-GstBuffer.html#gst-buffer-remove-all-memory"/>
     <keyword type="macro" name="gst_buffer_map()" link="gstreamer-GstBuffer.html#gst-buffer-map"/>
+    <keyword type="function" name="gst_buffer_map_range ()" link="gstreamer-GstBuffer.html#gst-buffer-map-range"/>
     <keyword type="function" name="gst_buffer_unmap ()" link="gstreamer-GstBuffer.html#gst-buffer-unmap"/>
     <keyword type="function" name="gst_buffer_memcmp ()" link="gstreamer-GstBuffer.html#gst-buffer-memcmp"/>
     <keyword type="function" name="gst_buffer_extract ()" link="gstreamer-GstBuffer.html#gst-buffer-extract"/>
@@ -176,28 +180,29 @@
     <keyword type="macro" name="gst_buffer_is_writable()" link="gstreamer-GstBuffer.html#gst-buffer-is-writable"/>
     <keyword type="macro" name="gst_buffer_make_writable()" link="gstreamer-GstBuffer.html#gst-buffer-make-writable"/>
     <keyword type="function" name="gst_buffer_replace ()" link="gstreamer-GstBuffer.html#gst-buffer-replace"/>
-    <keyword type="function" name="gst_buffer_append ()" link="gstreamer-GstBuffer.html#gst-buffer-append"/>
+    <keyword type="macro" name="gst_buffer_append()" link="gstreamer-GstBuffer.html#gst-buffer-append"/>
+    <keyword type="function" name="gst_buffer_append_region ()" link="gstreamer-GstBuffer.html#gst-buffer-append-region"/>
     <keyword type="function" name="gst_buffer_get_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-get-meta"/>
     <keyword type="function" name="gst_buffer_add_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-add-meta"/>
     <keyword type="function" name="gst_buffer_remove_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-remove-meta"/>
     <keyword type="function" name="gst_buffer_iterate_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-iterate-meta"/>
     <keyword type="function" name="GstBufferForeachMetaFunc ()" link="gstreamer-GstBuffer.html#GstBufferForeachMetaFunc"/>
     <keyword type="function" name="gst_buffer_foreach_meta ()" link="gstreamer-GstBuffer.html#gst-buffer-foreach-meta"/>
-    <keyword type="struct" name="GstBufferList" link="gstreamer-GstBufferList.html#GstBufferList" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_new ()" link="gstreamer-GstBufferList.html#gst-buffer-list-new" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_new_sized ()" link="gstreamer-GstBufferList.html#gst-buffer-list-new-sized" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_length ()" link="gstreamer-GstBufferList.html#gst-buffer-list-length" since="0.10.24"/>
+    <keyword type="struct" name="GstBufferList" link="gstreamer-GstBufferList.html#GstBufferList"/>
+    <keyword type="function" name="gst_buffer_list_new ()" link="gstreamer-GstBufferList.html#gst-buffer-list-new"/>
+    <keyword type="function" name="gst_buffer_list_new_sized ()" link="gstreamer-GstBufferList.html#gst-buffer-list-new-sized"/>
+    <keyword type="function" name="gst_buffer_list_length ()" link="gstreamer-GstBufferList.html#gst-buffer-list-length"/>
     <keyword type="macro" name="gst_buffer_list_add()" link="gstreamer-GstBufferList.html#gst-buffer-list-add"/>
     <keyword type="function" name="gst_buffer_list_insert ()" link="gstreamer-GstBufferList.html#gst-buffer-list-insert"/>
     <keyword type="function" name="gst_buffer_list_remove ()" link="gstreamer-GstBufferList.html#gst-buffer-list-remove"/>
-    <keyword type="function" name="gst_buffer_list_ref ()" link="gstreamer-GstBufferList.html#gst-buffer-list-ref" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_unref ()" link="gstreamer-GstBufferList.html#gst-buffer-list-unref" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_copy ()" link="gstreamer-GstBufferList.html#gst-buffer-list-copy" since="0.10.24"/>
-    <keyword type="macro" name="gst_buffer_list_is_writable()" link="gstreamer-GstBufferList.html#gst-buffer-list-is-writable" since="0.10.24"/>
-    <keyword type="macro" name="gst_buffer_list_make_writable()" link="gstreamer-GstBufferList.html#gst-buffer-list-make-writable" since="0.10.24"/>
+    <keyword type="function" name="gst_buffer_list_ref ()" link="gstreamer-GstBufferList.html#gst-buffer-list-ref"/>
+    <keyword type="function" name="gst_buffer_list_unref ()" link="gstreamer-GstBufferList.html#gst-buffer-list-unref"/>
+    <keyword type="function" name="gst_buffer_list_copy ()" link="gstreamer-GstBufferList.html#gst-buffer-list-copy"/>
+    <keyword type="macro" name="gst_buffer_list_is_writable()" link="gstreamer-GstBufferList.html#gst-buffer-list-is-writable"/>
+    <keyword type="macro" name="gst_buffer_list_make_writable()" link="gstreamer-GstBufferList.html#gst-buffer-list-make-writable"/>
     <keyword type="function" name="GstBufferListFunc ()" link="gstreamer-GstBufferList.html#GstBufferListFunc"/>
-    <keyword type="function" name="gst_buffer_list_foreach ()" link="gstreamer-GstBufferList.html#gst-buffer-list-foreach" since="0.10.24"/>
-    <keyword type="function" name="gst_buffer_list_get ()" link="gstreamer-GstBufferList.html#gst-buffer-list-get" since="0.10.24"/>
+    <keyword type="function" name="gst_buffer_list_foreach ()" link="gstreamer-GstBufferList.html#gst-buffer-list-foreach"/>
+    <keyword type="function" name="gst_buffer_list_get ()" link="gstreamer-GstBufferList.html#gst-buffer-list-get"/>
     <keyword type="struct" name="GstBufferPool" link="gstreamer-GstBufferPool.html#GstBufferPool"/>
     <keyword type="struct" name="struct GstBufferPoolClass" link="gstreamer-GstBufferPool.html#GstBufferPoolClass"/>
     <keyword type="macro" name="GST_BUFFER_POOL_IS_FLUSHING()" link="gstreamer-GstBufferPool.html#GST-BUFFER-POOL-IS-FLUSHING:CAPS"/>
@@ -217,7 +222,7 @@
     <keyword type="function" name="gst_buffer_pool_set_active ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-set-active"/>
     <keyword type="function" name="gst_buffer_pool_is_active ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-is-active"/>
     <keyword type="enum" name="enum GstBufferPoolAcquireFlags" link="gstreamer-GstBufferPool.html#GstBufferPoolAcquireFlags"/>
-    <keyword type="struct" name="GstBufferPoolAcquireParams" link="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams"/>
+    <keyword type="struct" name="struct GstBufferPoolAcquireParams" link="gstreamer-GstBufferPool.html#GstBufferPoolAcquireParams"/>
     <keyword type="function" name="gst_buffer_pool_acquire_buffer ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-acquire-buffer"/>
     <keyword type="function" name="gst_buffer_pool_release_buffer ()" link="gstreamer-GstBufferPool.html#gst-buffer-pool-release-buffer"/>
     <keyword type="struct" name="struct GstBus" link="GstBus.html#GstBus-struct"/>
@@ -230,9 +235,9 @@
     <keyword type="function" name="gst_bus_have_pending ()" link="GstBus.html#gst-bus-have-pending"/>
     <keyword type="function" name="gst_bus_peek ()" link="GstBus.html#gst-bus-peek"/>
     <keyword type="function" name="gst_bus_pop ()" link="GstBus.html#gst-bus-pop"/>
-    <keyword type="function" name="gst_bus_pop_filtered ()" link="GstBus.html#gst-bus-pop-filtered" since="0.10.15"/>
-    <keyword type="function" name="gst_bus_timed_pop ()" link="GstBus.html#gst-bus-timed-pop" since="0.10.12"/>
-    <keyword type="function" name="gst_bus_timed_pop_filtered ()" link="GstBus.html#gst-bus-timed-pop-filtered" since="0.10.15"/>
+    <keyword type="function" name="gst_bus_pop_filtered ()" link="GstBus.html#gst-bus-pop-filtered"/>
+    <keyword type="function" name="gst_bus_timed_pop ()" link="GstBus.html#gst-bus-timed-pop"/>
+    <keyword type="function" name="gst_bus_timed_pop_filtered ()" link="GstBus.html#gst-bus-timed-pop-filtered"/>
     <keyword type="function" name="gst_bus_set_flushing ()" link="GstBus.html#gst-bus-set-flushing"/>
     <keyword type="function" name="gst_bus_set_sync_handler ()" link="GstBus.html#gst-bus-set-sync-handler"/>
     <keyword type="function" name="gst_bus_sync_signal_handler ()" link="GstBus.html#gst-bus-sync-signal-handler"/>
@@ -251,7 +256,7 @@
     <keyword type="signal" name="The &quot;sync-message&quot; signal" link="GstBus.html#GstBus-sync-message"/>
     <keyword type="struct" name="struct GstCaps" link="gstreamer-GstCaps.html#GstCaps"/>
     <keyword type="struct" name="struct GstStaticCaps" link="gstreamer-GstCaps.html#GstStaticCaps"/>
-    <keyword type="enum" name="enum GstCapsIntersectMode" link="gstreamer-GstCaps.html#GstCapsIntersectMode" since="0.10.33"/>
+    <keyword type="enum" name="enum GstCapsIntersectMode" link="gstreamer-GstCaps.html#GstCapsIntersectMode"/>
     <keyword type="enum" name="enum GstCapsFlags" link="gstreamer-GstCaps.html#GstCapsFlags"/>
     <keyword type="macro" name="GST_CAPS_ANY" link="gstreamer-GstCaps.html#GST-CAPS-ANY:CAPS"/>
     <keyword type="macro" name="GST_CAPS_NONE" link="gstreamer-GstCaps.html#GST-CAPS-NONE:CAPS"/>
@@ -277,14 +282,14 @@
     <keyword type="function" name="gst_static_caps_get ()" link="gstreamer-GstCaps.html#gst-static-caps-get"/>
     <keyword type="function" name="gst_static_caps_cleanup ()" link="gstreamer-GstCaps.html#gst-static-caps-cleanup"/>
     <keyword type="function" name="gst_caps_append ()" link="gstreamer-GstCaps.html#gst-caps-append"/>
-    <keyword type="function" name="gst_caps_merge ()" link="gstreamer-GstCaps.html#gst-caps-merge" since="0.10.10"/>
+    <keyword type="function" name="gst_caps_merge ()" link="gstreamer-GstCaps.html#gst-caps-merge"/>
     <keyword type="function" name="gst_caps_append_structure ()" link="gstreamer-GstCaps.html#gst-caps-append-structure"/>
     <keyword type="function" name="gst_caps_remove_structure ()" link="gstreamer-GstCaps.html#gst-caps-remove-structure"/>
-    <keyword type="function" name="gst_caps_steal_structure ()" link="gstreamer-GstCaps.html#gst-caps-steal-structure" since="0.10.30"/>
+    <keyword type="function" name="gst_caps_steal_structure ()" link="gstreamer-GstCaps.html#gst-caps-steal-structure"/>
     <keyword type="function" name="gst_caps_merge_structure ()" link="gstreamer-GstCaps.html#gst-caps-merge-structure"/>
     <keyword type="function" name="gst_caps_get_size ()" link="gstreamer-GstCaps.html#gst-caps-get-size"/>
     <keyword type="function" name="gst_caps_get_structure ()" link="gstreamer-GstCaps.html#gst-caps-get-structure"/>
-    <keyword type="function" name="gst_caps_set_value ()" link="gstreamer-GstCaps.html#gst-caps-set-value" since="0.10.26"/>
+    <keyword type="function" name="gst_caps_set_value ()" link="gstreamer-GstCaps.html#gst-caps-set-value"/>
     <keyword type="function" name="gst_caps_set_simple ()" link="gstreamer-GstCaps.html#gst-caps-set-simple"/>
     <keyword type="function" name="gst_caps_set_simple_valist ()" link="gstreamer-GstCaps.html#gst-caps-set-simple-valist"/>
     <keyword type="function" name="gst_caps_is_any ()" link="gstreamer-GstCaps.html#gst-caps-is-any"/>
@@ -292,13 +297,13 @@
     <keyword type="function" name="gst_caps_is_fixed ()" link="gstreamer-GstCaps.html#gst-caps-is-fixed"/>
     <keyword type="function" name="gst_caps_is_equal ()" link="gstreamer-GstCaps.html#gst-caps-is-equal"/>
     <keyword type="function" name="gst_caps_is_equal_fixed ()" link="gstreamer-GstCaps.html#gst-caps-is-equal-fixed"/>
-    <keyword type="function" name="gst_caps_is_strictly_equal ()" link="gstreamer-GstCaps.html#gst-caps-is-strictly-equal" since="0.10.36"/>
+    <keyword type="function" name="gst_caps_is_strictly_equal ()" link="gstreamer-GstCaps.html#gst-caps-is-strictly-equal"/>
     <keyword type="function" name="gst_caps_is_always_compatible ()" link="gstreamer-GstCaps.html#gst-caps-is-always-compatible"/>
     <keyword type="function" name="gst_caps_is_subset ()" link="gstreamer-GstCaps.html#gst-caps-is-subset"/>
-    <keyword type="function" name="gst_caps_is_subset_structure ()" link="gstreamer-GstCaps.html#gst-caps-is-subset-structure" since="0.10.36"/>
-    <keyword type="function" name="gst_caps_can_intersect ()" link="gstreamer-GstCaps.html#gst-caps-can-intersect" since="0.10.25"/>
+    <keyword type="function" name="gst_caps_is_subset_structure ()" link="gstreamer-GstCaps.html#gst-caps-is-subset-structure"/>
+    <keyword type="function" name="gst_caps_can_intersect ()" link="gstreamer-GstCaps.html#gst-caps-can-intersect"/>
     <keyword type="function" name="gst_caps_intersect ()" link="gstreamer-GstCaps.html#gst-caps-intersect"/>
-    <keyword type="function" name="gst_caps_intersect_full ()" link="gstreamer-GstCaps.html#gst-caps-intersect-full" since="0.10.33"/>
+    <keyword type="function" name="gst_caps_intersect_full ()" link="gstreamer-GstCaps.html#gst-caps-intersect-full"/>
     <keyword type="function" name="gst_caps_normalize ()" link="gstreamer-GstCaps.html#gst-caps-normalize"/>
     <keyword type="function" name="gst_caps_simplify ()" link="gstreamer-GstCaps.html#gst-caps-simplify"/>
     <keyword type="function" name="gst_caps_replace ()" link="gstreamer-GstCaps.html#gst-caps-replace"/>
@@ -316,7 +321,7 @@
     <keyword type="function" name="gst_sample_get_caps ()" link="gstreamer-GstSample.html#gst-sample-get-caps"/>
     <keyword type="function" name="gst_sample_get_info ()" link="gstreamer-GstSample.html#gst-sample-get-info"/>
     <keyword type="function" name="gst_sample_get_segment ()" link="gstreamer-GstSample.html#gst-sample-get-segment"/>
-    <keyword type="function" name="gst_sample_new ()" link="gstreamer-GstSample.html#gst-sample-new" since="0.10.24"/>
+    <keyword type="function" name="gst_sample_new ()" link="gstreamer-GstSample.html#gst-sample-new"/>
     <keyword type="function" name="gst_sample_ref ()" link="gstreamer-GstSample.html#gst-sample-ref"/>
     <keyword type="function" name="gst_sample_unref ()" link="gstreamer-GstSample.html#gst-sample-unref"/>
     <keyword type="struct" name="GstChildProxy" link="GstChildProxy.html#GstChildProxy-struct"/>
@@ -346,10 +351,10 @@
     <keyword type="macro" name="GST_MSECOND" link="GstClock.html#GST-MSECOND:CAPS"/>
     <keyword type="macro" name="GST_USECOND" link="GstClock.html#GST-USECOND:CAPS"/>
     <keyword type="macro" name="GST_NSECOND" link="GstClock.html#GST-NSECOND:CAPS"/>
-    <keyword type="macro" name="GST_TIME_AS_SECONDS()" link="GstClock.html#GST-TIME-AS-SECONDS:CAPS" since="0.10.16"/>
-    <keyword type="macro" name="GST_TIME_AS_MSECONDS()" link="GstClock.html#GST-TIME-AS-MSECONDS:CAPS" since="0.10.16"/>
-    <keyword type="macro" name="GST_TIME_AS_USECONDS()" link="GstClock.html#GST-TIME-AS-USECONDS:CAPS" since="0.10.16"/>
-    <keyword type="macro" name="GST_TIME_AS_NSECONDS()" link="GstClock.html#GST-TIME-AS-NSECONDS:CAPS" since="0.10.16"/>
+    <keyword type="macro" name="GST_TIME_AS_SECONDS()" link="GstClock.html#GST-TIME-AS-SECONDS:CAPS"/>
+    <keyword type="macro" name="GST_TIME_AS_MSECONDS()" link="GstClock.html#GST-TIME-AS-MSECONDS:CAPS"/>
+    <keyword type="macro" name="GST_TIME_AS_USECONDS()" link="GstClock.html#GST-TIME-AS-USECONDS:CAPS"/>
+    <keyword type="macro" name="GST_TIME_AS_NSECONDS()" link="GstClock.html#GST-TIME-AS-NSECONDS:CAPS"/>
     <keyword type="macro" name="GST_CLOCK_DIFF()" link="GstClock.html#GST-CLOCK-DIFF:CAPS"/>
     <keyword type="macro" name="GST_TIMEVAL_TO_TIME()" link="GstClock.html#GST-TIMEVAL-TO-TIME:CAPS"/>
     <keyword type="macro" name="GST_TIME_TO_TIMEVAL()" link="GstClock.html#GST-TIME-TO-TIMEVAL:CAPS"/>
@@ -375,11 +380,11 @@
     <keyword type="function" name="gst_clock_get_time ()" link="GstClock.html#gst-clock-get-time"/>
     <keyword type="function" name="gst_clock_new_single_shot_id ()" link="GstClock.html#gst-clock-new-single-shot-id"/>
     <keyword type="function" name="gst_clock_new_periodic_id ()" link="GstClock.html#gst-clock-new-periodic-id"/>
-    <keyword type="function" name="gst_clock_single_shot_id_reinit ()" link="GstClock.html#gst-clock-single-shot-id-reinit" since="0.10.32"/>
-    <keyword type="function" name="gst_clock_periodic_id_reinit ()" link="GstClock.html#gst-clock-periodic-id-reinit" since="0.10.33"/>
+    <keyword type="function" name="gst_clock_single_shot_id_reinit ()" link="GstClock.html#gst-clock-single-shot-id-reinit"/>
+    <keyword type="function" name="gst_clock_periodic_id_reinit ()" link="GstClock.html#gst-clock-periodic-id-reinit"/>
     <keyword type="function" name="gst_clock_get_internal_time ()" link="GstClock.html#gst-clock-get-internal-time"/>
     <keyword type="function" name="gst_clock_adjust_unlocked ()" link="GstClock.html#gst-clock-adjust-unlocked"/>
-    <keyword type="function" name="gst_clock_unadjust_unlocked ()" link="GstClock.html#gst-clock-unadjust-unlocked" since="0.10.13"/>
+    <keyword type="function" name="gst_clock_unadjust_unlocked ()" link="GstClock.html#gst-clock-unadjust-unlocked"/>
     <keyword type="function" name="gst_clock_get_calibration ()" link="GstClock.html#gst-clock-get-calibration"/>
     <keyword type="function" name="gst_clock_set_calibration ()" link="GstClock.html#gst-clock-set-calibration"/>
     <keyword type="function" name="gst_clock_get_timeout ()" link="GstClock.html#gst-clock-get-timeout"/>
@@ -387,7 +392,6 @@
     <keyword type="function" name="gst_clock_id_get_time ()" link="GstClock.html#gst-clock-id-get-time"/>
     <keyword type="function" name="gst_clock_id_wait ()" link="GstClock.html#gst-clock-id-wait"/>
     <keyword type="function" name="gst_clock_id_wait_async ()" link="GstClock.html#gst-clock-id-wait-async"/>
-    <keyword type="function" name="gst_clock_id_wait_async_full ()" link="GstClock.html#gst-clock-id-wait-async-full" since="0.10.30"/>
     <keyword type="function" name="gst_clock_id_unschedule ()" link="GstClock.html#gst-clock-id-unschedule"/>
     <keyword type="function" name="gst_clock_id_compare_func ()" link="GstClock.html#gst-clock-id-compare-func"/>
     <keyword type="function" name="gst_clock_id_ref ()" link="GstClock.html#gst-clock-id-ref"/>
@@ -421,23 +425,35 @@
     <keyword type="function" name="gst_control_source_get_value ()" link="GstControlSource.html#gst-control-source-get-value"/>
     <keyword type="function" name="gst_control_source_get_value_array ()" link="GstControlSource.html#gst-control-source-get-value-array"/>
     <keyword type="struct" name="GstDateTime" link="gstreamer-GstDateTime.html#GstDateTime"/>
-    <keyword type="macro" name="GST_TYPE_DATE_TIME" link="gstreamer-GstDateTime.html#GST-TYPE-DATE-TIME:CAPS" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_day ()" link="gstreamer-GstDateTime.html#gst-date-time-get-day" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_month ()" link="gstreamer-GstDateTime.html#gst-date-time-get-month" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_hour ()" link="gstreamer-GstDateTime.html#gst-date-time-get-hour" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_microsecond ()" link="gstreamer-GstDateTime.html#gst-date-time-get-microsecond" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_minute ()" link="gstreamer-GstDateTime.html#gst-date-time-get-minute" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_time_zone_offset ()" link="gstreamer-GstDateTime.html#gst-date-time-get-time-zone-offset" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_second ()" link="gstreamer-GstDateTime.html#gst-date-time-get-second" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_get_year ()" link="gstreamer-GstDateTime.html#gst-date-time-get-year" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_new ()" link="gstreamer-GstDateTime.html#gst-date-time-new" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_new_from_unix_epoch_local_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_new_from_unix_epoch_utc ()" link="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_new_local_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-local-time" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_new_now_local_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-now-local-time" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_new_now_utc ()" link="gstreamer-GstDateTime.html#gst-date-time-new-now-utc" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_ref ()" link="gstreamer-GstDateTime.html#gst-date-time-ref" since="0.10.31"/>
-    <keyword type="function" name="gst_date_time_unref ()" link="gstreamer-GstDateTime.html#gst-date-time-unref" since="0.10.31"/>
+    <keyword type="macro" name="GST_TYPE_DATE_TIME" link="gstreamer-GstDateTime.html#GST-TYPE-DATE-TIME:CAPS"/>
+    <keyword type="function" name="gst_date_time_get_day ()" link="gstreamer-GstDateTime.html#gst-date-time-get-day"/>
+    <keyword type="function" name="gst_date_time_get_month ()" link="gstreamer-GstDateTime.html#gst-date-time-get-month"/>
+    <keyword type="function" name="gst_date_time_get_hour ()" link="gstreamer-GstDateTime.html#gst-date-time-get-hour"/>
+    <keyword type="function" name="gst_date_time_get_microsecond ()" link="gstreamer-GstDateTime.html#gst-date-time-get-microsecond"/>
+    <keyword type="function" name="gst_date_time_get_minute ()" link="gstreamer-GstDateTime.html#gst-date-time-get-minute"/>
+    <keyword type="function" name="gst_date_time_get_time_zone_offset ()" link="gstreamer-GstDateTime.html#gst-date-time-get-time-zone-offset"/>
+    <keyword type="function" name="gst_date_time_get_second ()" link="gstreamer-GstDateTime.html#gst-date-time-get-second"/>
+    <keyword type="function" name="gst_date_time_get_year ()" link="gstreamer-GstDateTime.html#gst-date-time-get-year"/>
+    <keyword type="function" name="gst_date_time_new ()" link="gstreamer-GstDateTime.html#gst-date-time-new"/>
+    <keyword type="function" name="gst_date_time_new_from_unix_epoch_local_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time"/>
+    <keyword type="function" name="gst_date_time_new_from_unix_epoch_utc ()" link="gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc"/>
+    <keyword type="function" name="gst_date_time_new_ymd ()" link="gstreamer-GstDateTime.html#gst-date-time-new-ymd"/>
+    <keyword type="function" name="gst_date_time_new_local_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-local-time"/>
+    <keyword type="function" name="gst_date_time_new_now_local_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-now-local-time"/>
+    <keyword type="function" name="gst_date_time_new_now_utc ()" link="gstreamer-GstDateTime.html#gst-date-time-new-now-utc"/>
+    <keyword type="function" name="gst_date_time_ref ()" link="gstreamer-GstDateTime.html#gst-date-time-ref"/>
+    <keyword type="function" name="gst_date_time_unref ()" link="gstreamer-GstDateTime.html#gst-date-time-unref"/>
+    <keyword type="function" name="gst_date_time_has_day ()" link="gstreamer-GstDateTime.html#gst-date-time-has-day"/>
+    <keyword type="function" name="gst_date_time_has_month ()" link="gstreamer-GstDateTime.html#gst-date-time-has-month"/>
+    <keyword type="function" name="gst_date_time_has_second ()" link="gstreamer-GstDateTime.html#gst-date-time-has-second"/>
+    <keyword type="function" name="gst_date_time_has_time ()" link="gstreamer-GstDateTime.html#gst-date-time-has-time"/>
+    <keyword type="function" name="gst_date_time_has_year ()" link="gstreamer-GstDateTime.html#gst-date-time-has-year"/>
+    <keyword type="function" name="gst_date_time_new_y ()" link="gstreamer-GstDateTime.html#gst-date-time-new-y"/>
+    <keyword type="function" name="gst_date_time_new_ym ()" link="gstreamer-GstDateTime.html#gst-date-time-new-ym"/>
+    <keyword type="function" name="gst_date_time_new_from_iso8601_string ()" link="gstreamer-GstDateTime.html#gst-date-time-new-from-iso8601-string"/>
+    <keyword type="function" name="gst_date_time_to_iso8601_string ()" link="gstreamer-GstDateTime.html#gst-date-time-to-iso8601-string"/>
+    <keyword type="function" name="gst_date_time_new_from_g_date_time ()" link="gstreamer-GstDateTime.html#gst-date-time-new-from-g-date-time"/>
+    <keyword type="function" name="gst_date_time_to_g_date_time ()" link="gstreamer-GstDateTime.html#gst-date-time-to-g-date-time"/>
     <keyword type="struct" name="struct GstElement" link="GstElement.html#GstElement-struct"/>
     <keyword type="struct" name="struct GstElementClass" link="GstElement.html#GstElementClass"/>
     <keyword type="enum" name="enum GstElementFlags" link="GstElement.html#GstElementFlags"/>
@@ -449,7 +465,7 @@
     <keyword type="macro" name="GST_STATE_NEXT()" link="GstElement.html#GST-STATE-NEXT:CAPS"/>
     <keyword type="macro" name="GST_STATE_PENDING()" link="GstElement.html#GST-STATE-PENDING:CAPS"/>
     <keyword type="macro" name="GST_STATE_RETURN()" link="GstElement.html#GST-STATE-RETURN:CAPS"/>
-    <keyword type="macro" name="GST_STATE_TARGET()" link="GstElement.html#GST-STATE-TARGET:CAPS" since="0.10.13"/>
+    <keyword type="macro" name="GST_STATE_TARGET()" link="GstElement.html#GST-STATE-TARGET:CAPS"/>
     <keyword type="macro" name="GST_STATE_TRANSITION()" link="GstElement.html#GST-STATE-TRANSITION:CAPS"/>
     <keyword type="macro" name="GST_STATE_TRANSITION_CURRENT()" link="GstElement.html#GST-STATE-TRANSITION-CURRENT:CAPS"/>
     <keyword type="macro" name="GST_STATE_TRANSITION_NEXT()" link="GstElement.html#GST-STATE-TRANSITION-NEXT:CAPS"/>
@@ -460,10 +476,10 @@
     <keyword type="macro" name="GST_ELEMENT_BUS()" link="GstElement.html#GST-ELEMENT-BUS:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_CLOCK()" link="GstElement.html#GST-ELEMENT-CLOCK:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_PADS()" link="GstElement.html#GST-ELEMENT-PADS:CAPS"/>
-    <keyword type="macro" name="GST_ELEMENT_START_TIME()" link="GstElement.html#GST-ELEMENT-START-TIME:CAPS" since="0.10.24"/>
+    <keyword type="macro" name="GST_ELEMENT_START_TIME()" link="GstElement.html#GST-ELEMENT-START-TIME:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_ERROR()" link="GstElement.html#GST-ELEMENT-ERROR:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_WARNING()" link="GstElement.html#GST-ELEMENT-WARNING:CAPS"/>
-    <keyword type="macro" name="GST_ELEMENT_INFO()" link="GstElement.html#GST-ELEMENT-INFO:CAPS" since="0.10.12"/>
+    <keyword type="macro" name="GST_ELEMENT_INFO()" link="GstElement.html#GST-ELEMENT-INFO:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_IS_LOCKED_STATE()" link="GstElement.html#GST-ELEMENT-IS-LOCKED-STATE:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_METADATA_AUTHOR" link="GstElement.html#GST-ELEMENT-METADATA-AUTHOR:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_METADATA_DESCRIPTION" link="GstElement.html#GST-ELEMENT-METADATA-DESCRIPTION:CAPS"/>
@@ -484,7 +500,7 @@
     <keyword type="function" name="gst_element_get_compatible_pad_template ()" link="GstElement.html#gst-element-get-compatible-pad-template"/>
     <keyword type="function" name="gst_element_get_request_pad ()" link="GstElement.html#gst-element-get-request-pad"/>
     <keyword type="function" name="gst_element_get_static_pad ()" link="GstElement.html#gst-element-get-static-pad"/>
-    <keyword type="function" name="gst_element_request_pad ()" link="GstElement.html#gst-element-request-pad" since="0.10.32"/>
+    <keyword type="function" name="gst_element_request_pad ()" link="GstElement.html#gst-element-request-pad"/>
     <keyword type="function" name="gst_element_no_more_pads ()" link="GstElement.html#gst-element-no-more-pads"/>
     <keyword type="function" name="gst_element_release_request_pad ()" link="GstElement.html#gst-element-release-request-pad"/>
     <keyword type="function" name="gst_element_remove_pad ()" link="GstElement.html#gst-element-remove-pad"/>
@@ -496,15 +512,15 @@
     <keyword type="function" name="gst_element_link_many ()" link="GstElement.html#gst-element-link-many"/>
     <keyword type="function" name="gst_element_unlink_many ()" link="GstElement.html#gst-element-unlink-many"/>
     <keyword type="function" name="gst_element_link_pads ()" link="GstElement.html#gst-element-link-pads"/>
-    <keyword type="function" name="gst_element_link_pads_full ()" link="GstElement.html#gst-element-link-pads-full" since="0.10.30"/>
+    <keyword type="function" name="gst_element_link_pads_full ()" link="GstElement.html#gst-element-link-pads-full"/>
     <keyword type="function" name="gst_element_unlink_pads ()" link="GstElement.html#gst-element-unlink-pads"/>
     <keyword type="function" name="gst_element_link_pads_filtered ()" link="GstElement.html#gst-element-link-pads-filtered"/>
     <keyword type="function" name="gst_element_link_filtered ()" link="GstElement.html#gst-element-link-filtered"/>
     <keyword type="function" name="gst_element_class_get_metadata ()" link="GstElement.html#gst-element-class-get-metadata"/>
     <keyword type="function" name="gst_element_set_base_time ()" link="GstElement.html#gst-element-set-base-time"/>
     <keyword type="function" name="gst_element_get_base_time ()" link="GstElement.html#gst-element-get-base-time"/>
-    <keyword type="function" name="gst_element_set_start_time ()" link="GstElement.html#gst-element-set-start-time" since="0.10.24"/>
-    <keyword type="function" name="gst_element_get_start_time ()" link="GstElement.html#gst-element-get-start-time" since="0.10.24"/>
+    <keyword type="function" name="gst_element_set_start_time ()" link="GstElement.html#gst-element-set-start-time"/>
+    <keyword type="function" name="gst_element_get_start_time ()" link="GstElement.html#gst-element-get-start-time"/>
     <keyword type="function" name="gst_element_set_bus ()" link="GstElement.html#gst-element-set-bus"/>
     <keyword type="function" name="gst_element_get_bus ()" link="GstElement.html#gst-element-get-bus"/>
     <keyword type="function" name="gst_element_get_factory ()" link="GstElement.html#gst-element-get-factory"/>
@@ -523,7 +539,7 @@
     <keyword type="function" name="gst_element_continue_state ()" link="GstElement.html#gst-element-continue-state"/>
     <keyword type="function" name="gst_element_lost_state ()" link="GstElement.html#gst-element-lost-state"/>
     <keyword type="function" name="gst_element_state_get_name ()" link="GstElement.html#gst-element-state-get-name"/>
-    <keyword type="function" name="gst_element_state_change_return_get_name ()" link="GstElement.html#gst-element-state-change-return-get-name" since="0.10.11"/>
+    <keyword type="function" name="gst_element_state_change_return_get_name ()" link="GstElement.html#gst-element-state-change-return-get-name"/>
     <keyword type="function" name="gst_element_sync_state_with_parent ()" link="GstElement.html#gst-element-sync-state-with-parent"/>
     <keyword type="function" name="gst_element_change_state ()" link="GstElement.html#gst-element-change-state"/>
     <keyword type="function" name="gst_element_message_full ()" link="GstElement.html#gst-element-message-full"/>
@@ -533,7 +549,7 @@
     <keyword type="function" name="gst_element_query_position ()" link="GstElement.html#gst-element-query-position"/>
     <keyword type="function" name="gst_element_query_duration ()" link="GstElement.html#gst-element-query-duration"/>
     <keyword type="function" name="gst_element_send_event ()" link="GstElement.html#gst-element-send-event"/>
-    <keyword type="function" name="gst_element_seek_simple ()" link="GstElement.html#gst-element-seek-simple" since="0.10.7"/>
+    <keyword type="function" name="gst_element_seek_simple ()" link="GstElement.html#gst-element-seek-simple"/>
     <keyword type="function" name="gst_element_seek ()" link="GstElement.html#gst-element-seek"/>
     <keyword type="signal" name="The &quot;no-more-pads&quot; signal" link="GstElement.html#GstElement-no-more-pads"/>
     <keyword type="signal" name="The &quot;pad-added&quot; signal" link="GstElement.html#GstElement-pad-added"/>
@@ -547,19 +563,19 @@
     <keyword type="function" name="gst_element_factory_get_num_pad_templates ()" link="GstElementFactory.html#gst-element-factory-get-num-pad-templates"/>
     <keyword type="function" name="gst_element_factory_get_uri_type ()" link="GstElementFactory.html#gst-element-factory-get-uri-type"/>
     <keyword type="function" name="gst_element_factory_get_uri_protocols ()" link="GstElementFactory.html#gst-element-factory-get-uri-protocols"/>
-    <keyword type="function" name="gst_element_factory_has_interface ()" link="GstElementFactory.html#gst-element-factory-has-interface" since="0.10.14"/>
+    <keyword type="function" name="gst_element_factory_has_interface ()" link="GstElementFactory.html#gst-element-factory-has-interface"/>
     <keyword type="function" name="gst_element_factory_create ()" link="GstElementFactory.html#gst-element-factory-create"/>
     <keyword type="function" name="gst_element_factory_make ()" link="GstElementFactory.html#gst-element-factory-make"/>
-    <keyword type="function" name="gst_element_factory_can_sink_all_caps ()" link="GstElementFactory.html#gst-element-factory-can-sink-all-caps" since="0.10.33"/>
-    <keyword type="function" name="gst_element_factory_can_src_all_caps ()" link="GstElementFactory.html#gst-element-factory-can-src-all-caps" since="0.10.33"/>
-    <keyword type="function" name="gst_element_factory_can_sink_any_caps ()" link="GstElementFactory.html#gst-element-factory-can-sink-any-caps" since="0.10.33"/>
-    <keyword type="function" name="gst_element_factory_can_src_any_caps ()" link="GstElementFactory.html#gst-element-factory-can-src-any-caps" since="0.10.33"/>
+    <keyword type="function" name="gst_element_factory_can_sink_all_caps ()" link="GstElementFactory.html#gst-element-factory-can-sink-all-caps"/>
+    <keyword type="function" name="gst_element_factory_can_src_all_caps ()" link="GstElementFactory.html#gst-element-factory-can-src-all-caps"/>
+    <keyword type="function" name="gst_element_factory_can_sink_any_caps ()" link="GstElementFactory.html#gst-element-factory-can-sink-any-caps"/>
+    <keyword type="function" name="gst_element_factory_can_src_any_caps ()" link="GstElementFactory.html#gst-element-factory-can-src-any-caps"/>
     <keyword type="function" name="gst_element_factory_get_static_pad_templates ()" link="GstElementFactory.html#gst-element-factory-get-static-pad-templates"/>
     <keyword type="typedef" name="GstElementFactoryListType" link="GstElementFactory.html#GstElementFactoryListType"/>
-    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_ANY" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-ANY:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIOVIDEO-SINKS:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIO-ENCODER:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_DECODABLE" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODABLE:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_ANY" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-ANY:CAPS"/>
+    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIOVIDEO-SINKS:CAPS"/>
+    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-AUDIO-ENCODER:CAPS"/>
+    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_DECODABLE" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODABLE:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_DECODER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DECODER:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_DEMUXER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DEMUXER:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-DEPAYLOADER:CAPS"/>
@@ -571,16 +587,16 @@
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-METADATA:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-SUBTITLE:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-VIDEO:CAPS"/>
-    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-ANY:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MEDIA-ANY:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_MUXER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-MUXER:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_PARSER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-PARSER:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_PAYLOADER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-PAYLOADER:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_SINK" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-SINK:CAPS"/>
     <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_SRC" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-SRC:CAPS"/>
-    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-VIDEO-ENCODER:CAPS" since="0.10.31"/>
-    <keyword type="function" name="gst_element_factory_list_filter ()" link="GstElementFactory.html#gst-element-factory-list-filter" since="0.10.31"/>
-    <keyword type="function" name="gst_element_factory_list_get_elements ()" link="GstElementFactory.html#gst-element-factory-list-get-elements" since="0.10.31"/>
-    <keyword type="function" name="gst_element_factory_list_is_type ()" link="GstElementFactory.html#gst-element-factory-list-is-type" since="0.10.31"/>
+    <keyword type="macro" name="GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER" link="GstElementFactory.html#GST-ELEMENT-FACTORY-TYPE-VIDEO-ENCODER:CAPS"/>
+    <keyword type="function" name="gst_element_factory_list_filter ()" link="GstElementFactory.html#gst-element-factory-list-filter"/>
+    <keyword type="function" name="gst_element_factory_list_get_elements ()" link="GstElementFactory.html#gst-element-factory-list-get-elements"/>
+    <keyword type="function" name="gst_element_factory_list_is_type ()" link="GstElementFactory.html#gst-element-factory-list-is-type"/>
     <keyword type="enum" name="enum GstCoreError" link="gstreamer-GstGError.html#GstCoreError"/>
     <keyword type="enum" name="enum GstLibraryError" link="gstreamer-GstGError.html#GstLibraryError"/>
     <keyword type="enum" name="enum GstResourceError" link="gstreamer-GstGError.html#GstResourceError"/>
@@ -618,9 +634,9 @@
     <keyword type="function" name="gst_event_writable_structure ()" link="gstreamer-GstEvent.html#gst-event-writable-structure"/>
     <keyword type="function" name="gst_event_new_custom ()" link="gstreamer-GstEvent.html#gst-event-new-custom"/>
     <keyword type="function" name="gst_event_get_structure ()" link="gstreamer-GstEvent.html#gst-event-get-structure"/>
-    <keyword type="function" name="gst_event_has_name ()" link="gstreamer-GstEvent.html#gst-event-has-name" since="0.10.20"/>
-    <keyword type="function" name="gst_event_get_seqnum ()" link="gstreamer-GstEvent.html#gst-event-get-seqnum" since="0.10.22"/>
-    <keyword type="function" name="gst_event_set_seqnum ()" link="gstreamer-GstEvent.html#gst-event-set-seqnum" since="0.10.22"/>
+    <keyword type="function" name="gst_event_has_name ()" link="gstreamer-GstEvent.html#gst-event-has-name"/>
+    <keyword type="function" name="gst_event_get_seqnum ()" link="gstreamer-GstEvent.html#gst-event-get-seqnum"/>
+    <keyword type="function" name="gst_event_set_seqnum ()" link="gstreamer-GstEvent.html#gst-event-set-seqnum"/>
     <keyword type="function" name="gst_event_new_flush_start ()" link="gstreamer-GstEvent.html#gst-event-new-flush-start"/>
     <keyword type="function" name="gst_event_new_flush_stop ()" link="gstreamer-GstEvent.html#gst-event-new-flush-stop"/>
     <keyword type="function" name="gst_event_parse_flush_stop ()" link="gstreamer-GstEvent.html#gst-event-parse-flush-stop"/>
@@ -628,6 +644,7 @@
     <keyword type="function" name="gst_event_new_gap ()" link="gstreamer-GstEvent.html#gst-event-new-gap"/>
     <keyword type="function" name="gst_event_parse_gap ()" link="gstreamer-GstEvent.html#gst-event-parse-gap"/>
     <keyword type="function" name="gst_event_new_stream_start ()" link="gstreamer-GstEvent.html#gst-event-new-stream-start"/>
+    <keyword type="function" name="gst_event_parse_stream_start ()" link="gstreamer-GstEvent.html#gst-event-parse-stream-start"/>
     <keyword type="function" name="gst_event_new_segment ()" link="gstreamer-GstEvent.html#gst-event-new-segment"/>
     <keyword type="function" name="gst_event_parse_segment ()" link="gstreamer-GstEvent.html#gst-event-parse-segment"/>
     <keyword type="function" name="gst_event_copy_segment ()" link="gstreamer-GstEvent.html#gst-event-copy-segment"/>
@@ -635,7 +652,7 @@
     <keyword type="function" name="gst_event_parse_tag ()" link="gstreamer-GstEvent.html#gst-event-parse-tag"/>
     <keyword type="function" name="gst_event_new_buffer_size ()" link="gstreamer-GstEvent.html#gst-event-new-buffer-size"/>
     <keyword type="function" name="gst_event_parse_buffer_size ()" link="gstreamer-GstEvent.html#gst-event-parse-buffer-size"/>
-    <keyword type="enum" name="enum GstQOSType" link="gstreamer-GstEvent.html#GstQOSType" since="0.10.33"/>
+    <keyword type="enum" name="enum GstQOSType" link="gstreamer-GstEvent.html#GstQOSType"/>
     <keyword type="function" name="gst_event_new_qos ()" link="gstreamer-GstEvent.html#gst-event-new-qos"/>
     <keyword type="function" name="gst_event_parse_qos ()" link="gstreamer-GstEvent.html#gst-event-parse-qos"/>
     <keyword type="enum" name="enum GstSeekType" link="gstreamer-GstEvent.html#GstSeekType"/>
@@ -643,13 +660,13 @@
     <keyword type="function" name="gst_event_new_seek ()" link="gstreamer-GstEvent.html#gst-event-new-seek"/>
     <keyword type="function" name="gst_event_parse_seek ()" link="gstreamer-GstEvent.html#gst-event-parse-seek"/>
     <keyword type="function" name="gst_event_new_navigation ()" link="gstreamer-GstEvent.html#gst-event-new-navigation"/>
-    <keyword type="function" name="gst_event_new_latency ()" link="gstreamer-GstEvent.html#gst-event-new-latency" since="0.10.12"/>
-    <keyword type="function" name="gst_event_parse_latency ()" link="gstreamer-GstEvent.html#gst-event-parse-latency" since="0.10.12"/>
-    <keyword type="function" name="gst_event_new_step ()" link="gstreamer-GstEvent.html#gst-event-new-step" since="0.10.24"/>
-    <keyword type="function" name="gst_event_parse_step ()" link="gstreamer-GstEvent.html#gst-event-parse-step" since="0.10.24"/>
-    <keyword type="function" name="gst_event_new_sink_message ()" link="gstreamer-GstEvent.html#gst-event-new-sink-message" since="0.10.26"/>
-    <keyword type="function" name="gst_event_parse_sink_message ()" link="gstreamer-GstEvent.html#gst-event-parse-sink-message" since="0.10.26"/>
-    <keyword type="function" name="gst_event_new_reconfigure ()" link="gstreamer-GstEvent.html#gst-event-new-reconfigure" since="0.11.0"/>
+    <keyword type="function" name="gst_event_new_latency ()" link="gstreamer-GstEvent.html#gst-event-new-latency"/>
+    <keyword type="function" name="gst_event_parse_latency ()" link="gstreamer-GstEvent.html#gst-event-parse-latency"/>
+    <keyword type="function" name="gst_event_new_step ()" link="gstreamer-GstEvent.html#gst-event-new-step"/>
+    <keyword type="function" name="gst_event_parse_step ()" link="gstreamer-GstEvent.html#gst-event-parse-step"/>
+    <keyword type="function" name="gst_event_new_sink_message ()" link="gstreamer-GstEvent.html#gst-event-new-sink-message"/>
+    <keyword type="function" name="gst_event_parse_sink_message ()" link="gstreamer-GstEvent.html#gst-event-parse-sink-message"/>
+    <keyword type="function" name="gst_event_new_reconfigure ()" link="gstreamer-GstEvent.html#gst-event-new-reconfigure"/>
     <keyword type="function" name="gst_event_new_caps ()" link="gstreamer-GstEvent.html#gst-event-new-caps"/>
     <keyword type="function" name="gst_event_parse_caps ()" link="gstreamer-GstEvent.html#gst-event-parse-caps"/>
     <keyword type="enum" name="enum GstStreamConfigFlags" link="gstreamer-GstEvent.html#GstStreamConfigFlags"/>
@@ -660,10 +677,12 @@
     <keyword type="function" name="gst_event_add_stream_config_header ()" link="gstreamer-GstEvent.html#gst-event-add-stream-config-header"/>
     <keyword type="function" name="gst_event_get_n_stream_config_headers ()" link="gstreamer-GstEvent.html#gst-event-get-n-stream-config-headers"/>
     <keyword type="function" name="gst_event_parse_nth_stream_config_header ()" link="gstreamer-GstEvent.html#gst-event-parse-nth-stream-config-header"/>
-    <keyword type="function" name="gst_event_new_toc ()" link="gstreamer-GstEvent.html#gst-event-new-toc" since="0.10.37"/>
-    <keyword type="function" name="gst_event_parse_toc ()" link="gstreamer-GstEvent.html#gst-event-parse-toc" since="0.10.37"/>
-    <keyword type="function" name="gst_event_new_toc_select ()" link="gstreamer-GstEvent.html#gst-event-new-toc-select" since="0.10.37"/>
-    <keyword type="function" name="gst_event_parse_toc_select ()" link="gstreamer-GstEvent.html#gst-event-parse-toc-select" since="0.10.37"/>
+    <keyword type="function" name="gst_event_new_toc ()" link="gstreamer-GstEvent.html#gst-event-new-toc"/>
+    <keyword type="function" name="gst_event_parse_toc ()" link="gstreamer-GstEvent.html#gst-event-parse-toc"/>
+    <keyword type="function" name="gst_event_new_toc_select ()" link="gstreamer-GstEvent.html#gst-event-new-toc-select"/>
+    <keyword type="function" name="gst_event_parse_toc_select ()" link="gstreamer-GstEvent.html#gst-event-parse-toc-select"/>
+    <keyword type="function" name="gst_event_new_segment_done ()" link="gstreamer-GstEvent.html#gst-event-new-segment-done"/>
+    <keyword type="function" name="gst_event_parse_segment_done ()" link="gstreamer-GstEvent.html#gst-event-parse-segment-done"/>
     <keyword type="enum" name="enum GstFormat" link="gstreamer-GstFormat.html#GstFormat"/>
     <keyword type="macro" name="GST_FORMAT_PERCENT_MAX" link="gstreamer-GstFormat.html#GST-FORMAT-PERCENT-MAX:CAPS"/>
     <keyword type="macro" name="GST_FORMAT_PERCENT_SCALE" link="gstreamer-GstFormat.html#GST-FORMAT-PERCENT-SCALE:CAPS"/>
@@ -679,23 +698,18 @@
     <keyword type="struct" name="struct GstGhostPad" link="GstGhostPad.html#GstGhostPad-struct"/>
     <keyword type="function" name="gst_ghost_pad_new ()" link="GstGhostPad.html#gst-ghost-pad-new"/>
     <keyword type="function" name="gst_ghost_pad_new_no_target ()" link="GstGhostPad.html#gst-ghost-pad-new-no-target"/>
-    <keyword type="function" name="gst_ghost_pad_new_from_template ()" link="GstGhostPad.html#gst-ghost-pad-new-from-template" since="0.10.10"/>
-    <keyword type="function" name="gst_ghost_pad_new_no_target_from_template ()" link="GstGhostPad.html#gst-ghost-pad-new-no-target-from-template" since="0.10.10"/>
+    <keyword type="function" name="gst_ghost_pad_new_from_template ()" link="GstGhostPad.html#gst-ghost-pad-new-from-template"/>
+    <keyword type="function" name="gst_ghost_pad_new_no_target_from_template ()" link="GstGhostPad.html#gst-ghost-pad-new-no-target-from-template"/>
     <keyword type="function" name="gst_ghost_pad_set_target ()" link="GstGhostPad.html#gst-ghost-pad-set-target"/>
     <keyword type="function" name="gst_ghost_pad_get_target ()" link="GstGhostPad.html#gst-ghost-pad-get-target"/>
-    <keyword type="function" name="gst_ghost_pad_construct ()" link="GstGhostPad.html#gst-ghost-pad-construct" since="0.10.22"/>
-    <keyword type="function" name="gst_ghost_pad_unlink_default ()" link="GstGhostPad.html#gst-ghost-pad-unlink-default" since="0.10.36"/>
-    <keyword type="function" name="gst_ghost_pad_link_default ()" link="GstGhostPad.html#gst-ghost-pad-link-default" since="0.10.36"/>
+    <keyword type="function" name="gst_ghost_pad_construct ()" link="GstGhostPad.html#gst-ghost-pad-construct"/>
     <keyword type="function" name="gst_ghost_pad_activate_mode_default ()" link="GstGhostPad.html#gst-ghost-pad-activate-mode-default"/>
     <keyword type="function" name="gst_ghost_pad_internal_activate_mode_default ()" link="GstGhostPad.html#gst-ghost-pad-internal-activate-mode-default"/>
-    <keyword type="function" name="gst_proxy_pad_get_internal ()" link="GstGhostPad.html#gst-proxy-pad-get-internal" since="0.10.36"/>
-    <keyword type="function" name="gst_proxy_pad_event_default ()" link="GstGhostPad.html#gst-proxy-pad-event-default" since="0.10.36"/>
-    <keyword type="function" name="gst_proxy_pad_query_default ()" link="GstGhostPad.html#gst-proxy-pad-query-default" since="0.10.36"/>
-    <keyword type="function" name="gst_proxy_pad_iterate_internal_links_default ()" link="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default" since="0.10.36"/>
-    <keyword type="function" name="gst_proxy_pad_chain_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-default" since="0.10.36"/>
-    <keyword type="function" name="gst_proxy_pad_chain_list_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-list-default" since="0.10.36"/>
+    <keyword type="function" name="gst_proxy_pad_get_internal ()" link="GstGhostPad.html#gst-proxy-pad-get-internal"/>
+    <keyword type="function" name="gst_proxy_pad_iterate_internal_links_default ()" link="GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default"/>
+    <keyword type="function" name="gst_proxy_pad_chain_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-default"/>
+    <keyword type="function" name="gst_proxy_pad_chain_list_default ()" link="GstGhostPad.html#gst-proxy-pad-chain-list-default"/>
     <keyword type="function" name="gst_proxy_pad_getrange_default ()" link="GstGhostPad.html#gst-proxy-pad-getrange-default"/>
-    <keyword type="function" name="gst_proxy_pad_unlink_default ()" link="GstGhostPad.html#gst-proxy-pad-unlink-default" since="0.10.36"/>
     <keyword type="struct" name="struct GstIterator" link="gstreamer-GstIterator.html#GstIterator"/>
     <keyword type="enum" name="enum GstIteratorItem" link="gstreamer-GstIterator.html#GstIteratorItem"/>
     <keyword type="enum" name="enum GstIteratorResult" link="gstreamer-GstIterator.html#GstIteratorResult"/>
@@ -712,7 +726,7 @@
     <keyword type="macro" name="GST_ITERATOR_ORIG_COOKIE()" link="gstreamer-GstIterator.html#GST-ITERATOR-ORIG-COOKIE:CAPS"/>
     <keyword type="function" name="gst_iterator_new ()" link="gstreamer-GstIterator.html#gst-iterator-new"/>
     <keyword type="function" name="gst_iterator_new_list ()" link="gstreamer-GstIterator.html#gst-iterator-new-list"/>
-    <keyword type="function" name="gst_iterator_new_single ()" link="gstreamer-GstIterator.html#gst-iterator-new-single" since="0.10.25"/>
+    <keyword type="function" name="gst_iterator_new_single ()" link="gstreamer-GstIterator.html#gst-iterator-new-single"/>
     <keyword type="function" name="gst_iterator_copy ()" link="gstreamer-GstIterator.html#gst-iterator-copy"/>
     <keyword type="function" name="gst_iterator_free ()" link="gstreamer-GstIterator.html#gst-iterator-free"/>
     <keyword type="function" name="gst_iterator_next ()" link="gstreamer-GstIterator.html#gst-iterator-next"/>
@@ -727,41 +741,27 @@
     <keyword type="macro" name="GST_MEMORY_FLAG_IS_SET()" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-IS-SET:CAPS"/>
     <keyword type="macro" name="GST_MEMORY_FLAG_UNSET()" link="gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS"/>
     <keyword type="macro" name="GST_MEMORY_IS_READONLY()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS"/>
+    <keyword type="macro" name="GST_MEMORY_IS_NO_SHARE()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE:CAPS"/>
     <keyword type="macro" name="GST_MEMORY_IS_ZERO_PADDED()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS"/>
     <keyword type="macro" name="GST_MEMORY_IS_ZERO_PREFIXED()" link="gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS"/>
     <keyword type="struct" name="struct GstMemory" link="gstreamer-GstMemory.html#GstMemory"/>
     <keyword type="enum" name="enum GstMapFlags" link="gstreamer-GstMemory.html#GstMapFlags"/>
+    <keyword type="macro" name="GST_MAP_READWRITE" link="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS"/>
     <keyword type="struct" name="GstMapInfo" link="gstreamer-GstMemory.html#GstMapInfo"/>
     <keyword type="macro" name="GST_MAP_INFO_INIT" link="gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS"/>
-    <keyword type="macro" name="GST_MAP_READWRITE" link="gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS"/>
-    <keyword type="struct" name="struct GstAllocationParams" link="gstreamer-GstMemory.html#GstAllocationParams"/>
-    <keyword type="function" name="GstAllocatorAllocFunction ()" link="gstreamer-GstMemory.html#GstAllocatorAllocFunction"/>
     <keyword type="function" name="GstMemoryMapFunction ()" link="gstreamer-GstMemory.html#GstMemoryMapFunction"/>
     <keyword type="function" name="GstMemoryUnmapFunction ()" link="gstreamer-GstMemory.html#GstMemoryUnmapFunction"/>
-    <keyword type="function" name="GstMemoryFreeFunction ()" link="gstreamer-GstMemory.html#GstMemoryFreeFunction"/>
     <keyword type="function" name="GstMemoryCopyFunction ()" link="gstreamer-GstMemory.html#GstMemoryCopyFunction"/>
     <keyword type="function" name="GstMemoryShareFunction ()" link="gstreamer-GstMemory.html#GstMemoryShareFunction"/>
     <keyword type="function" name="GstMemoryIsSpanFunction ()" link="gstreamer-GstMemory.html#GstMemoryIsSpanFunction"/>
-    <keyword type="struct" name="struct GstMemoryInfo" link="gstreamer-GstMemory.html#GstMemoryInfo"/>
-    <keyword type="struct" name="GstAllocator" link="gstreamer-GstMemory.html#GstAllocator"/>
-    <keyword type="function" name="gst_allocator_new ()" link="gstreamer-GstMemory.html#gst-allocator-new"/>
-    <keyword type="function" name="gst_allocator_get_memory_type ()" link="gstreamer-GstMemory.html#gst-allocator-get-memory-type"/>
-    <keyword type="function" name="gst_allocator_ref ()" link="gstreamer-GstMemory.html#gst-allocator-ref"/>
-    <keyword type="function" name="gst_allocator_unref ()" link="gstreamer-GstMemory.html#gst-allocator-unref"/>
-    <keyword type="macro" name="GST_ALLOCATOR_SYSMEM" link="gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS"/>
-    <keyword type="function" name="gst_allocator_find ()" link="gstreamer-GstMemory.html#gst-allocator-find"/>
-    <keyword type="function" name="gst_allocator_register ()" link="gstreamer-GstMemory.html#gst-allocator-register"/>
-    <keyword type="function" name="gst_allocator_set_default ()" link="gstreamer-GstMemory.html#gst-allocator-set-default"/>
-    <keyword type="function" name="gst_allocation_params_init ()" link="gstreamer-GstMemory.html#gst-allocation-params-init"/>
-    <keyword type="function" name="gst_allocation_params_copy ()" link="gstreamer-GstMemory.html#gst-allocation-params-copy"/>
-    <keyword type="function" name="gst_allocation_params_free ()" link="gstreamer-GstMemory.html#gst-allocation-params-free"/>
-    <keyword type="function" name="gst_allocator_alloc ()" link="gstreamer-GstMemory.html#gst-allocator-alloc"/>
-    <keyword type="function" name="gst_memory_new_wrapped ()" link="gstreamer-GstMemory.html#gst-memory-new-wrapped"/>
+    <keyword type="function" name="gst_memory_init ()" link="gstreamer-GstMemory.html#gst-memory-init"/>
     <keyword type="function" name="gst_memory_ref ()" link="gstreamer-GstMemory.html#gst-memory-ref"/>
     <keyword type="function" name="gst_memory_unref ()" link="gstreamer-GstMemory.html#gst-memory-unref"/>
-    <keyword type="function" name="gst_memory_is_exclusive ()" link="gstreamer-GstMemory.html#gst-memory-is-exclusive"/>
     <keyword type="function" name="gst_memory_get_sizes ()" link="gstreamer-GstMemory.html#gst-memory-get-sizes"/>
     <keyword type="function" name="gst_memory_resize ()" link="gstreamer-GstMemory.html#gst-memory-resize"/>
+    <keyword type="macro" name="gst_memory_lock()" link="gstreamer-GstMemory.html#gst-memory-lock"/>
+    <keyword type="macro" name="gst_memory_unlock()" link="gstreamer-GstMemory.html#gst-memory-unlock"/>
+    <keyword type="macro" name="gst_memory_is_writable()" link="gstreamer-GstMemory.html#gst-memory-is-writable"/>
     <keyword type="function" name="gst_memory_make_mapped ()" link="gstreamer-GstMemory.html#gst-memory-make-mapped"/>
     <keyword type="function" name="gst_memory_map ()" link="gstreamer-GstMemory.html#gst-memory-map"/>
     <keyword type="function" name="gst_memory_unmap ()" link="gstreamer-GstMemory.html#gst-memory-unmap"/>
@@ -771,11 +771,11 @@
     <keyword type="struct" name="struct GstMessage" link="gstreamer-GstMessage.html#GstMessage"/>
     <keyword type="enum" name="enum GstMessageType" link="gstreamer-GstMessage.html#GstMessageType"/>
     <keyword type="macro" name="GST_MESSAGE_SRC()" link="gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS"/>
-    <keyword type="macro" name="GST_MESSAGE_SRC_NAME()" link="gstreamer-GstMessage.html#GST-MESSAGE-SRC-NAME:CAPS" since="0.10.24"/>
+    <keyword type="macro" name="GST_MESSAGE_SRC_NAME()" link="gstreamer-GstMessage.html#GST-MESSAGE-SRC-NAME:CAPS"/>
     <keyword type="macro" name="GST_MESSAGE_TIMESTAMP()" link="gstreamer-GstMessage.html#GST-MESSAGE-TIMESTAMP:CAPS"/>
     <keyword type="macro" name="GST_MESSAGE_SEQNUM()" link="gstreamer-GstMessage.html#GST-MESSAGE-SEQNUM:CAPS"/>
     <keyword type="macro" name="GST_MESSAGE_TYPE()" link="gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS"/>
-    <keyword type="macro" name="GST_MESSAGE_TYPE_NAME()" link="gstreamer-GstMessage.html#GST-MESSAGE-TYPE-NAME:CAPS" since="0.10.4"/>
+    <keyword type="macro" name="GST_MESSAGE_TYPE_NAME()" link="gstreamer-GstMessage.html#GST-MESSAGE-TYPE-NAME:CAPS"/>
     <keyword type="function" name="gst_message_type_to_quark ()" link="gstreamer-GstMessage.html#gst-message-type-to-quark"/>
     <keyword type="function" name="gst_message_type_get_name ()" link="gstreamer-GstMessage.html#gst-message-type-get-name"/>
     <keyword type="function" name="gst_message_ref ()" link="gstreamer-GstMessage.html#gst-message-ref"/>
@@ -783,9 +783,9 @@
     <keyword type="function" name="gst_message_copy ()" link="gstreamer-GstMessage.html#gst-message-copy"/>
     <keyword type="function" name="gst_message_get_structure ()" link="gstreamer-GstMessage.html#gst-message-get-structure"/>
     <keyword type="macro" name="gst_message_make_writable()" link="gstreamer-GstMessage.html#gst-message-make-writable"/>
-    <keyword type="function" name="gst_message_get_seqnum ()" link="gstreamer-GstMessage.html#gst-message-get-seqnum" since="0.10.22"/>
-    <keyword type="function" name="gst_message_set_seqnum ()" link="gstreamer-GstMessage.html#gst-message-set-seqnum" since="0.10.22"/>
-    <keyword type="function" name="gst_message_has_name ()" link="gstreamer-GstMessage.html#gst-message-has-name" since="0.10.20"/>
+    <keyword type="function" name="gst_message_get_seqnum ()" link="gstreamer-GstMessage.html#gst-message-get-seqnum"/>
+    <keyword type="function" name="gst_message_set_seqnum ()" link="gstreamer-GstMessage.html#gst-message-set-seqnum"/>
+    <keyword type="function" name="gst_message_has_name ()" link="gstreamer-GstMessage.html#gst-message-has-name"/>
     <keyword type="macro" name="gst_message_is_writable()" link="gstreamer-GstMessage.html#gst-message-is-writable"/>
     <keyword type="function" name="gst_message_replace ()" link="gstreamer-GstMessage.html#gst-message-replace"/>
     <keyword type="function" name="gst_message_new_eos ()" link="gstreamer-GstMessage.html#gst-message-new-eos"/>
@@ -793,19 +793,19 @@
     <keyword type="function" name="gst_message_parse_error ()" link="gstreamer-GstMessage.html#gst-message-parse-error"/>
     <keyword type="function" name="gst_message_new_warning ()" link="gstreamer-GstMessage.html#gst-message-new-warning"/>
     <keyword type="function" name="gst_message_parse_warning ()" link="gstreamer-GstMessage.html#gst-message-parse-warning"/>
-    <keyword type="function" name="gst_message_new_info ()" link="gstreamer-GstMessage.html#gst-message-new-info" since="0.10.12"/>
-    <keyword type="function" name="gst_message_parse_info ()" link="gstreamer-GstMessage.html#gst-message-parse-info" since="0.10.12"/>
+    <keyword type="function" name="gst_message_new_info ()" link="gstreamer-GstMessage.html#gst-message-new-info"/>
+    <keyword type="function" name="gst_message_parse_info ()" link="gstreamer-GstMessage.html#gst-message-parse-info"/>
     <keyword type="function" name="gst_message_new_tag ()" link="gstreamer-GstMessage.html#gst-message-new-tag"/>
     <keyword type="function" name="gst_message_parse_tag ()" link="gstreamer-GstMessage.html#gst-message-parse-tag"/>
-    <keyword type="function" name="gst_message_new_buffering ()" link="gstreamer-GstMessage.html#gst-message-new-buffering" since="0.10.11"/>
-    <keyword type="function" name="gst_message_parse_buffering ()" link="gstreamer-GstMessage.html#gst-message-parse-buffering" since="0.10.11"/>
-    <keyword type="function" name="gst_message_set_buffering_stats ()" link="gstreamer-GstMessage.html#gst-message-set-buffering-stats" since="0.10.20"/>
-    <keyword type="function" name="gst_message_parse_buffering_stats ()" link="gstreamer-GstMessage.html#gst-message-parse-buffering-stats" since="0.10.20"/>
+    <keyword type="function" name="gst_message_new_buffering ()" link="gstreamer-GstMessage.html#gst-message-new-buffering"/>
+    <keyword type="function" name="gst_message_parse_buffering ()" link="gstreamer-GstMessage.html#gst-message-parse-buffering"/>
+    <keyword type="function" name="gst_message_set_buffering_stats ()" link="gstreamer-GstMessage.html#gst-message-set-buffering-stats"/>
+    <keyword type="function" name="gst_message_parse_buffering_stats ()" link="gstreamer-GstMessage.html#gst-message-parse-buffering-stats"/>
     <keyword type="function" name="gst_message_new_state_changed ()" link="gstreamer-GstMessage.html#gst-message-new-state-changed"/>
     <keyword type="function" name="gst_message_parse_state_changed ()" link="gstreamer-GstMessage.html#gst-message-parse-state-changed"/>
     <keyword type="function" name="gst_message_new_state_dirty ()" link="gstreamer-GstMessage.html#gst-message-new-state-dirty"/>
-    <keyword type="function" name="gst_message_new_step_done ()" link="gstreamer-GstMessage.html#gst-message-new-step-done" since="0.10.24"/>
-    <keyword type="function" name="gst_message_parse_step_done ()" link="gstreamer-GstMessage.html#gst-message-parse-step-done" since="0.10.24"/>
+    <keyword type="function" name="gst_message_new_step_done ()" link="gstreamer-GstMessage.html#gst-message-new-step-done"/>
+    <keyword type="function" name="gst_message_parse_step_done ()" link="gstreamer-GstMessage.html#gst-message-parse-step-done"/>
     <keyword type="function" name="gst_message_new_clock_provide ()" link="gstreamer-GstMessage.html#gst-message-new-clock-provide"/>
     <keyword type="function" name="gst_message_parse_clock_provide ()" link="gstreamer-GstMessage.html#gst-message-parse-clock-provide"/>
     <keyword type="function" name="gst_message_new_clock_lost ()" link="gstreamer-GstMessage.html#gst-message-new-clock-lost"/>
@@ -821,33 +821,35 @@
     <keyword type="function" name="gst_message_parse_segment_done ()" link="gstreamer-GstMessage.html#gst-message-parse-segment-done"/>
     <keyword type="function" name="gst_message_new_duration ()" link="gstreamer-GstMessage.html#gst-message-new-duration"/>
     <keyword type="function" name="gst_message_parse_duration ()" link="gstreamer-GstMessage.html#gst-message-parse-duration"/>
-    <keyword type="function" name="gst_message_new_latency ()" link="gstreamer-GstMessage.html#gst-message-new-latency" since="0.10.12"/>
+    <keyword type="function" name="gst_message_new_latency ()" link="gstreamer-GstMessage.html#gst-message-new-latency"/>
     <keyword type="function" name="gst_message_new_async_start ()" link="gstreamer-GstMessage.html#gst-message-new-async-start"/>
     <keyword type="function" name="gst_message_new_async_done ()" link="gstreamer-GstMessage.html#gst-message-new-async-done"/>
     <keyword type="function" name="gst_message_parse_async_done ()" link="gstreamer-GstMessage.html#gst-message-parse-async-done"/>
-    <keyword type="function" name="gst_message_new_step_start ()" link="gstreamer-GstMessage.html#gst-message-new-step-start" since="0.10.24"/>
-    <keyword type="function" name="gst_message_parse_step_start ()" link="gstreamer-GstMessage.html#gst-message-parse-step-start" since="0.10.24"/>
-    <keyword type="function" name="gst_message_new_qos ()" link="gstreamer-GstMessage.html#gst-message-new-qos" since="0.10.29"/>
-    <keyword type="function" name="gst_message_set_qos_values ()" link="gstreamer-GstMessage.html#gst-message-set-qos-values" since="0.10.29"/>
-    <keyword type="function" name="gst_message_set_qos_stats ()" link="gstreamer-GstMessage.html#gst-message-set-qos-stats" since="0.10.29"/>
-    <keyword type="function" name="gst_message_parse_qos ()" link="gstreamer-GstMessage.html#gst-message-parse-qos" since="0.10.29"/>
-    <keyword type="function" name="gst_message_parse_qos_values ()" link="gstreamer-GstMessage.html#gst-message-parse-qos-values" since="0.10.29"/>
-    <keyword type="function" name="gst_message_parse_qos_stats ()" link="gstreamer-GstMessage.html#gst-message-parse-qos-stats" since="0.10.29"/>
-    <keyword type="function" name="gst_message_new_toc ()" link="gstreamer-GstMessage.html#gst-message-new-toc" since="0.10.37"/>
-    <keyword type="function" name="gst_message_parse_toc ()" link="gstreamer-GstMessage.html#gst-message-parse-toc" since="0.10.37"/>
-    <keyword type="enum" name="enum GstStructureChangeType" link="gstreamer-GstMessage.html#GstStructureChangeType" since="0.10.22"/>
-    <keyword type="function" name="gst_message_new_structure_change ()" link="gstreamer-GstMessage.html#gst-message-new-structure-change" since="0.10.22."/>
-    <keyword type="function" name="gst_message_parse_structure_change ()" link="gstreamer-GstMessage.html#gst-message-parse-structure-change" since="0.10.22"/>
-    <keyword type="function" name="gst_message_new_request_state ()" link="gstreamer-GstMessage.html#gst-message-new-request-state" since="0.10.23"/>
-    <keyword type="function" name="gst_message_parse_request_state ()" link="gstreamer-GstMessage.html#gst-message-parse-request-state" since="0.10.23"/>
-    <keyword type="enum" name="enum GstStreamStatusType" link="gstreamer-GstMessage.html#GstStreamStatusType" since="0.10.24"/>
-    <keyword type="function" name="gst_message_new_stream_status ()" link="gstreamer-GstMessage.html#gst-message-new-stream-status" since="0.10.24."/>
-    <keyword type="function" name="gst_message_parse_stream_status ()" link="gstreamer-GstMessage.html#gst-message-parse-stream-status" since="0.10.24."/>
-    <keyword type="function" name="gst_message_set_stream_status_object ()" link="gstreamer-GstMessage.html#gst-message-set-stream-status-object" since="0.10.24"/>
-    <keyword type="function" name="gst_message_get_stream_status_object ()" link="gstreamer-GstMessage.html#gst-message-get-stream-status-object" since="0.10.24"/>
-    <keyword type="enum" name="enum GstProgressType" link="gstreamer-GstMessage.html#GstProgressType" since="0.10.33"/>
-    <keyword type="function" name="gst_message_new_progress ()" link="gstreamer-GstMessage.html#gst-message-new-progress" since="0.10.33"/>
-    <keyword type="function" name="gst_message_parse_progress ()" link="gstreamer-GstMessage.html#gst-message-parse-progress" since="0.10.33"/>
+    <keyword type="function" name="gst_message_new_step_start ()" link="gstreamer-GstMessage.html#gst-message-new-step-start"/>
+    <keyword type="function" name="gst_message_parse_step_start ()" link="gstreamer-GstMessage.html#gst-message-parse-step-start"/>
+    <keyword type="function" name="gst_message_new_qos ()" link="gstreamer-GstMessage.html#gst-message-new-qos"/>
+    <keyword type="function" name="gst_message_set_qos_values ()" link="gstreamer-GstMessage.html#gst-message-set-qos-values"/>
+    <keyword type="function" name="gst_message_set_qos_stats ()" link="gstreamer-GstMessage.html#gst-message-set-qos-stats"/>
+    <keyword type="function" name="gst_message_parse_qos ()" link="gstreamer-GstMessage.html#gst-message-parse-qos"/>
+    <keyword type="function" name="gst_message_parse_qos_values ()" link="gstreamer-GstMessage.html#gst-message-parse-qos-values"/>
+    <keyword type="function" name="gst_message_parse_qos_stats ()" link="gstreamer-GstMessage.html#gst-message-parse-qos-stats"/>
+    <keyword type="function" name="gst_message_new_toc ()" link="gstreamer-GstMessage.html#gst-message-new-toc"/>
+    <keyword type="function" name="gst_message_parse_toc ()" link="gstreamer-GstMessage.html#gst-message-parse-toc"/>
+    <keyword type="function" name="gst_message_new_reset_time ()" link="gstreamer-GstMessage.html#gst-message-new-reset-time"/>
+    <keyword type="function" name="gst_message_parse_reset_time ()" link="gstreamer-GstMessage.html#gst-message-parse-reset-time"/>
+    <keyword type="enum" name="enum GstStructureChangeType" link="gstreamer-GstMessage.html#GstStructureChangeType"/>
+    <keyword type="function" name="gst_message_new_structure_change ()" link="gstreamer-GstMessage.html#gst-message-new-structure-change"/>
+    <keyword type="function" name="gst_message_parse_structure_change ()" link="gstreamer-GstMessage.html#gst-message-parse-structure-change"/>
+    <keyword type="function" name="gst_message_new_request_state ()" link="gstreamer-GstMessage.html#gst-message-new-request-state"/>
+    <keyword type="function" name="gst_message_parse_request_state ()" link="gstreamer-GstMessage.html#gst-message-parse-request-state"/>
+    <keyword type="enum" name="enum GstStreamStatusType" link="gstreamer-GstMessage.html#GstStreamStatusType"/>
+    <keyword type="function" name="gst_message_new_stream_status ()" link="gstreamer-GstMessage.html#gst-message-new-stream-status"/>
+    <keyword type="function" name="gst_message_parse_stream_status ()" link="gstreamer-GstMessage.html#gst-message-parse-stream-status"/>
+    <keyword type="function" name="gst_message_set_stream_status_object ()" link="gstreamer-GstMessage.html#gst-message-set-stream-status-object"/>
+    <keyword type="function" name="gst_message_get_stream_status_object ()" link="gstreamer-GstMessage.html#gst-message-get-stream-status-object"/>
+    <keyword type="enum" name="enum GstProgressType" link="gstreamer-GstMessage.html#GstProgressType"/>
+    <keyword type="function" name="gst_message_new_progress ()" link="gstreamer-GstMessage.html#gst-message-new-progress"/>
+    <keyword type="function" name="gst_message_parse_progress ()" link="gstreamer-GstMessage.html#gst-message-parse-progress"/>
     <keyword type="struct" name="struct GstMeta" link="gstreamer-GstMeta.html#GstMeta"/>
     <keyword type="enum" name="enum GstMetaFlags" link="gstreamer-GstMeta.html#GstMetaFlags"/>
     <keyword type="macro" name="GST_META_FLAGS()" link="gstreamer-GstMeta.html#GST-META-FLAGS:CAPS"/>
@@ -866,32 +868,39 @@
     <keyword type="function" name="gst_meta_register ()" link="gstreamer-GstMeta.html#gst-meta-register"/>
     <keyword type="function" name="gst_meta_get_info ()" link="gstreamer-GstMeta.html#gst-meta-get-info"/>
     <keyword type="struct" name="struct GstMiniObject" link="gstreamer-GstMiniObject.html#GstMiniObject"/>
-    <keyword type="enum" name="enum GstMiniObjectFlags" link="gstreamer-GstMiniObject.html#GstMiniObjectFlags"/>
     <keyword type="function" name="GstMiniObjectCopyFunction ()" link="gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction"/>
     <keyword type="function" name="GstMiniObjectDisposeFunction ()" link="gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction"/>
     <keyword type="function" name="GstMiniObjectFreeFunction ()" link="gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction"/>
-    <keyword type="function" name="GstMiniObjectWeakNotify ()" link="gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify" since="0.10.35"/>
+    <keyword type="function" name="GstMiniObjectNotify ()" link="gstreamer-GstMiniObject.html#GstMiniObjectNotify"/>
     <keyword type="macro" name="GST_MINI_OBJECT_TYPE()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-TYPE:CAPS"/>
+    <keyword type="enum" name="enum GstMiniObjectFlags" link="gstreamer-GstMiniObject.html#GstMiniObjectFlags"/>
     <keyword type="macro" name="GST_MINI_OBJECT_FLAGS()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAGS:CAPS"/>
     <keyword type="macro" name="GST_MINI_OBJECT_FLAG_IS_SET()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-IS-SET:CAPS"/>
     <keyword type="macro" name="GST_MINI_OBJECT_FLAG_SET()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-SET:CAPS"/>
     <keyword type="macro" name="GST_MINI_OBJECT_FLAG_UNSET()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-UNSET:CAPS"/>
+    <keyword type="macro" name="GST_MINI_OBJECT_IS_LOCKABLE()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-IS-LOCKABLE:CAPS"/>
+    <keyword type="enum" name="enum GstLockFlags" link="gstreamer-GstMiniObject.html#GstLockFlags"/>
+    <keyword type="macro" name="GST_LOCK_FLAG_READWRITE" link="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-READWRITE:CAPS"/>
     <keyword type="macro" name="GST_MINI_OBJECT_REFCOUNT()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT:CAPS"/>
     <keyword type="macro" name="GST_MINI_OBJECT_REFCOUNT_VALUE()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS"/>
-    <keyword type="macro" name="GST_MINI_OBJECT_SIZE()" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-SIZE:CAPS"/>
     <keyword type="macro" name="GST_DEFINE_MINI_OBJECT_TYPE()" link="gstreamer-GstMiniObject.html#GST-DEFINE-MINI-OBJECT-TYPE:CAPS"/>
     <keyword type="function" name="gst_mini_object_init ()" link="gstreamer-GstMiniObject.html#gst-mini-object-init"/>
-    <keyword type="function" name="gst_mini_object_copy ()" link="gstreamer-GstMiniObject.html#gst-mini-object-copy"/>
-    <keyword type="function" name="gst_mini_object_is_writable ()" link="gstreamer-GstMiniObject.html#gst-mini-object-is-writable"/>
-    <keyword type="function" name="gst_mini_object_make_writable ()" link="gstreamer-GstMiniObject.html#gst-mini-object-make-writable"/>
     <keyword type="function" name="gst_mini_object_ref ()" link="gstreamer-GstMiniObject.html#gst-mini-object-ref"/>
     <keyword type="function" name="gst_mini_object_unref ()" link="gstreamer-GstMiniObject.html#gst-mini-object-unref"/>
-    <keyword type="function" name="gst_mini_object_weak_ref ()" link="gstreamer-GstMiniObject.html#gst-mini-object-weak-ref" since="0.10.35"/>
-    <keyword type="function" name="gst_mini_object_weak_unref ()" link="gstreamer-GstMiniObject.html#gst-mini-object-weak-unref" since="0.10.35"/>
+    <keyword type="function" name="gst_mini_object_weak_ref ()" link="gstreamer-GstMiniObject.html#gst-mini-object-weak-ref"/>
+    <keyword type="function" name="gst_mini_object_weak_unref ()" link="gstreamer-GstMiniObject.html#gst-mini-object-weak-unref"/>
+    <keyword type="function" name="gst_mini_object_lock ()" link="gstreamer-GstMiniObject.html#gst-mini-object-lock"/>
+    <keyword type="function" name="gst_mini_object_unlock ()" link="gstreamer-GstMiniObject.html#gst-mini-object-unlock"/>
+    <keyword type="function" name="gst_mini_object_is_writable ()" link="gstreamer-GstMiniObject.html#gst-mini-object-is-writable"/>
+    <keyword type="function" name="gst_mini_object_make_writable ()" link="gstreamer-GstMiniObject.html#gst-mini-object-make-writable"/>
+    <keyword type="function" name="gst_mini_object_copy ()" link="gstreamer-GstMiniObject.html#gst-mini-object-copy"/>
+    <keyword type="function" name="gst_mini_object_set_qdata ()" link="gstreamer-GstMiniObject.html#gst-mini-object-set-qdata"/>
+    <keyword type="function" name="gst_mini_object_get_qdata ()" link="gstreamer-GstMiniObject.html#gst-mini-object-get-qdata"/>
+    <keyword type="function" name="gst_mini_object_steal_qdata ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal-qdata"/>
     <keyword type="function" name="gst_mini_object_replace ()" link="gstreamer-GstMiniObject.html#gst-mini-object-replace"/>
-    <keyword type="function" name="gst_mini_object_steal ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal"/>
     <keyword type="function" name="gst_mini_object_take ()" link="gstreamer-GstMiniObject.html#gst-mini-object-take"/>
-    <keyword type="" name="controlled properties" link="GstObject.html#idp27569216"/>
+    <keyword type="function" name="gst_mini_object_steal ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal"/>
+    <keyword type="" name="controlled properties" link="GstObject.html#idp29641840"/>
     <keyword type="struct" name="struct GstObject" link="GstObject.html#GstObject-struct"/>
     <keyword type="struct" name="struct GstObjectClass" link="GstObject.html#GstObjectClass"/>
     <keyword type="enum" name="enum GstObjectFlags" link="GstObject.html#GstObjectFlags"/>
@@ -943,8 +952,8 @@
     <keyword type="enum" name="enum GstPadLinkReturn" link="GstPad.html#GstPadLinkReturn"/>
     <keyword type="macro" name="GST_PAD_LINK_FAILED()" link="GstPad.html#GST-PAD-LINK-FAILED:CAPS"/>
     <keyword type="macro" name="GST_PAD_LINK_SUCCESSFUL()" link="GstPad.html#GST-PAD-LINK-SUCCESSFUL:CAPS"/>
-    <keyword type="enum" name="enum GstPadLinkCheck" link="GstPad.html#GstPadLinkCheck" since="0.10.30"/>
-    <keyword type="macro" name="GST_PAD_LINK_CHECK_DEFAULT" link="GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS" since="0.10.30"/>
+    <keyword type="enum" name="enum GstPadLinkCheck" link="GstPad.html#GstPadLinkCheck"/>
+    <keyword type="macro" name="GST_PAD_LINK_CHECK_DEFAULT" link="GstPad.html#GST-PAD-LINK-CHECK-DEFAULT:CAPS"/>
     <keyword type="enum" name="enum GstFlowReturn" link="GstPad.html#GstFlowReturn"/>
     <keyword type="enum" name="enum GstPadMode" link="GstPad.html#GstPadMode"/>
     <keyword type="macro" name="gst_pad_get_name()" link="GstPad.html#gst-pad-get-name"/>
@@ -953,14 +962,13 @@
     <keyword type="function" name="gst_pad_get_parent_element ()" link="GstPad.html#gst-pad-get-parent-element"/>
     <keyword type="function" name="gst_pad_get_pad_template ()" link="GstPad.html#gst-pad-get-pad-template"/>
     <keyword type="function" name="gst_pad_link ()" link="GstPad.html#gst-pad-link"/>
-    <keyword type="function" name="gst_pad_link_full ()" link="GstPad.html#gst-pad-link-full" since="0.10.30"/>
+    <keyword type="function" name="gst_pad_link_full ()" link="GstPad.html#gst-pad-link-full"/>
     <keyword type="function" name="gst_pad_unlink ()" link="GstPad.html#gst-pad-unlink"/>
     <keyword type="function" name="gst_pad_is_linked ()" link="GstPad.html#gst-pad-is-linked"/>
     <keyword type="function" name="gst_pad_can_link ()" link="GstPad.html#gst-pad-can-link"/>
     <keyword type="function" name="gst_pad_get_allowed_caps ()" link="GstPad.html#gst-pad-get-allowed-caps"/>
     <keyword type="function" name="gst_pad_get_current_caps ()" link="GstPad.html#gst-pad-get-current-caps"/>
     <keyword type="function" name="gst_pad_get_pad_template_caps ()" link="GstPad.html#gst-pad-get-pad-template-caps"/>
-    <keyword type="function" name="gst_pad_set_caps ()" link="GstPad.html#gst-pad-set-caps"/>
     <keyword type="function" name="gst_pad_get_peer ()" link="GstPad.html#gst-pad-get-peer"/>
     <keyword type="function" name="gst_pad_use_fixed_caps ()" link="GstPad.html#gst-pad-use-fixed-caps"/>
     <keyword type="function" name="gst_pad_has_current_caps ()" link="GstPad.html#gst-pad-has-current-caps"/>
@@ -994,7 +1002,7 @@
     <keyword type="function" name="gst_pad_add_probe ()" link="GstPad.html#gst-pad-add-probe"/>
     <keyword type="function" name="gst_pad_remove_probe ()" link="GstPad.html#gst-pad-remove-probe"/>
     <keyword type="function" name="gst_pad_is_blocked ()" link="GstPad.html#gst-pad-is-blocked"/>
-    <keyword type="function" name="gst_pad_is_blocking ()" link="GstPad.html#gst-pad-is-blocking" since="0.10.11"/>
+    <keyword type="function" name="gst_pad_is_blocking ()" link="GstPad.html#gst-pad-is-blocking"/>
     <keyword type="function" name="gst_pad_get_offset ()" link="GstPad.html#gst-pad-get-offset"/>
     <keyword type="function" name="gst_pad_set_offset ()" link="GstPad.html#gst-pad-set-offset"/>
     <keyword type="function" name="gst_pad_new ()" link="GstPad.html#gst-pad-new"/>
@@ -1004,7 +1012,7 @@
     <keyword type="function" name="gst_pad_set_chain_function_full ()" link="GstPad.html#gst-pad-set-chain-function-full"/>
     <keyword type="function" name="GstPadChainFunction ()" link="GstPad.html#GstPadChainFunction"/>
     <keyword type="macro" name="gst_pad_set_chain_list_function()" link="GstPad.html#gst-pad-set-chain-list-function"/>
-    <keyword type="function" name="gst_pad_set_chain_list_function_full ()" link="GstPad.html#gst-pad-set-chain-list-function-full" since="0.10.24"/>
+    <keyword type="function" name="gst_pad_set_chain_list_function_full ()" link="GstPad.html#gst-pad-set-chain-list-function-full"/>
     <keyword type="function" name="GstPadChainListFunction ()" link="GstPad.html#GstPadChainListFunction"/>
     <keyword type="function" name="gst_pad_get_range ()" link="GstPad.html#gst-pad-get-range"/>
     <keyword type="macro" name="gst_pad_set_getrange_function()" link="GstPad.html#gst-pad-set-getrange-function"/>
@@ -1031,13 +1039,13 @@
     <keyword type="function" name="gst_pad_mark_reconfigure ()" link="GstPad.html#gst-pad-mark-reconfigure"/>
     <keyword type="function" name="gst_pad_push ()" link="GstPad.html#gst-pad-push"/>
     <keyword type="function" name="gst_pad_push_event ()" link="GstPad.html#gst-pad-push-event"/>
-    <keyword type="function" name="gst_pad_push_list ()" link="GstPad.html#gst-pad-push-list" since="0.10.24"/>
+    <keyword type="function" name="gst_pad_push_list ()" link="GstPad.html#gst-pad-push-list"/>
     <keyword type="function" name="gst_pad_pull_range ()" link="GstPad.html#gst-pad-pull-range"/>
     <keyword type="function" name="gst_pad_activate_mode ()" link="GstPad.html#gst-pad-activate-mode"/>
     <keyword type="function" name="gst_pad_send_event ()" link="GstPad.html#gst-pad-send-event"/>
     <keyword type="function" name="gst_pad_event_default ()" link="GstPad.html#gst-pad-event-default"/>
     <keyword type="function" name="gst_pad_query ()" link="GstPad.html#gst-pad-query"/>
-    <keyword type="function" name="gst_pad_peer_query ()" link="GstPad.html#gst-pad-peer-query" since="0.10.15"/>
+    <keyword type="function" name="gst_pad_peer_query ()" link="GstPad.html#gst-pad-peer-query"/>
     <keyword type="function" name="gst_pad_query_default ()" link="GstPad.html#gst-pad-query-default"/>
     <keyword type="function" name="gst_pad_query_position ()" link="GstPad.html#gst-pad-query-position"/>
     <keyword type="function" name="gst_pad_query_duration ()" link="GstPad.html#gst-pad-query-duration"/>
@@ -1053,16 +1061,17 @@
     <keyword type="function" name="gst_pad_set_query_function_full ()" link="GstPad.html#gst-pad-set-query-function-full"/>
     <keyword type="function" name="GstPadQueryFunction ()" link="GstPad.html#GstPadQueryFunction"/>
     <keyword type="macro" name="gst_pad_set_iterate_internal_links_function()" link="GstPad.html#gst-pad-set-iterate-internal-links-function"/>
-    <keyword type="function" name="gst_pad_set_iterate_internal_links_function_full ()" link="GstPad.html#gst-pad-set-iterate-internal-links-function-full" since="0.10.21"/>
+    <keyword type="function" name="gst_pad_set_iterate_internal_links_function_full ()" link="GstPad.html#gst-pad-set-iterate-internal-links-function-full"/>
     <keyword type="function" name="GstPadIterIntLinkFunction ()" link="GstPad.html#GstPadIterIntLinkFunction"/>
-    <keyword type="function" name="gst_pad_iterate_internal_links ()" link="GstPad.html#gst-pad-iterate-internal-links" since="0.10.21"/>
-    <keyword type="function" name="gst_pad_iterate_internal_links_default ()" link="GstPad.html#gst-pad-iterate-internal-links-default" since="0.10.21"/>
+    <keyword type="function" name="gst_pad_iterate_internal_links ()" link="GstPad.html#gst-pad-iterate-internal-links"/>
+    <keyword type="function" name="gst_pad_iterate_internal_links_default ()" link="GstPad.html#gst-pad-iterate-internal-links-default"/>
     <keyword type="function" name="gst_pad_set_element_private ()" link="GstPad.html#gst-pad-set-element-private"/>
     <keyword type="function" name="gst_pad_get_element_private ()" link="GstPad.html#gst-pad-get-element-private"/>
+    <keyword type="function" name="gst_pad_create_stream_id ()" link="GstPad.html#gst-pad-create-stream-id"/>
     <keyword type="function" name="GstPadForwardFunction ()" link="GstPad.html#GstPadForwardFunction"/>
     <keyword type="function" name="gst_pad_forward ()" link="GstPad.html#gst-pad-forward"/>
     <keyword type="function" name="gst_pad_chain ()" link="GstPad.html#gst-pad-chain"/>
-    <keyword type="function" name="gst_pad_chain_list ()" link="GstPad.html#gst-pad-chain-list" since="0.10.24"/>
+    <keyword type="function" name="gst_pad_chain_list ()" link="GstPad.html#gst-pad-chain-list"/>
     <keyword type="function" name="gst_pad_start_task ()" link="GstPad.html#gst-pad-start-task"/>
     <keyword type="function" name="gst_pad_pause_task ()" link="GstPad.html#gst-pad-pause-task"/>
     <keyword type="function" name="gst_pad_stop_task ()" link="GstPad.html#gst-pad-stop-task"/>
@@ -1097,25 +1106,25 @@
     <keyword type="signal" name="The &quot;pad-created&quot; signal" link="GstPadTemplate.html#GstPadTemplate-pad-created"/>
     <keyword type="macro" name="GST_PARAM_CONTROLLABLE" link="gstreamer-GstParamSpec.html#GST-PARAM-CONTROLLABLE:CAPS"/>
     <keyword type="macro" name="GST_PARAM_USER_SHIFT" link="gstreamer-GstParamSpec.html#GST-PARAM-USER-SHIFT:CAPS"/>
-    <keyword type="macro" name="GST_PARAM_MUTABLE_PAUSED" link="gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PAUSED:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_PARAM_MUTABLE_PLAYING" link="gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PLAYING:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_PARAM_MUTABLE_READY" link="gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-READY:CAPS" since="0.10.23"/>
+    <keyword type="macro" name="GST_PARAM_MUTABLE_PAUSED" link="gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PAUSED:CAPS"/>
+    <keyword type="macro" name="GST_PARAM_MUTABLE_PLAYING" link="gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-PLAYING:CAPS"/>
+    <keyword type="macro" name="GST_PARAM_MUTABLE_READY" link="gstreamer-GstParamSpec.html#GST-PARAM-MUTABLE-READY:CAPS"/>
     <keyword type="struct" name="struct GstParamSpecFraction" link="gstreamer-GstParamSpec.html#GstParamSpecFraction"/>
-    <keyword type="function" name="gst_param_spec_fraction ()" link="gstreamer-GstParamSpec.html#gst-param-spec-fraction" since="0.10.14"/>
+    <keyword type="function" name="gst_param_spec_fraction ()" link="gstreamer-GstParamSpec.html#gst-param-spec-fraction"/>
     <keyword type="function" name="gst_parse_error_quark ()" link="gstreamer-GstParse.html#gst-parse-error-quark"/>
     <keyword type="macro" name="GST_PARSE_ERROR" link="gstreamer-GstParse.html#GST-PARSE-ERROR:CAPS"/>
     <keyword type="enum" name="enum GstParseError" link="gstreamer-GstParse.html#GstParseError"/>
-    <keyword type="struct" name="GstParseContext" link="gstreamer-GstParse.html#GstParseContext" since="0.10.20"/>
-    <keyword type="enum" name="enum GstParseFlags" link="gstreamer-GstParse.html#GstParseFlags" since="0.10.20"/>
+    <keyword type="struct" name="GstParseContext" link="gstreamer-GstParse.html#GstParseContext"/>
+    <keyword type="enum" name="enum GstParseFlags" link="gstreamer-GstParse.html#GstParseFlags"/>
     <keyword type="function" name="gst_parse_launch ()" link="gstreamer-GstParse.html#gst-parse-launch"/>
-    <keyword type="function" name="gst_parse_launch_full ()" link="gstreamer-GstParse.html#gst-parse-launch-full" since="0.10.20"/>
+    <keyword type="function" name="gst_parse_launch_full ()" link="gstreamer-GstParse.html#gst-parse-launch-full"/>
     <keyword type="function" name="gst_parse_launchv ()" link="gstreamer-GstParse.html#gst-parse-launchv"/>
-    <keyword type="function" name="gst_parse_launchv_full ()" link="gstreamer-GstParse.html#gst-parse-launchv-full" since="0.10.20"/>
-    <keyword type="function" name="gst_parse_bin_from_description ()" link="gstreamer-GstParse.html#gst-parse-bin-from-description" since="0.10.3"/>
-    <keyword type="function" name="gst_parse_bin_from_description_full ()" link="gstreamer-GstParse.html#gst-parse-bin-from-description-full" since="0.10.20"/>
-    <keyword type="function" name="gst_parse_context_new ()" link="gstreamer-GstParse.html#gst-parse-context-new" since="0.10.20"/>
-    <keyword type="function" name="gst_parse_context_free ()" link="gstreamer-GstParse.html#gst-parse-context-free" since="0.10.20"/>
-    <keyword type="function" name="gst_parse_context_get_missing_elements ()" link="gstreamer-GstParse.html#gst-parse-context-get-missing-elements" since="0.10.20"/>
+    <keyword type="function" name="gst_parse_launchv_full ()" link="gstreamer-GstParse.html#gst-parse-launchv-full"/>
+    <keyword type="function" name="gst_parse_bin_from_description ()" link="gstreamer-GstParse.html#gst-parse-bin-from-description"/>
+    <keyword type="function" name="gst_parse_bin_from_description_full ()" link="gstreamer-GstParse.html#gst-parse-bin-from-description-full"/>
+    <keyword type="function" name="gst_parse_context_new ()" link="gstreamer-GstParse.html#gst-parse-context-new"/>
+    <keyword type="function" name="gst_parse_context_free ()" link="gstreamer-GstParse.html#gst-parse-context-free"/>
+    <keyword type="function" name="gst_parse_context_get_missing_elements ()" link="gstreamer-GstParse.html#gst-parse-context-get-missing-elements"/>
     <keyword type="struct" name="struct GstPipeline" link="GstPipeline.html#GstPipeline-struct"/>
     <keyword type="enum" name="enum GstPipelineFlags" link="GstPipeline.html#GstPipelineFlags"/>
     <keyword type="function" name="gst_pipeline_new ()" link="GstPipeline.html#gst-pipeline-new"/>
@@ -1124,10 +1133,10 @@
     <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"/>
-    <keyword type="function" name="gst_pipeline_set_auto_flush_bus ()" link="GstPipeline.html#gst-pipeline-set-auto-flush-bus" since="0.10.4"/>
-    <keyword type="function" name="gst_pipeline_get_auto_flush_bus ()" link="GstPipeline.html#gst-pipeline-get-auto-flush-bus" since="0.10.4"/>
-    <keyword type="function" name="gst_pipeline_set_delay ()" link="GstPipeline.html#gst-pipeline-set-delay" since="0.10.5"/>
-    <keyword type="function" name="gst_pipeline_get_delay ()" link="GstPipeline.html#gst-pipeline-get-delay" since="0.10.5"/>
+    <keyword type="function" name="gst_pipeline_set_auto_flush_bus ()" link="GstPipeline.html#gst-pipeline-set-auto-flush-bus"/>
+    <keyword type="function" name="gst_pipeline_get_auto_flush_bus ()" link="GstPipeline.html#gst-pipeline-get-auto-flush-bus"/>
+    <keyword type="function" name="gst_pipeline_set_delay ()" link="GstPipeline.html#gst-pipeline-set-delay"/>
+    <keyword type="function" name="gst_pipeline_get_delay ()" link="GstPipeline.html#gst-pipeline-get-delay"/>
     <keyword type="property" name="The &quot;auto-flush-bus&quot; property" link="GstPipeline.html#GstPipeline--auto-flush-bus"/>
     <keyword type="property" name="The &quot;delay&quot; property" link="GstPipeline.html#GstPipeline--delay"/>
     <keyword type="function" name="gst_plugin_error_quark ()" link="GstPlugin.html#gst-plugin-error-quark"/>
@@ -1136,7 +1145,7 @@
     <keyword type="struct" name="GstPlugin" link="GstPlugin.html#GstPlugin-struct"/>
     <keyword type="struct" name="struct GstPluginDesc" link="GstPlugin.html#GstPluginDesc"/>
     <keyword type="function" name="GstPluginInitFunc ()" link="GstPlugin.html#GstPluginInitFunc"/>
-    <keyword type="function" name="GstPluginInitFullFunc ()" link="GstPlugin.html#GstPluginInitFullFunc" since="0.10.24"/>
+    <keyword type="function" name="GstPluginInitFullFunc ()" link="GstPlugin.html#GstPluginInitFullFunc"/>
     <keyword type="macro" name="GST_PLUGIN_DEFINE()" link="GstPlugin.html#GST-PLUGIN-DEFINE:CAPS"/>
     <keyword type="macro" name="GST_LICENSE_UNKNOWN" link="GstPlugin.html#GST-LICENSE-UNKNOWN:CAPS"/>
     <keyword type="function" name="GstPluginFilter ()" link="GstPlugin.html#GstPluginFilter"/>
@@ -1150,18 +1159,18 @@
     <keyword type="function" name="gst_plugin_get_version ()" link="GstPlugin.html#gst-plugin-get-version"/>
     <keyword type="function" name="gst_plugin_get_release_date_string ()" link="GstPlugin.html#gst-plugin-get-release-date-string"/>
     <keyword type="function" name="gst_plugin_is_loaded ()" link="GstPlugin.html#gst-plugin-is-loaded"/>
-    <keyword type="function" name="gst_plugin_get_cache_data ()" link="GstPlugin.html#gst-plugin-get-cache-data" since="0.10.24"/>
-    <keyword type="function" name="gst_plugin_set_cache_data ()" link="GstPlugin.html#gst-plugin-set-cache-data" since="0.10.24"/>
+    <keyword type="function" name="gst_plugin_get_cache_data ()" link="GstPlugin.html#gst-plugin-get-cache-data"/>
+    <keyword type="function" name="gst_plugin_set_cache_data ()" link="GstPlugin.html#gst-plugin-set-cache-data"/>
     <keyword type="function" name="gst_plugin_load_file ()" link="GstPlugin.html#gst-plugin-load-file"/>
     <keyword type="function" name="gst_plugin_load ()" link="GstPlugin.html#gst-plugin-load"/>
     <keyword type="function" name="gst_plugin_load_by_name ()" link="GstPlugin.html#gst-plugin-load-by-name"/>
     <keyword type="function" name="gst_plugin_list_free ()" link="GstPlugin.html#gst-plugin-list-free"/>
-    <keyword type="function" name="gst_plugin_register_static ()" link="GstPlugin.html#gst-plugin-register-static" since="0.10.16"/>
-    <keyword type="function" name="gst_plugin_register_static_full ()" link="GstPlugin.html#gst-plugin-register-static-full" since="0.10.24"/>
+    <keyword type="function" name="gst_plugin_register_static ()" link="GstPlugin.html#gst-plugin-register-static"/>
+    <keyword type="function" name="gst_plugin_register_static_full ()" link="GstPlugin.html#gst-plugin-register-static-full"/>
     <keyword type="enum" name="enum GstPluginFlags" link="GstPlugin.html#GstPluginFlags"/>
-    <keyword type="enum" name="enum GstPluginDependencyFlags" link="GstPlugin.html#GstPluginDependencyFlags" since="0.10.22"/>
-    <keyword type="function" name="gst_plugin_add_dependency ()" link="GstPlugin.html#gst-plugin-add-dependency" since="0.10.22"/>
-    <keyword type="function" name="gst_plugin_add_dependency_simple ()" link="GstPlugin.html#gst-plugin-add-dependency-simple" since="0.10.22"/>
+    <keyword type="enum" name="enum GstPluginDependencyFlags" link="GstPlugin.html#GstPluginDependencyFlags"/>
+    <keyword type="function" name="gst_plugin_add_dependency ()" link="GstPlugin.html#gst-plugin-add-dependency"/>
+    <keyword type="function" name="gst_plugin_add_dependency_simple ()" link="GstPlugin.html#gst-plugin-add-dependency-simple"/>
     <keyword type="struct" name="GstPluginFeature" link="GstPluginFeature.html#GstPluginFeature-struct"/>
     <keyword type="function" name="GstPluginFeatureFilter ()" link="GstPluginFeature.html#GstPluginFeatureFilter"/>
     <keyword type="enum" name="enum GstRank" link="GstPluginFeature.html#GstRank"/>
@@ -1171,53 +1180,53 @@
     <keyword type="macro" name="gst_plugin_feature_get_name()" link="GstPluginFeature.html#gst-plugin-feature-get-name"/>
     <keyword type="function" name="gst_plugin_feature_get_plugin ()" link="GstPluginFeature.html#gst-plugin-feature-get-plugin"/>
     <keyword type="function" name="gst_plugin_feature_load ()" link="GstPluginFeature.html#gst-plugin-feature-load"/>
-    <keyword type="function" name="gst_plugin_feature_list_copy ()" link="GstPluginFeature.html#gst-plugin-feature-list-copy" since="0.10.26"/>
+    <keyword type="function" name="gst_plugin_feature_list_copy ()" link="GstPluginFeature.html#gst-plugin-feature-list-copy"/>
     <keyword type="function" name="gst_plugin_feature_list_free ()" link="GstPluginFeature.html#gst-plugin-feature-list-free"/>
-    <keyword type="macro" name="GST_PLUGIN_FEATURE_LIST_DEBUG()" link="GstPluginFeature.html#GST-PLUGIN-FEATURE-LIST-DEBUG:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_PLUGIN_FEATURE_LIST_DEBUG()" link="GstPluginFeature.html#GST-PLUGIN-FEATURE-LIST-DEBUG:CAPS"/>
     <keyword type="function" name="gst_plugin_feature_check_version ()" link="GstPluginFeature.html#gst-plugin-feature-check-version"/>
-    <keyword type="function" name="gst_plugin_feature_rank_compare_func ()" link="GstPluginFeature.html#gst-plugin-feature-rank-compare-func" since="0.10.31"/>
+    <keyword type="function" name="gst_plugin_feature_rank_compare_func ()" link="GstPluginFeature.html#gst-plugin-feature-rank-compare-func"/>
     <keyword type="struct" name="GstPoll" link="gstreamer-GstPoll.html#GstPoll"/>
     <keyword type="struct" name="GstPollFD" link="gstreamer-GstPoll.html#GstPollFD"/>
-    <keyword type="macro" name="GST_POLL_FD_INIT" link="gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_add_fd ()" link="gstreamer-GstPoll.html#gst-poll-add-fd" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_can_read ()" link="gstreamer-GstPoll.html#gst-poll-fd-can-read" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_can_write ()" link="gstreamer-GstPoll.html#gst-poll-fd-can-write" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_ctl_read ()" link="gstreamer-GstPoll.html#gst-poll-fd-ctl-read" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_ctl_write ()" link="gstreamer-GstPoll.html#gst-poll-fd-ctl-write" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_has_closed ()" link="gstreamer-GstPoll.html#gst-poll-fd-has-closed" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_has_error ()" link="gstreamer-GstPoll.html#gst-poll-fd-has-error" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_ignored ()" link="gstreamer-GstPoll.html#gst-poll-fd-ignored" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_fd_init ()" link="gstreamer-GstPoll.html#gst-poll-fd-init" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_free ()" link="gstreamer-GstPoll.html#gst-poll-free" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_new ()" link="gstreamer-GstPoll.html#gst-poll-new" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_new_timer ()" link="gstreamer-GstPoll.html#gst-poll-new-timer" since="0.10.23"/>
-    <keyword type="function" name="gst_poll_get_read_gpollfd ()" link="gstreamer-GstPoll.html#gst-poll-get-read-gpollfd" since="0.10.32"/>
-    <keyword type="function" name="gst_poll_remove_fd ()" link="gstreamer-GstPoll.html#gst-poll-remove-fd" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_restart ()" link="gstreamer-GstPoll.html#gst-poll-restart" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_set_controllable ()" link="gstreamer-GstPoll.html#gst-poll-set-controllable" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_set_flushing ()" link="gstreamer-GstPoll.html#gst-poll-set-flushing" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_wait ()" link="gstreamer-GstPoll.html#gst-poll-wait" since="0.10.18"/>
-    <keyword type="function" name="gst_poll_read_control ()" link="gstreamer-GstPoll.html#gst-poll-read-control" since="0.10.23"/>
-    <keyword type="function" name="gst_poll_write_control ()" link="gstreamer-GstPoll.html#gst-poll-write-control" since="0.10.23"/>
+    <keyword type="macro" name="GST_POLL_FD_INIT" link="gstreamer-GstPoll.html#GST-POLL-FD-INIT:CAPS"/>
+    <keyword type="function" name="gst_poll_add_fd ()" link="gstreamer-GstPoll.html#gst-poll-add-fd"/>
+    <keyword type="function" name="gst_poll_fd_can_read ()" link="gstreamer-GstPoll.html#gst-poll-fd-can-read"/>
+    <keyword type="function" name="gst_poll_fd_can_write ()" link="gstreamer-GstPoll.html#gst-poll-fd-can-write"/>
+    <keyword type="function" name="gst_poll_fd_ctl_read ()" link="gstreamer-GstPoll.html#gst-poll-fd-ctl-read"/>
+    <keyword type="function" name="gst_poll_fd_ctl_write ()" link="gstreamer-GstPoll.html#gst-poll-fd-ctl-write"/>
+    <keyword type="function" name="gst_poll_fd_has_closed ()" link="gstreamer-GstPoll.html#gst-poll-fd-has-closed"/>
+    <keyword type="function" name="gst_poll_fd_has_error ()" link="gstreamer-GstPoll.html#gst-poll-fd-has-error"/>
+    <keyword type="function" name="gst_poll_fd_ignored ()" link="gstreamer-GstPoll.html#gst-poll-fd-ignored"/>
+    <keyword type="function" name="gst_poll_fd_init ()" link="gstreamer-GstPoll.html#gst-poll-fd-init"/>
+    <keyword type="function" name="gst_poll_free ()" link="gstreamer-GstPoll.html#gst-poll-free"/>
+    <keyword type="function" name="gst_poll_new ()" link="gstreamer-GstPoll.html#gst-poll-new"/>
+    <keyword type="function" name="gst_poll_new_timer ()" link="gstreamer-GstPoll.html#gst-poll-new-timer"/>
+    <keyword type="function" name="gst_poll_get_read_gpollfd ()" link="gstreamer-GstPoll.html#gst-poll-get-read-gpollfd"/>
+    <keyword type="function" name="gst_poll_remove_fd ()" link="gstreamer-GstPoll.html#gst-poll-remove-fd"/>
+    <keyword type="function" name="gst_poll_restart ()" link="gstreamer-GstPoll.html#gst-poll-restart"/>
+    <keyword type="function" name="gst_poll_set_controllable ()" link="gstreamer-GstPoll.html#gst-poll-set-controllable"/>
+    <keyword type="function" name="gst_poll_set_flushing ()" link="gstreamer-GstPoll.html#gst-poll-set-flushing"/>
+    <keyword type="function" name="gst_poll_wait ()" link="gstreamer-GstPoll.html#gst-poll-wait"/>
+    <keyword type="function" name="gst_poll_read_control ()" link="gstreamer-GstPoll.html#gst-poll-read-control"/>
+    <keyword type="function" name="gst_poll_write_control ()" link="gstreamer-GstPoll.html#gst-poll-write-control"/>
     <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_preset_get_preset_names ()" link="GstPreset.html#gst-preset-get-preset-names" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_get_property_names ()" link="GstPreset.html#gst-preset-get-property-names" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_load_preset ()" link="GstPreset.html#gst-preset-load-preset" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_save_preset ()" link="GstPreset.html#gst-preset-save-preset" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_rename_preset ()" link="GstPreset.html#gst-preset-rename-preset" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_delete_preset ()" link="GstPreset.html#gst-preset-delete-preset" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_set_meta ()" link="GstPreset.html#gst-preset-set-meta" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_get_meta ()" link="GstPreset.html#gst-preset-get-meta" since="0.10.20"/>
-    <keyword type="function" name="gst_preset_set_app_dir ()" link="GstPreset.html#gst-preset-set-app-dir" since="0.10.36"/>
-    <keyword type="function" name="gst_preset_get_app_dir ()" link="GstPreset.html#gst-preset-get-app-dir" since="0.10.36"/>
+    <keyword type="function" name="gst_preset_get_preset_names ()" link="GstPreset.html#gst-preset-get-preset-names"/>
+    <keyword type="function" name="gst_preset_get_property_names ()" link="GstPreset.html#gst-preset-get-property-names"/>
+    <keyword type="function" name="gst_preset_load_preset ()" link="GstPreset.html#gst-preset-load-preset"/>
+    <keyword type="function" name="gst_preset_save_preset ()" link="GstPreset.html#gst-preset-save-preset"/>
+    <keyword type="function" name="gst_preset_rename_preset ()" link="GstPreset.html#gst-preset-rename-preset"/>
+    <keyword type="function" name="gst_preset_delete_preset ()" link="GstPreset.html#gst-preset-delete-preset"/>
+    <keyword type="function" name="gst_preset_set_meta ()" link="GstPreset.html#gst-preset-set-meta"/>
+    <keyword type="function" name="gst_preset_get_meta ()" link="GstPreset.html#gst-preset-get-meta"/>
+    <keyword type="function" name="gst_preset_set_app_dir ()" link="GstPreset.html#gst-preset-set-app-dir"/>
+    <keyword type="function" name="gst_preset_get_app_dir ()" link="GstPreset.html#gst-preset-get-app-dir"/>
     <keyword type="struct" name="struct GstQuery" link="gstreamer-GstQuery.html#GstQuery"/>
     <keyword type="enum" name="enum GstQueryTypeFlags" link="gstreamer-GstQuery.html#GstQueryTypeFlags"/>
     <keyword type="macro" name="GST_QUERY_TYPE_BOTH" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-BOTH:CAPS"/>
     <keyword type="macro" name="GST_QUERY_MAKE_TYPE()" link="gstreamer-GstQuery.html#GST-QUERY-MAKE-TYPE:CAPS"/>
     <keyword type="enum" name="enum GstQueryType" link="gstreamer-GstQuery.html#GstQueryType"/>
     <keyword type="macro" name="GST_QUERY_TYPE()" link="gstreamer-GstQuery.html#GST-QUERY-TYPE:CAPS"/>
-    <keyword type="macro" name="GST_QUERY_TYPE_NAME()" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS" since="0.10.4"/>
+    <keyword type="macro" name="GST_QUERY_TYPE_NAME()" link="gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS"/>
     <keyword type="macro" name="GST_QUERY_IS_UPSTREAM()" link="gstreamer-GstQuery.html#GST-QUERY-IS-UPSTREAM:CAPS"/>
     <keyword type="macro" name="GST_QUERY_IS_DOWNSTREAM()" link="gstreamer-GstQuery.html#GST-QUERY-IS-DOWNSTREAM:CAPS"/>
     <keyword type="macro" name="GST_QUERY_IS_SERIALIZED()" link="gstreamer-GstQuery.html#GST-QUERY-IS-SERIALIZED:CAPS"/>
@@ -1242,16 +1251,16 @@
     <keyword type="function" name="gst_query_new_duration ()" link="gstreamer-GstQuery.html#gst-query-new-duration"/>
     <keyword type="function" name="gst_query_set_duration ()" link="gstreamer-GstQuery.html#gst-query-set-duration"/>
     <keyword type="function" name="gst_query_parse_duration ()" link="gstreamer-GstQuery.html#gst-query-parse-duration"/>
-    <keyword type="function" name="gst_query_new_latency ()" link="gstreamer-GstQuery.html#gst-query-new-latency" since="0.10.12"/>
-    <keyword type="function" name="gst_query_parse_latency ()" link="gstreamer-GstQuery.html#gst-query-parse-latency" since="0.10.12"/>
-    <keyword type="function" name="gst_query_set_latency ()" link="gstreamer-GstQuery.html#gst-query-set-latency" since="0.10.12"/>
+    <keyword type="function" name="gst_query_new_latency ()" link="gstreamer-GstQuery.html#gst-query-new-latency"/>
+    <keyword type="function" name="gst_query_parse_latency ()" link="gstreamer-GstQuery.html#gst-query-parse-latency"/>
+    <keyword type="function" name="gst_query_set_latency ()" link="gstreamer-GstQuery.html#gst-query-set-latency"/>
     <keyword type="function" name="gst_query_new_seeking ()" link="gstreamer-GstQuery.html#gst-query-new-seeking"/>
     <keyword type="function" name="gst_query_set_seeking ()" link="gstreamer-GstQuery.html#gst-query-set-seeking"/>
     <keyword type="function" name="gst_query_parse_seeking ()" link="gstreamer-GstQuery.html#gst-query-parse-seeking"/>
-    <keyword type="function" name="gst_query_new_formats ()" link="gstreamer-GstQuery.html#gst-query-new-formats" since="0.10.4"/>
+    <keyword type="function" name="gst_query_new_formats ()" link="gstreamer-GstQuery.html#gst-query-new-formats"/>
     <keyword type="function" name="gst_query_set_formats ()" link="gstreamer-GstQuery.html#gst-query-set-formats"/>
-    <keyword type="function" name="gst_query_set_formatsv ()" link="gstreamer-GstQuery.html#gst-query-set-formatsv" since="0.10.4"/>
-    <keyword type="function" name="gst_query_parse_n_formats ()" link="gstreamer-GstQuery.html#gst-query-parse-n-formats" since="0.10.4"/>
+    <keyword type="function" name="gst_query_set_formatsv ()" link="gstreamer-GstQuery.html#gst-query-set-formatsv"/>
+    <keyword type="function" name="gst_query_parse_n_formats ()" link="gstreamer-GstQuery.html#gst-query-parse-n-formats"/>
     <keyword type="function" name="gst_query_parse_nth_format ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-format"/>
     <keyword type="function" name="gst_query_new_segment ()" link="gstreamer-GstQuery.html#gst-query-new-segment"/>
     <keyword type="function" name="gst_query_set_segment ()" link="gstreamer-GstQuery.html#gst-query-set-segment"/>
@@ -1260,25 +1269,24 @@
     <keyword type="function" name="gst_query_parse_caps ()" link="gstreamer-GstQuery.html#gst-query-parse-caps"/>
     <keyword type="function" name="gst_query_set_caps_result ()" link="gstreamer-GstQuery.html#gst-query-set-caps-result"/>
     <keyword type="function" name="gst_query_parse_caps_result ()" link="gstreamer-GstQuery.html#gst-query-parse-caps-result"/>
-    <keyword type="function" name="gst_query_intersect_caps_result ()" link="gstreamer-GstQuery.html#gst-query-intersect-caps-result"/>
     <keyword type="function" name="gst_query_new_accept_caps ()" link="gstreamer-GstQuery.html#gst-query-new-accept-caps"/>
     <keyword type="function" name="gst_query_parse_accept_caps ()" link="gstreamer-GstQuery.html#gst-query-parse-accept-caps"/>
     <keyword type="function" name="gst_query_set_accept_caps_result ()" link="gstreamer-GstQuery.html#gst-query-set-accept-caps-result"/>
     <keyword type="function" name="gst_query_parse_accept_caps_result ()" link="gstreamer-GstQuery.html#gst-query-parse-accept-caps-result"/>
     <keyword type="enum" name="enum GstBufferingMode" link="gstreamer-GstQuery.html#GstBufferingMode"/>
-    <keyword type="function" name="gst_query_new_buffering ()" link="gstreamer-GstQuery.html#gst-query-new-buffering" since="0.10.20"/>
-    <keyword type="function" name="gst_query_set_buffering_percent ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-percent" since="0.10.20"/>
-    <keyword type="function" name="gst_query_parse_buffering_percent ()" link="gstreamer-GstQuery.html#gst-query-parse-buffering-percent" since="0.10.20"/>
-    <keyword type="function" name="gst_query_set_buffering_stats ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-stats" since="0.10.20"/>
-    <keyword type="function" name="gst_query_parse_buffering_stats ()" link="gstreamer-GstQuery.html#gst-query-parse-buffering-stats" since="0.10.20"/>
-    <keyword type="function" name="gst_query_set_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-range" since="0.10.20"/>
-    <keyword type="function" name="gst_query_parse_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-parse-buffering-range" since="0.10.20"/>
-    <keyword type="function" name="gst_query_add_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-add-buffering-range" since="0.10.31"/>
-    <keyword type="function" name="gst_query_get_n_buffering_ranges ()" link="gstreamer-GstQuery.html#gst-query-get-n-buffering-ranges" since="0.10.31"/>
-    <keyword type="function" name="gst_query_parse_nth_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-buffering-range" since="0.10.31"/>
-    <keyword type="function" name="gst_query_new_uri ()" link="gstreamer-GstQuery.html#gst-query-new-uri" since="0.10.22"/>
-    <keyword type="function" name="gst_query_parse_uri ()" link="gstreamer-GstQuery.html#gst-query-parse-uri" since="0.10.22"/>
-    <keyword type="function" name="gst_query_set_uri ()" link="gstreamer-GstQuery.html#gst-query-set-uri" since="0.10.22"/>
+    <keyword type="function" name="gst_query_new_buffering ()" link="gstreamer-GstQuery.html#gst-query-new-buffering"/>
+    <keyword type="function" name="gst_query_set_buffering_percent ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-percent"/>
+    <keyword type="function" name="gst_query_parse_buffering_percent ()" link="gstreamer-GstQuery.html#gst-query-parse-buffering-percent"/>
+    <keyword type="function" name="gst_query_set_buffering_stats ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-stats"/>
+    <keyword type="function" name="gst_query_parse_buffering_stats ()" link="gstreamer-GstQuery.html#gst-query-parse-buffering-stats"/>
+    <keyword type="function" name="gst_query_set_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-set-buffering-range"/>
+    <keyword type="function" name="gst_query_parse_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-parse-buffering-range"/>
+    <keyword type="function" name="gst_query_add_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-add-buffering-range"/>
+    <keyword type="function" name="gst_query_get_n_buffering_ranges ()" link="gstreamer-GstQuery.html#gst-query-get-n-buffering-ranges"/>
+    <keyword type="function" name="gst_query_parse_nth_buffering_range ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-buffering-range"/>
+    <keyword type="function" name="gst_query_new_uri ()" link="gstreamer-GstQuery.html#gst-query-new-uri"/>
+    <keyword type="function" name="gst_query_parse_uri ()" link="gstreamer-GstQuery.html#gst-query-parse-uri"/>
+    <keyword type="function" name="gst_query_set_uri ()" link="gstreamer-GstQuery.html#gst-query-set-uri"/>
     <keyword type="function" name="gst_query_new_allocation ()" link="gstreamer-GstQuery.html#gst-query-new-allocation"/>
     <keyword type="function" name="gst_query_parse_allocation ()" link="gstreamer-GstQuery.html#gst-query-parse-allocation"/>
     <keyword type="function" name="gst_query_add_allocation_pool ()" link="gstreamer-GstQuery.html#gst-query-add-allocation-pool"/>
@@ -1293,7 +1301,7 @@
     <keyword type="function" name="gst_query_get_n_allocation_metas ()" link="gstreamer-GstQuery.html#gst-query-get-n-allocation-metas"/>
     <keyword type="function" name="gst_query_parse_nth_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta"/>
     <keyword type="function" name="gst_query_remove_nth_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta"/>
-    <keyword type="function" name="gst_query_has_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-has-allocation-meta"/>
+    <keyword type="function" name="gst_query_find_allocation_meta ()" link="gstreamer-GstQuery.html#gst-query-find-allocation-meta"/>
     <keyword type="enum" name="enum GstSchedulingFlags" link="gstreamer-GstQuery.html#GstSchedulingFlags"/>
     <keyword type="function" name="gst_query_new_scheduling ()" link="gstreamer-GstQuery.html#gst-query-new-scheduling"/>
     <keyword type="function" name="gst_query_parse_scheduling ()" link="gstreamer-GstQuery.html#gst-query-parse-scheduling"/>
@@ -1303,13 +1311,10 @@
     <keyword type="function" name="gst_query_parse_nth_scheduling_mode ()" link="gstreamer-GstQuery.html#gst-query-parse-nth-scheduling-mode"/>
     <keyword type="function" name="gst_query_has_scheduling_mode ()" link="gstreamer-GstQuery.html#gst-query-has-scheduling-mode"/>
     <keyword type="function" name="gst_query_new_drain ()" link="gstreamer-GstQuery.html#gst-query-new-drain"/>
-    <keyword type="function" name="gst_query_new_toc ()" link="gstreamer-GstQuery.html#gst-query-new-toc"/>
-    <keyword type="function" name="gst_query_parse_toc ()" link="gstreamer-GstQuery.html#gst-query-parse-toc"/>
-    <keyword type="function" name="gst_query_set_toc ()" link="gstreamer-GstQuery.html#gst-query-set-toc"/>
     <keyword type="struct" name="struct GstRegistry" link="GstRegistry.html#GstRegistry-struct"/>
     <keyword type="function" name="gst_registry_get ()" link="GstRegistry.html#gst-registry-get"/>
     <keyword type="function" name="gst_registry_get_feature_list ()" link="GstRegistry.html#gst-registry-get-feature-list"/>
-    <keyword type="function" name="gst_registry_get_feature_list_cookie ()" link="GstRegistry.html#gst-registry-get-feature-list-cookie" since="0.10.26"/>
+    <keyword type="function" name="gst_registry_get_feature_list_cookie ()" link="GstRegistry.html#gst-registry-get-feature-list-cookie"/>
     <keyword type="function" name="gst_registry_get_feature_list_by_plugin ()" link="GstRegistry.html#gst-registry-get-feature-list-by-plugin"/>
     <keyword type="function" name="gst_registry_get_path_list ()" link="GstRegistry.html#gst-registry-get-path-list"/>
     <keyword type="function" name="gst_registry_get_plugin_list ()" link="GstRegistry.html#gst-registry-get-plugin-list"/>
@@ -1333,13 +1338,13 @@
     <keyword type="function" name="gst_segment_clip ()" link="gstreamer-GstSegment.html#gst-segment-clip"/>
     <keyword type="function" name="gst_segment_init ()" link="gstreamer-GstSegment.html#gst-segment-init"/>
     <keyword type="function" name="gst_segment_new ()" link="gstreamer-GstSegment.html#gst-segment-new"/>
-    <keyword type="function" name="gst_segment_copy ()" link="gstreamer-GstSegment.html#gst-segment-copy" since="0.10.20"/>
+    <keyword type="function" name="gst_segment_copy ()" link="gstreamer-GstSegment.html#gst-segment-copy"/>
     <keyword type="function" name="gst_segment_free ()" link="gstreamer-GstSegment.html#gst-segment-free"/>
     <keyword type="function" name="gst_segment_do_seek ()" link="gstreamer-GstSegment.html#gst-segment-do-seek"/>
     <keyword type="function" name="gst_segment_to_running_time ()" link="gstreamer-GstSegment.html#gst-segment-to-running-time"/>
     <keyword type="function" name="gst_segment_to_stream_time ()" link="gstreamer-GstSegment.html#gst-segment-to-stream-time"/>
-    <keyword type="function" name="gst_segment_to_position ()" link="gstreamer-GstSegment.html#gst-segment-to-position" since="0.10.24"/>
-    <keyword type="function" name="gst_segment_set_running_time ()" link="gstreamer-GstSegment.html#gst-segment-set-running-time" since="0.10.24"/>
+    <keyword type="function" name="gst_segment_to_position ()" link="gstreamer-GstSegment.html#gst-segment-to-position"/>
+    <keyword type="function" name="gst_segment_set_running_time ()" link="gstreamer-GstSegment.html#gst-segment-set-running-time"/>
     <keyword type="function" name="gst_segment_copy_into ()" link="gstreamer-GstSegment.html#gst-segment-copy-into"/>
     <keyword type="struct" name="struct GstStructure" link="gstreamer-GstStructure.html#GstStructure"/>
     <keyword type="function" name="GstStructureForeachFunc ()" link="gstreamer-GstStructure.html#GstStructureForeachFunc"/>
@@ -1348,27 +1353,27 @@
     <keyword type="function" name="gst_structure_new_id_empty ()" link="gstreamer-GstStructure.html#gst-structure-new-id-empty"/>
     <keyword type="function" name="gst_structure_new ()" link="gstreamer-GstStructure.html#gst-structure-new"/>
     <keyword type="function" name="gst_structure_new_valist ()" link="gstreamer-GstStructure.html#gst-structure-new-valist"/>
-    <keyword type="function" name="gst_structure_new_id ()" link="gstreamer-GstStructure.html#gst-structure-new-id" since="0.10.24"/>
+    <keyword type="function" name="gst_structure_new_id ()" link="gstreamer-GstStructure.html#gst-structure-new-id"/>
     <keyword type="function" name="gst_structure_copy ()" link="gstreamer-GstStructure.html#gst-structure-copy"/>
     <keyword type="function" name="gst_structure_free ()" link="gstreamer-GstStructure.html#gst-structure-free"/>
     <keyword type="function" name="gst_structure_get_name ()" link="gstreamer-GstStructure.html#gst-structure-get-name"/>
     <keyword type="function" name="gst_structure_has_name ()" link="gstreamer-GstStructure.html#gst-structure-has-name"/>
     <keyword type="function" name="gst_structure_set_name ()" link="gstreamer-GstStructure.html#gst-structure-set-name"/>
     <keyword type="function" name="gst_structure_get_name_id ()" link="gstreamer-GstStructure.html#gst-structure-get-name-id"/>
-    <keyword type="function" name="gst_structure_id_get ()" link="gstreamer-GstStructure.html#gst-structure-id-get" since="0.10.24"/>
-    <keyword type="function" name="gst_structure_id_get_valist ()" link="gstreamer-GstStructure.html#gst-structure-id-get-valist" since="0.10.24"/>
+    <keyword type="function" name="gst_structure_id_get ()" link="gstreamer-GstStructure.html#gst-structure-id-get"/>
+    <keyword type="function" name="gst_structure_id_get_valist ()" link="gstreamer-GstStructure.html#gst-structure-id-get-valist"/>
     <keyword type="function" name="gst_structure_id_get_value ()" link="gstreamer-GstStructure.html#gst-structure-id-get-value"/>
     <keyword type="function" name="gst_structure_id_set_value ()" link="gstreamer-GstStructure.html#gst-structure-id-set-value"/>
-    <keyword type="function" name="gst_structure_id_take_value ()" link="gstreamer-GstStructure.html#gst-structure-id-take-value" since="0.10.31"/>
-    <keyword type="function" name="gst_structure_get ()" link="gstreamer-GstStructure.html#gst-structure-get" since="0.10.24"/>
-    <keyword type="function" name="gst_structure_get_valist ()" link="gstreamer-GstStructure.html#gst-structure-get-valist" since="0.10.24"/>
+    <keyword type="function" name="gst_structure_id_take_value ()" link="gstreamer-GstStructure.html#gst-structure-id-take-value"/>
+    <keyword type="function" name="gst_structure_get ()" link="gstreamer-GstStructure.html#gst-structure-get"/>
+    <keyword type="function" name="gst_structure_get_valist ()" link="gstreamer-GstStructure.html#gst-structure-get-valist"/>
     <keyword type="function" name="gst_structure_get_value ()" link="gstreamer-GstStructure.html#gst-structure-get-value"/>
     <keyword type="function" name="gst_structure_set_value ()" link="gstreamer-GstStructure.html#gst-structure-set-value"/>
-    <keyword type="function" name="gst_structure_take_value ()" link="gstreamer-GstStructure.html#gst-structure-take-value" since="0.10.31"/>
+    <keyword type="function" name="gst_structure_take_value ()" link="gstreamer-GstStructure.html#gst-structure-take-value"/>
     <keyword type="function" name="gst_structure_set ()" link="gstreamer-GstStructure.html#gst-structure-set"/>
     <keyword type="function" name="gst_structure_set_valist ()" link="gstreamer-GstStructure.html#gst-structure-set-valist"/>
-    <keyword type="function" name="gst_structure_id_set ()" link="gstreamer-GstStructure.html#gst-structure-id-set" since="0.10.10"/>
-    <keyword type="function" name="gst_structure_id_set_valist ()" link="gstreamer-GstStructure.html#gst-structure-id-set-valist" since="0.10.10"/>
+    <keyword type="function" name="gst_structure_id_set ()" link="gstreamer-GstStructure.html#gst-structure-id-set"/>
+    <keyword type="function" name="gst_structure_id_set_valist ()" link="gstreamer-GstStructure.html#gst-structure-id-set-valist"/>
     <keyword type="function" name="gst_structure_remove_field ()" link="gstreamer-GstStructure.html#gst-structure-remove-field"/>
     <keyword type="function" name="gst_structure_remove_fields ()" link="gstreamer-GstStructure.html#gst-structure-remove-fields"/>
     <keyword type="function" name="gst_structure_remove_fields_valist ()" link="gstreamer-GstStructure.html#gst-structure-remove-fields-valist"/>
@@ -1378,19 +1383,19 @@
     <keyword type="function" name="gst_structure_n_fields ()" link="gstreamer-GstStructure.html#gst-structure-n-fields"/>
     <keyword type="function" name="gst_structure_has_field ()" link="gstreamer-GstStructure.html#gst-structure-has-field"/>
     <keyword type="function" name="gst_structure_has_field_typed ()" link="gstreamer-GstStructure.html#gst-structure-has-field-typed"/>
-    <keyword type="function" name="gst_structure_is_equal ()" link="gstreamer-GstStructure.html#gst-structure-is-equal" since="0.10.36"/>
-    <keyword type="function" name="gst_structure_is_subset ()" link="gstreamer-GstStructure.html#gst-structure-is-subset" since="0.10.36"/>
-    <keyword type="function" name="gst_structure_can_intersect ()" link="gstreamer-GstStructure.html#gst-structure-can-intersect" since="0.10.36"/>
-    <keyword type="function" name="gst_structure_intersect ()" link="gstreamer-GstStructure.html#gst-structure-intersect" since="0.10.36"/>
-    <keyword type="function" name="gst_structure_id_has_field ()" link="gstreamer-GstStructure.html#gst-structure-id-has-field" since="0.10.26"/>
-    <keyword type="function" name="gst_structure_id_has_field_typed ()" link="gstreamer-GstStructure.html#gst-structure-id-has-field-typed" since="0.10.26"/>
+    <keyword type="function" name="gst_structure_is_equal ()" link="gstreamer-GstStructure.html#gst-structure-is-equal"/>
+    <keyword type="function" name="gst_structure_is_subset ()" link="gstreamer-GstStructure.html#gst-structure-is-subset"/>
+    <keyword type="function" name="gst_structure_can_intersect ()" link="gstreamer-GstStructure.html#gst-structure-can-intersect"/>
+    <keyword type="function" name="gst_structure_intersect ()" link="gstreamer-GstStructure.html#gst-structure-intersect"/>
+    <keyword type="function" name="gst_structure_id_has_field ()" link="gstreamer-GstStructure.html#gst-structure-id-has-field"/>
+    <keyword type="function" name="gst_structure_id_has_field_typed ()" link="gstreamer-GstStructure.html#gst-structure-id-has-field-typed"/>
     <keyword type="function" name="gst_structure_get_boolean ()" link="gstreamer-GstStructure.html#gst-structure-get-boolean"/>
     <keyword type="function" name="gst_structure_get_int ()" link="gstreamer-GstStructure.html#gst-structure-get-int"/>
-    <keyword type="function" name="gst_structure_get_uint ()" link="gstreamer-GstStructure.html#gst-structure-get-uint" since="0.10.15"/>
+    <keyword type="function" name="gst_structure_get_uint ()" link="gstreamer-GstStructure.html#gst-structure-get-uint"/>
     <keyword type="function" name="gst_structure_get_double ()" link="gstreamer-GstStructure.html#gst-structure-get-double"/>
     <keyword type="function" name="gst_structure_get_string ()" link="gstreamer-GstStructure.html#gst-structure-get-string"/>
     <keyword type="function" name="gst_structure_get_date ()" link="gstreamer-GstStructure.html#gst-structure-get-date"/>
-    <keyword type="function" name="gst_structure_get_date_time ()" link="gstreamer-GstStructure.html#gst-structure-get-date-time" since="0.10.31"/>
+    <keyword type="function" name="gst_structure_get_date_time ()" link="gstreamer-GstStructure.html#gst-structure-get-date-time"/>
     <keyword type="function" name="gst_structure_get_clock_time ()" link="gstreamer-GstStructure.html#gst-structure-get-clock-time"/>
     <keyword type="function" name="gst_structure_get_enum ()" link="gstreamer-GstStructure.html#gst-structure-get-enum"/>
     <keyword type="function" name="gst_structure_get_fraction ()" link="gstreamer-GstStructure.html#gst-structure-get-fraction"/>
@@ -1405,7 +1410,7 @@
     <keyword type="function" name="gst_structure_fixate_field_nearest_double ()" link="gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-double"/>
     <keyword type="function" name="gst_structure_fixate_field_nearest_fraction ()" link="gstreamer-GstStructure.html#gst-structure-fixate-field-nearest-fraction"/>
     <keyword type="function" name="gst_structure_fixate_field_boolean ()" link="gstreamer-GstStructure.html#gst-structure-fixate-field-boolean"/>
-    <keyword type="function" name="gst_structure_fixate_field_string ()" link="gstreamer-GstStructure.html#gst-structure-fixate-field-string" since="0.10.30"/>
+    <keyword type="function" name="gst_structure_fixate_field_string ()" link="gstreamer-GstStructure.html#gst-structure-fixate-field-string"/>
     <keyword type="enum" name="enum GstClockType" link="GstSystemClock.html#GstClockType"/>
     <keyword type="struct" name="struct GstSystemClock" link="GstSystemClock.html#GstSystemClock-struct"/>
     <keyword type="function" name="gst_system_clock_obtain ()" link="GstSystemClock.html#gst-system-clock-obtain"/>
@@ -1416,42 +1421,42 @@
     <keyword type="function" name="GstTagForeachFunc ()" link="gstreamer-GstTagList.html#GstTagForeachFunc"/>
     <keyword type="function" name="GstTagMergeFunc ()" link="gstreamer-GstTagList.html#GstTagMergeFunc"/>
     <keyword type="macro" name="GST_TAG_TITLE" link="gstreamer-GstTagList.html#GST-TAG-TITLE:CAPS"/>
-    <keyword type="macro" name="GST_TAG_TITLE_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-TITLE-SORTNAME:CAPS" since="0.10.15"/>
+    <keyword type="macro" name="GST_TAG_TITLE_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-TITLE-SORTNAME:CAPS"/>
     <keyword type="macro" name="GST_TAG_ARTIST" link="gstreamer-GstTagList.html#GST-TAG-ARTIST:CAPS"/>
-    <keyword type="macro" name="GST_TAG_ARTIST_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-ARTIST-SORTNAME:CAPS" since="0.10.15"/>
+    <keyword type="macro" name="GST_TAG_ARTIST_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-ARTIST-SORTNAME:CAPS"/>
     <keyword type="macro" name="GST_TAG_ALBUM" link="gstreamer-GstTagList.html#GST-TAG-ALBUM:CAPS"/>
-    <keyword type="macro" name="GST_TAG_ALBUM_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-SORTNAME:CAPS" since="0.10.15"/>
-    <keyword type="macro" name="GST_TAG_ALBUM_ARTIST" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST:CAPS" since="0.10.25"/>
-    <keyword type="macro" name="GST_TAG_ALBUM_ARTIST_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST-SORTNAME:CAPS" since="0.10.25"/>
+    <keyword type="macro" name="GST_TAG_ALBUM_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-SORTNAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_ALBUM_ARTIST" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST:CAPS"/>
+    <keyword type="macro" name="GST_TAG_ALBUM_ARTIST_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-ARTIST-SORTNAME:CAPS"/>
     <keyword type="macro" name="GST_TAG_DATE" link="gstreamer-GstTagList.html#GST-TAG-DATE:CAPS"/>
-    <keyword type="macro" name="GST_TAG_DATE_TIME" link="gstreamer-GstTagList.html#GST-TAG-DATE-TIME:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_TAG_DATE_TIME" link="gstreamer-GstTagList.html#GST-TAG-DATE-TIME:CAPS"/>
     <keyword type="macro" name="GST_TAG_GENRE" link="gstreamer-GstTagList.html#GST-TAG-GENRE:CAPS"/>
     <keyword type="macro" name="GST_TAG_COMMENT" link="gstreamer-GstTagList.html#GST-TAG-COMMENT:CAPS"/>
-    <keyword type="macro" name="GST_TAG_EXTENDED_COMMENT" link="gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS" since="0.10.10"/>
+    <keyword type="macro" name="GST_TAG_EXTENDED_COMMENT" link="gstreamer-GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"/>
     <keyword type="macro" name="GST_TAG_TRACK_NUMBER" link="gstreamer-GstTagList.html#GST-TAG-TRACK-NUMBER:CAPS"/>
     <keyword type="macro" name="GST_TAG_TRACK_COUNT" link="gstreamer-GstTagList.html#GST-TAG-TRACK-COUNT:CAPS"/>
     <keyword type="macro" name="GST_TAG_ALBUM_VOLUME_NUMBER" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-VOLUME-NUMBER:CAPS"/>
     <keyword type="macro" name="GST_TAG_ALBUM_VOLUME_COUNT" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-VOLUME-COUNT:CAPS"/>
     <keyword type="macro" name="GST_TAG_LOCATION" link="gstreamer-GstTagList.html#GST-TAG-LOCATION:CAPS"/>
-    <keyword type="macro" name="GST_TAG_HOMEPAGE" link="gstreamer-GstTagList.html#GST-TAG-HOMEPAGE:CAPS" since="0.10.23"/>
+    <keyword type="macro" name="GST_TAG_HOMEPAGE" link="gstreamer-GstTagList.html#GST-TAG-HOMEPAGE:CAPS"/>
     <keyword type="macro" name="GST_TAG_DESCRIPTION" link="gstreamer-GstTagList.html#GST-TAG-DESCRIPTION:CAPS"/>
     <keyword type="macro" name="GST_TAG_VERSION" link="gstreamer-GstTagList.html#GST-TAG-VERSION:CAPS"/>
     <keyword type="macro" name="GST_TAG_ISRC" link="gstreamer-GstTagList.html#GST-TAG-ISRC:CAPS"/>
     <keyword type="macro" name="GST_TAG_ORGANIZATION" link="gstreamer-GstTagList.html#GST-TAG-ORGANIZATION:CAPS"/>
     <keyword type="macro" name="GST_TAG_COPYRIGHT" link="gstreamer-GstTagList.html#GST-TAG-COPYRIGHT:CAPS"/>
-    <keyword type="macro" name="GST_TAG_COPYRIGHT_URI" link="gstreamer-GstTagList.html#GST-TAG-COPYRIGHT-URI:CAPS" since="0.10.14"/>
-    <keyword type="macro" name="GST_TAG_ENCODED_BY" link="gstreamer-GstTagList.html#GST-TAG-ENCODED-BY:CAPS" since="0.10.33"/>
-    <keyword type="macro" name="GST_TAG_COMPOSER" link="gstreamer-GstTagList.html#GST-TAG-COMPOSER:CAPS" since="0.10.15"/>
+    <keyword type="macro" name="GST_TAG_COPYRIGHT_URI" link="gstreamer-GstTagList.html#GST-TAG-COPYRIGHT-URI:CAPS"/>
+    <keyword type="macro" name="GST_TAG_ENCODED_BY" link="gstreamer-GstTagList.html#GST-TAG-ENCODED-BY:CAPS"/>
+    <keyword type="macro" name="GST_TAG_COMPOSER" link="gstreamer-GstTagList.html#GST-TAG-COMPOSER:CAPS"/>
     <keyword type="macro" name="GST_TAG_CONTACT" link="gstreamer-GstTagList.html#GST-TAG-CONTACT:CAPS"/>
     <keyword type="macro" name="GST_TAG_LICENSE" link="gstreamer-GstTagList.html#GST-TAG-LICENSE:CAPS"/>
-    <keyword type="macro" name="GST_TAG_LICENSE_URI" link="gstreamer-GstTagList.html#GST-TAG-LICENSE-URI:CAPS" since="0.10.14"/>
+    <keyword type="macro" name="GST_TAG_LICENSE_URI" link="gstreamer-GstTagList.html#GST-TAG-LICENSE-URI:CAPS"/>
     <keyword type="macro" name="GST_TAG_PERFORMER" link="gstreamer-GstTagList.html#GST-TAG-PERFORMER:CAPS"/>
     <keyword type="macro" name="GST_TAG_DURATION" link="gstreamer-GstTagList.html#GST-TAG-DURATION:CAPS"/>
     <keyword type="macro" name="GST_TAG_CODEC" link="gstreamer-GstTagList.html#GST-TAG-CODEC:CAPS"/>
     <keyword type="macro" name="GST_TAG_VIDEO_CODEC" link="gstreamer-GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS"/>
     <keyword type="macro" name="GST_TAG_AUDIO_CODEC" link="gstreamer-GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS"/>
-    <keyword type="macro" name="GST_TAG_SUBTITLE_CODEC" link="gstreamer-GstTagList.html#GST-TAG-SUBTITLE-CODEC:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_TAG_CONTAINER_FORMAT" link="gstreamer-GstTagList.html#GST-TAG-CONTAINER-FORMAT:CAPS" since="0.10.24"/>
+    <keyword type="macro" name="GST_TAG_SUBTITLE_CODEC" link="gstreamer-GstTagList.html#GST-TAG-SUBTITLE-CODEC:CAPS"/>
+    <keyword type="macro" name="GST_TAG_CONTAINER_FORMAT" link="gstreamer-GstTagList.html#GST-TAG-CONTAINER-FORMAT:CAPS"/>
     <keyword type="macro" name="GST_TAG_BITRATE" link="gstreamer-GstTagList.html#GST-TAG-BITRATE:CAPS"/>
     <keyword type="macro" name="GST_TAG_NOMINAL_BITRATE" link="gstreamer-GstTagList.html#GST-TAG-NOMINAL-BITRATE:CAPS"/>
     <keyword type="macro" name="GST_TAG_MINIMUM_BITRATE" link="gstreamer-GstTagList.html#GST-TAG-MINIMUM-BITRATE:CAPS"/>
@@ -1463,38 +1468,38 @@
     <keyword type="macro" name="GST_TAG_TRACK_PEAK" link="gstreamer-GstTagList.html#GST-TAG-TRACK-PEAK:CAPS"/>
     <keyword type="macro" name="GST_TAG_ALBUM_GAIN" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-GAIN:CAPS"/>
     <keyword type="macro" name="GST_TAG_ALBUM_PEAK" link="gstreamer-GstTagList.html#GST-TAG-ALBUM-PEAK:CAPS"/>
-    <keyword type="macro" name="GST_TAG_REFERENCE_LEVEL" link="gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS" since="0.10.12"/>
+    <keyword type="macro" name="GST_TAG_REFERENCE_LEVEL" link="gstreamer-GstTagList.html#GST-TAG-REFERENCE-LEVEL:CAPS"/>
     <keyword type="macro" name="GST_TAG_LANGUAGE_CODE" link="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS"/>
-    <keyword type="macro" name="GST_TAG_LANGUAGE_NAME" link="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS" since="0.10.37"/>
-    <keyword type="macro" name="GST_TAG_IMAGE" link="gstreamer-GstTagList.html#GST-TAG-IMAGE:CAPS" since="0.10.6"/>
-    <keyword type="macro" name="GST_TAG_PREVIEW_IMAGE" link="gstreamer-GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS" since="0.10.7"/>
-    <keyword type="macro" name="GST_TAG_ATTACHMENT" link="gstreamer-GstTagList.html#GST-TAG-ATTACHMENT:CAPS" since="0.10.21"/>
-    <keyword type="macro" name="GST_TAG_BEATS_PER_MINUTE" link="gstreamer-GstTagList.html#GST-TAG-BEATS-PER-MINUTE:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GST_TAG_KEYWORDS" link="gstreamer-GstTagList.html#GST-TAG-KEYWORDS:CAPS" since="0.10.21"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_NAME" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-NAME:CAPS" since="0.10.21"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_LATITUDE" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LATITUDE:CAPS" since="0.10.21"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_LONGITUDE" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LONGITUDE:CAPS" since="0.10.21"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_ELEVATION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-ELEVATION:CAPS" since="0.10.21"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_CITY" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CITY:CAPS" since="0.10.29"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_COUNTRY" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-COUNTRY:CAPS" since="0.10.29"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_SUBLOCATION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-SUBLOCATION:CAPS" since="0.10.29"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-HORIZONTAL-ERROR:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS" since="0.10.30"/>
+    <keyword type="macro" name="GST_TAG_LANGUAGE_NAME" link="gstreamer-GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_IMAGE" link="gstreamer-GstTagList.html#GST-TAG-IMAGE:CAPS"/>
+    <keyword type="macro" name="GST_TAG_PREVIEW_IMAGE" link="gstreamer-GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS"/>
+    <keyword type="macro" name="GST_TAG_ATTACHMENT" link="gstreamer-GstTagList.html#GST-TAG-ATTACHMENT:CAPS"/>
+    <keyword type="macro" name="GST_TAG_BEATS_PER_MINUTE" link="gstreamer-GstTagList.html#GST-TAG-BEATS-PER-MINUTE:CAPS"/>
+    <keyword type="macro" name="GST_TAG_KEYWORDS" link="gstreamer-GstTagList.html#GST-TAG-KEYWORDS:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_NAME" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-NAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_LATITUDE" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LATITUDE:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_LONGITUDE" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-LONGITUDE:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_ELEVATION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-ELEVATION:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_CITY" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CITY:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_COUNTRY" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-COUNTRY:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_SUBLOCATION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-SUBLOCATION:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-HORIZONTAL-ERROR:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-DIRECTION:CAPS"/>
     <keyword type="macro" name="GST_TAG_GEO_LOCATION_MOVEMENT_SPEED" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-MOVEMENT-SPEED:CAPS"/>
-    <keyword type="macro" name="GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_TAG_SHOW_NAME" link="gstreamer-GstTagList.html#GST-TAG-SHOW-NAME:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_SHOW_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-SHOW-SORTNAME:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_SHOW_EPISODE_NUMBER" link="gstreamer-GstTagList.html#GST-TAG-SHOW-EPISODE-NUMBER:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_SHOW_SEASON_NUMBER" link="gstreamer-GstTagList.html#GST-TAG-SHOW-SEASON-NUMBER:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_LYRICS" link="gstreamer-GstTagList.html#GST-TAG-LYRICS:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_COMPOSER_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-COMPOSER-SORTNAME:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_GROUPING" link="gstreamer-GstTagList.html#GST-TAG-GROUPING:CAPS" since="0.10.26"/>
-    <keyword type="macro" name="GST_TAG_USER_RATING" link="gstreamer-GstTagList.html#GST-TAG-USER-RATING:CAPS" since="0.10.29"/>
-    <keyword type="macro" name="GST_TAG_DEVICE_MANUFACTURER" link="gstreamer-GstTagList.html#GST-TAG-DEVICE-MANUFACTURER:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_TAG_DEVICE_MODEL" link="gstreamer-GstTagList.html#GST-TAG-DEVICE-MODEL:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_TAG_APPLICATION_NAME" link="gstreamer-GstTagList.html#GST-TAG-APPLICATION-NAME:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_TAG_APPLICATION_DATA" link="gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_TAG_IMAGE_ORIENTATION" link="gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS" since="0.10.30"/>
+    <keyword type="macro" name="GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION" link="gstreamer-GstTagList.html#GST-TAG-GEO-LOCATION-CAPTURE-DIRECTION:CAPS"/>
+    <keyword type="macro" name="GST_TAG_SHOW_NAME" link="gstreamer-GstTagList.html#GST-TAG-SHOW-NAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_SHOW_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-SHOW-SORTNAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_SHOW_EPISODE_NUMBER" link="gstreamer-GstTagList.html#GST-TAG-SHOW-EPISODE-NUMBER:CAPS"/>
+    <keyword type="macro" name="GST_TAG_SHOW_SEASON_NUMBER" link="gstreamer-GstTagList.html#GST-TAG-SHOW-SEASON-NUMBER:CAPS"/>
+    <keyword type="macro" name="GST_TAG_LYRICS" link="gstreamer-GstTagList.html#GST-TAG-LYRICS:CAPS"/>
+    <keyword type="macro" name="GST_TAG_COMPOSER_SORTNAME" link="gstreamer-GstTagList.html#GST-TAG-COMPOSER-SORTNAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_GROUPING" link="gstreamer-GstTagList.html#GST-TAG-GROUPING:CAPS"/>
+    <keyword type="macro" name="GST_TAG_USER_RATING" link="gstreamer-GstTagList.html#GST-TAG-USER-RATING:CAPS"/>
+    <keyword type="macro" name="GST_TAG_DEVICE_MANUFACTURER" link="gstreamer-GstTagList.html#GST-TAG-DEVICE-MANUFACTURER:CAPS"/>
+    <keyword type="macro" name="GST_TAG_DEVICE_MODEL" link="gstreamer-GstTagList.html#GST-TAG-DEVICE-MODEL:CAPS"/>
+    <keyword type="macro" name="GST_TAG_APPLICATION_NAME" link="gstreamer-GstTagList.html#GST-TAG-APPLICATION-NAME:CAPS"/>
+    <keyword type="macro" name="GST_TAG_APPLICATION_DATA" link="gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS"/>
+    <keyword type="macro" name="GST_TAG_IMAGE_ORIENTATION" link="gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS"/>
     <keyword type="function" name="gst_tag_register ()" link="gstreamer-GstTagList.html#gst-tag-register"/>
     <keyword type="function" name="gst_tag_register_static ()" link="gstreamer-GstTagList.html#gst-tag-register-static"/>
     <keyword type="function" name="gst_tag_merge_use_first ()" link="gstreamer-GstTagList.html#gst-tag-merge-use-first"/>
@@ -1505,13 +1510,14 @@
     <keyword type="function" name="gst_tag_get_description ()" link="gstreamer-GstTagList.html#gst-tag-get-description"/>
     <keyword type="function" name="gst_tag_get_flag ()" link="gstreamer-GstTagList.html#gst-tag-get-flag"/>
     <keyword type="function" name="gst_tag_is_fixed ()" link="gstreamer-GstTagList.html#gst-tag-is-fixed"/>
-    <keyword type="function" name="gst_tag_list_new ()" link="gstreamer-GstTagList.html#gst-tag-list-new" since="0.10.24"/>
+    <keyword type="function" name="gst_tag_list_new ()" link="gstreamer-GstTagList.html#gst-tag-list-new"/>
     <keyword type="function" name="gst_tag_list_new_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-new-empty"/>
-    <keyword type="function" name="gst_tag_list_new_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-new-valist" since="0.10.24"/>
-    <keyword type="function" name="gst_tag_list_new_from_string ()" link="gstreamer-GstTagList.html#gst-tag-list-new-from-string" since="0.10.36"/>
-    <keyword type="function" name="gst_tag_list_to_string ()" link="gstreamer-GstTagList.html#gst-tag-list-to-string" since="0.10.36"/>
-    <keyword type="function" name="gst_tag_list_is_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-is-empty" since="0.10.11"/>
-    <keyword type="function" name="gst_tag_list_is_equal ()" link="gstreamer-GstTagList.html#gst-tag-list-is-equal" since="0.10.36"/>
+    <keyword type="function" name="gst_tag_list_new_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-new-valist"/>
+    <keyword type="function" name="gst_tag_list_new_from_string ()" link="gstreamer-GstTagList.html#gst-tag-list-new-from-string"/>
+    <keyword type="macro" name="gst_tag_list_free()" link="gstreamer-GstTagList.html#gst-tag-list-free"/>
+    <keyword type="function" name="gst_tag_list_to_string ()" link="gstreamer-GstTagList.html#gst-tag-list-to-string"/>
+    <keyword type="function" name="gst_tag_list_is_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-is-empty"/>
+    <keyword type="function" name="gst_tag_list_is_equal ()" link="gstreamer-GstTagList.html#gst-tag-list-is-equal"/>
     <keyword type="function" name="gst_tag_list_copy ()" link="gstreamer-GstTagList.html#gst-tag-list-copy"/>
     <keyword type="function" name="gst_tag_list_ref ()" link="gstreamer-GstTagList.html#gst-tag-list-ref"/>
     <keyword type="function" name="gst_tag_list_unref ()" link="gstreamer-GstTagList.html#gst-tag-list-unref"/>
@@ -1523,7 +1529,7 @@
     <keyword type="function" name="gst_tag_list_n_tags ()" link="gstreamer-GstTagList.html#gst-tag-list-n-tags"/>
     <keyword type="function" name="gst_tag_list_nth_tag_name ()" link="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name"/>
     <keyword type="function" name="gst_tag_list_add ()" link="gstreamer-GstTagList.html#gst-tag-list-add"/>
-    <keyword type="function" name="gst_tag_list_add_value ()" link="gstreamer-GstTagList.html#gst-tag-list-add-value" since="0.10.24"/>
+    <keyword type="function" name="gst_tag_list_add_value ()" link="gstreamer-GstTagList.html#gst-tag-list-add-value"/>
     <keyword type="function" name="gst_tag_list_add_values ()" link="gstreamer-GstTagList.html#gst-tag-list-add-values"/>
     <keyword type="function" name="gst_tag_list_add_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-add-valist"/>
     <keyword type="function" name="gst_tag_list_add_valist_values ()" link="gstreamer-GstTagList.html#gst-tag-list-add-valist-values"/>
@@ -1552,16 +1558,16 @@
     <keyword type="function" name="gst_tag_list_get_pointer_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-pointer-index"/>
     <keyword type="function" name="gst_tag_list_get_date ()" link="gstreamer-GstTagList.html#gst-tag-list-get-date"/>
     <keyword type="function" name="gst_tag_list_get_date_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-date-index"/>
-    <keyword type="function" name="gst_tag_list_get_date_time ()" link="gstreamer-GstTagList.html#gst-tag-list-get-date-time" since="0.10.31"/>
-    <keyword type="function" name="gst_tag_list_get_date_time_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-date-time-index" since="0.10.31"/>
-    <keyword type="function" name="gst_tag_list_get_buffer ()" link="gstreamer-GstTagList.html#gst-tag-list-get-buffer" since="0.10.23"/>
-    <keyword type="function" name="gst_tag_list_get_buffer_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" since="0.10.23"/>
+    <keyword type="function" name="gst_tag_list_get_date_time ()" link="gstreamer-GstTagList.html#gst-tag-list-get-date-time"/>
+    <keyword type="function" name="gst_tag_list_get_date_time_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-date-time-index"/>
+    <keyword type="function" name="gst_tag_list_get_sample ()" link="gstreamer-GstTagList.html#gst-tag-list-get-sample"/>
+    <keyword type="function" name="gst_tag_list_get_sample_index ()" link="gstreamer-GstTagList.html#gst-tag-list-get-sample-index"/>
     <keyword type="struct" name="GstTagSetter" link="GstTagSetter.html#GstTagSetter-struct"/>
     <keyword type="struct" name="struct GstTagSetterInterface" link="GstTagSetter.html#GstTagSetterInterface"/>
-    <keyword type="function" name="gst_tag_setter_reset_tags ()" link="GstTagSetter.html#gst-tag-setter-reset-tags" since="0.10.22"/>
+    <keyword type="function" name="gst_tag_setter_reset_tags ()" link="GstTagSetter.html#gst-tag-setter-reset-tags"/>
     <keyword type="function" name="gst_tag_setter_merge_tags ()" link="GstTagSetter.html#gst-tag-setter-merge-tags"/>
     <keyword type="function" name="gst_tag_setter_add_tags ()" link="GstTagSetter.html#gst-tag-setter-add-tags"/>
-    <keyword type="function" name="gst_tag_setter_add_tag_value ()" link="GstTagSetter.html#gst-tag-setter-add-tag-value" since="0.10.24"/>
+    <keyword type="function" name="gst_tag_setter_add_tag_value ()" link="GstTagSetter.html#gst-tag-setter-add-tag-value"/>
     <keyword type="function" name="gst_tag_setter_add_tag_values ()" link="GstTagSetter.html#gst-tag-setter-add-tag-values"/>
     <keyword type="function" name="gst_tag_setter_add_tag_valist ()" link="GstTagSetter.html#gst-tag-setter-add-tag-valist"/>
     <keyword type="function" name="gst_tag_setter_add_tag_valist_values ()" link="GstTagSetter.html#gst-tag-setter-add-tag-valist-values"/>
@@ -1579,12 +1585,13 @@
     <keyword type="macro" name="GST_TASK_WAIT()" link="GstTask.html#GST-TASK-WAIT:CAPS"/>
     <keyword type="function" name="gst_task_new ()" link="GstTask.html#gst-task-new"/>
     <keyword type="function" name="gst_task_set_lock ()" link="GstTask.html#gst-task-set-lock"/>
-    <keyword type="function" name="gst_task_set_pool ()" link="GstTask.html#gst-task-set-pool" since="0.10.24"/>
-    <keyword type="function" name="gst_task_get_pool ()" link="GstTask.html#gst-task-get-pool" since="0.10.24"/>
-    <keyword type="struct" name="GstTaskThreadCallbacks" link="GstTask.html#GstTaskThreadCallbacks" since="0.10.24"/>
-    <keyword type="function" name="gst_task_set_thread_callbacks ()" link="GstTask.html#gst-task-set-thread-callbacks" since="0.10.24"/>
+    <keyword type="function" name="gst_task_set_pool ()" link="GstTask.html#gst-task-set-pool"/>
+    <keyword type="function" name="gst_task_get_pool ()" link="GstTask.html#gst-task-get-pool"/>
+    <keyword type="function" name="GstTaskThreadFunc ()" link="GstTask.html#GstTaskThreadFunc"/>
+    <keyword type="function" name="gst_task_set_enter_callback ()" link="GstTask.html#gst-task-set-enter-callback"/>
+    <keyword type="function" name="gst_task_set_leave_callback ()" link="GstTask.html#gst-task-set-leave-callback"/>
     <keyword type="function" name="gst_task_get_state ()" link="GstTask.html#gst-task-get-state"/>
-    <keyword type="function" name="gst_task_set_state ()" link="GstTask.html#gst-task-set-state" since="0.10.24"/>
+    <keyword type="function" name="gst_task_set_state ()" link="GstTask.html#gst-task-set-state"/>
     <keyword type="function" name="gst_task_pause ()" link="GstTask.html#gst-task-pause"/>
     <keyword type="function" name="gst_task_start ()" link="GstTask.html#gst-task-start"/>
     <keyword type="function" name="gst_task_stop ()" link="GstTask.html#gst-task-stop"/>
@@ -1592,47 +1599,68 @@
     <keyword type="function" name="gst_task_cleanup_all ()" link="GstTask.html#gst-task-cleanup-all"/>
     <keyword type="struct" name="struct GstTaskPool" link="GstTaskPool.html#GstTaskPool-struct"/>
     <keyword type="struct" name="struct GstTaskPoolClass" link="GstTaskPool.html#GstTaskPoolClass"/>
-    <keyword type="function" name="GstTaskPoolFunction ()" link="GstTaskPool.html#GstTaskPoolFunction" since="0.10.24"/>
-    <keyword type="function" name="gst_task_pool_new ()" link="GstTaskPool.html#gst-task-pool-new" since="0.10.24"/>
-    <keyword type="function" name="gst_task_pool_prepare ()" link="GstTaskPool.html#gst-task-pool-prepare" since="0.10.24"/>
-    <keyword type="function" name="gst_task_pool_push ()" link="GstTaskPool.html#gst-task-pool-push" since="0.10.24"/>
-    <keyword type="function" name="gst_task_pool_join ()" link="GstTaskPool.html#gst-task-pool-join" since="0.10.24"/>
-    <keyword type="function" name="gst_task_pool_cleanup ()" link="GstTaskPool.html#gst-task-pool-cleanup" since="0.10.24"/>
-    <keyword type="struct" name="struct GstToc" link="gstreamer-GstToc.html#GstToc"/>
-    <keyword type="struct" name="struct GstTocEntry" link="gstreamer-GstToc.html#GstTocEntry"/>
+    <keyword type="function" name="GstTaskPoolFunction ()" link="GstTaskPool.html#GstTaskPoolFunction"/>
+    <keyword type="function" name="gst_task_pool_new ()" link="GstTaskPool.html#gst-task-pool-new"/>
+    <keyword type="function" name="gst_task_pool_prepare ()" link="GstTaskPool.html#gst-task-pool-prepare"/>
+    <keyword type="function" name="gst_task_pool_push ()" link="GstTaskPool.html#gst-task-pool-push"/>
+    <keyword type="function" name="gst_task_pool_join ()" link="GstTaskPool.html#gst-task-pool-join"/>
+    <keyword type="function" name="gst_task_pool_cleanup ()" link="GstTaskPool.html#gst-task-pool-cleanup"/>
+    <keyword type="struct" name="GstToc" link="gstreamer-GstToc.html#GstToc"/>
+    <keyword type="enum" name="enum GstTocScope" link="gstreamer-GstToc.html#GstTocScope"/>
+    <keyword type="struct" name="GstTocEntry" link="gstreamer-GstToc.html#GstTocEntry"/>
     <keyword type="enum" name="enum GstTocEntryType" link="gstreamer-GstToc.html#GstTocEntryType"/>
-    <keyword type="function" name="gst_toc_entry_new ()" link="gstreamer-GstToc.html#gst-toc-entry-new" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_entry_new_with_pad ()" link="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_entry_free ()" link="gstreamer-GstToc.html#gst-toc-entry-free" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_new ()" link="gstreamer-GstToc.html#gst-toc-new" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_free ()" link="gstreamer-GstToc.html#gst-toc-free" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_entry_copy ()" link="gstreamer-GstToc.html#gst-toc-entry-copy" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_copy ()" link="gstreamer-GstToc.html#gst-toc-copy" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_find_entry ()" link="gstreamer-GstToc.html#gst-toc-find-entry" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_entry_get_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_entry_set_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_entry_type_get_nick ()" link="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" since="0.11.92"/>
+    <keyword type="function" name="gst_toc_new ()" link="gstreamer-GstToc.html#gst-toc-new"/>
+    <keyword type="macro" name="gst_toc_ref()" link="gstreamer-GstToc.html#gst-toc-ref"/>
+    <keyword type="macro" name="gst_toc_unref()" link="gstreamer-GstToc.html#gst-toc-unref"/>
+    <keyword type="macro" name="gst_toc_copy()" link="gstreamer-GstToc.html#gst-toc-copy"/>
+    <keyword type="macro" name="gst_toc_make_writable()" link="gstreamer-GstToc.html#gst-toc-make-writable"/>
+    <keyword type="function" name="gst_toc_get_scope ()" link="gstreamer-GstToc.html#gst-toc-get-scope"/>
+    <keyword type="function" name="gst_toc_get_entries ()" link="gstreamer-GstToc.html#gst-toc-get-entries"/>
+    <keyword type="function" name="gst_toc_append_entry ()" link="gstreamer-GstToc.html#gst-toc-append-entry"/>
+    <keyword type="function" name="gst_toc_get_tags ()" link="gstreamer-GstToc.html#gst-toc-get-tags"/>
+    <keyword type="function" name="gst_toc_merge_tags ()" link="gstreamer-GstToc.html#gst-toc-merge-tags"/>
+    <keyword type="function" name="gst_toc_set_tags ()" link="gstreamer-GstToc.html#gst-toc-set-tags"/>
+    <keyword type="function" name="gst_toc_dump ()" link="gstreamer-GstToc.html#gst-toc-dump"/>
+    <keyword type="function" name="gst_toc_entry_new ()" link="gstreamer-GstToc.html#gst-toc-entry-new"/>
+    <keyword type="macro" name="gst_toc_entry_ref()" link="gstreamer-GstToc.html#gst-toc-entry-ref"/>
+    <keyword type="macro" name="gst_toc_entry_unref()" link="gstreamer-GstToc.html#gst-toc-entry-unref"/>
+    <keyword type="macro" name="gst_toc_entry_copy()" link="gstreamer-GstToc.html#gst-toc-entry-copy"/>
+    <keyword type="macro" name="gst_toc_entry_make_writable()" link="gstreamer-GstToc.html#gst-toc-entry-make-writable"/>
+    <keyword type="function" name="gst_toc_find_entry ()" link="gstreamer-GstToc.html#gst-toc-find-entry"/>
+    <keyword type="function" name="gst_toc_entry_get_toc ()" link="gstreamer-GstToc.html#gst-toc-entry-get-toc"/>
+    <keyword type="function" name="gst_toc_entry_get_uid ()" link="gstreamer-GstToc.html#gst-toc-entry-get-uid"/>
+    <keyword type="function" name="gst_toc_entry_get_parent ()" link="gstreamer-GstToc.html#gst-toc-entry-get-parent"/>
+    <keyword type="function" name="gst_toc_entry_get_sub_entries ()" link="gstreamer-GstToc.html#gst-toc-entry-get-sub-entries"/>
+    <keyword type="function" name="gst_toc_entry_append_sub_entry ()" link="gstreamer-GstToc.html#gst-toc-entry-append-sub-entry"/>
+    <keyword type="function" name="gst_toc_entry_get_start_stop_times ()" link="gstreamer-GstToc.html#gst-toc-entry-get-start-stop-times"/>
+    <keyword type="function" name="gst_toc_entry_set_start_stop_times ()" link="gstreamer-GstToc.html#gst-toc-entry-set-start-stop-times"/>
+    <keyword type="function" name="gst_toc_entry_get_tags ()" link="gstreamer-GstToc.html#gst-toc-entry-get-tags"/>
+    <keyword type="function" name="gst_toc_entry_merge_tags ()" link="gstreamer-GstToc.html#gst-toc-entry-merge-tags"/>
+    <keyword type="function" name="gst_toc_entry_set_tags ()" link="gstreamer-GstToc.html#gst-toc-entry-set-tags"/>
+    <keyword type="function" name="gst_toc_entry_type_get_nick ()" link="gstreamer-GstToc.html#gst-toc-entry-type-get-nick"/>
+    <keyword type="function" name="gst_toc_entry_get_entry_type ()" link="gstreamer-GstToc.html#gst-toc-entry-get-entry-type"/>
+    <keyword type="function" name="gst_toc_entry_is_alternative ()" link="gstreamer-GstToc.html#gst-toc-entry-is-alternative"/>
+    <keyword type="function" name="gst_toc_entry_is_sequence ()" link="gstreamer-GstToc.html#gst-toc-entry-is-sequence"/>
+    <keyword type="macro" name="GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE()" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-ALTERNATIVE:CAPS"/>
+    <keyword type="macro" name="GST_TOC_ENTRY_TYPE_IS_SEQUENCE()" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-SEQUENCE:CAPS"/>
     <keyword type="struct" name="GstTocSetter" link="gstreamer-GstTocSetter.html#GstTocSetter"/>
-    <keyword type="struct" name="struct GstTocSetterIFace" link="gstreamer-GstTocSetter.html#GstTocSetterIFace"/>
-    <keyword type="function" name="gst_toc_setter_get_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_setter_get_toc_copy ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_setter_reset_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_setter_set_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_setter_get_toc_entry ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_setter_get_toc_entry_copy ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy" since="0.10.37"/>
-    <keyword type="function" name="gst_toc_setter_add_toc_entry ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry" since="0.10.37"/>
+    <keyword type="struct" name="struct GstTocSetterInterface" link="gstreamer-GstTocSetter.html#GstTocSetterInterface"/>
+    <keyword type="function" name="gst_toc_setter_set_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-set-toc"/>
+    <keyword type="function" name="gst_toc_setter_get_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc"/>
+    <keyword type="function" name="gst_toc_setter_reset ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-reset"/>
     <keyword type="struct" name="struct GstTypeFind" link="gstreamer-GstTypeFind.html#GstTypeFind"/>
     <keyword type="function" name="GstTypeFindFunction ()" link="gstreamer-GstTypeFind.html#GstTypeFindFunction"/>
     <keyword type="enum" name="enum GstTypeFindProbability" link="gstreamer-GstTypeFind.html#GstTypeFindProbability"/>
     <keyword type="function" name="gst_type_find_peek ()" link="gstreamer-GstTypeFind.html#gst-type-find-peek"/>
     <keyword type="function" name="gst_type_find_suggest ()" link="gstreamer-GstTypeFind.html#gst-type-find-suggest"/>
-    <keyword type="function" name="gst_type_find_suggest_simple ()" link="gstreamer-GstTypeFind.html#gst-type-find-suggest-simple" since="0.10.20"/>
+    <keyword type="function" name="gst_type_find_suggest_simple ()" link="gstreamer-GstTypeFind.html#gst-type-find-suggest-simple"/>
     <keyword type="function" name="gst_type_find_get_length ()" link="gstreamer-GstTypeFind.html#gst-type-find-get-length"/>
     <keyword type="function" name="gst_type_find_register ()" link="gstreamer-GstTypeFind.html#gst-type-find-register"/>
     <keyword type="struct" name="GstTypeFindFactory" link="GstTypeFindFactory.html#GstTypeFindFactory-struct"/>
     <keyword type="function" name="gst_type_find_factory_get_list ()" link="GstTypeFindFactory.html#gst-type-find-factory-get-list"/>
     <keyword type="function" name="gst_type_find_factory_get_extensions ()" link="GstTypeFindFactory.html#gst-type-find-factory-get-extensions"/>
     <keyword type="function" name="gst_type_find_factory_get_caps ()" link="GstTypeFindFactory.html#gst-type-find-factory-get-caps"/>
+    <keyword type="function" name="gst_type_find_factory_has_function ()" link="GstTypeFindFactory.html#gst-type-find-factory-has-function"/>
     <keyword type="function" name="gst_type_find_factory_call_function ()" link="GstTypeFindFactory.html#gst-type-find-factory-call-function"/>
     <keyword type="struct" name="GstURIHandler" link="gstreamer-GstUriHandler.html#GstURIHandler-struct"/>
     <keyword type="struct" name="struct GstURIHandlerInterface" link="gstreamer-GstUriHandler.html#GstURIHandlerInterface"/>
@@ -1641,13 +1669,13 @@
     <keyword type="function" name="gst_uri_error_quark ()" link="gstreamer-GstUriHandler.html#gst-uri-error-quark"/>
     <keyword type="macro" name="GST_URI_TYPE_IS_VALID()" link="gstreamer-GstUriHandler.html#GST-URI-TYPE-IS-VALID:CAPS"/>
     <keyword type="function" name="gst_uri_protocol_is_valid ()" link="gstreamer-GstUriHandler.html#gst-uri-protocol-is-valid"/>
-    <keyword type="function" name="gst_uri_protocol_is_supported ()" link="gstreamer-GstUriHandler.html#gst-uri-protocol-is-supported" since="0.10.13"/>
+    <keyword type="function" name="gst_uri_protocol_is_supported ()" link="gstreamer-GstUriHandler.html#gst-uri-protocol-is-supported"/>
     <keyword type="function" name="gst_uri_is_valid ()" link="gstreamer-GstUriHandler.html#gst-uri-is-valid"/>
-    <keyword type="function" name="gst_uri_has_protocol ()" link="gstreamer-GstUriHandler.html#gst-uri-has-protocol" since="0.10.4"/>
+    <keyword type="function" name="gst_uri_has_protocol ()" link="gstreamer-GstUriHandler.html#gst-uri-has-protocol"/>
     <keyword type="function" name="gst_uri_get_protocol ()" link="gstreamer-GstUriHandler.html#gst-uri-get-protocol"/>
     <keyword type="function" name="gst_uri_get_location ()" link="gstreamer-GstUriHandler.html#gst-uri-get-location"/>
     <keyword type="function" name="gst_uri_construct ()" link="gstreamer-GstUriHandler.html#gst-uri-construct"/>
-    <keyword type="function" name="gst_filename_to_uri ()" link="gstreamer-GstUriHandler.html#gst-filename-to-uri" since="0.10.33"/>
+    <keyword type="function" name="gst_filename_to_uri ()" link="gstreamer-GstUriHandler.html#gst-filename-to-uri"/>
     <keyword type="function" name="gst_element_make_from_uri ()" link="gstreamer-GstUriHandler.html#gst-element-make-from-uri"/>
     <keyword type="function" name="gst_uri_handler_get_uri_type ()" link="gstreamer-GstUriHandler.html#gst-uri-handler-get-uri-type"/>
     <keyword type="function" name="gst_uri_handler_get_protocols ()" link="gstreamer-GstUriHandler.html#gst-uri-handler-get-protocols"/>
@@ -1658,55 +1686,53 @@
     <keyword type="macro" name="GST_READ_UINT8()" link="gstreamer-GstUtils.html#GST-READ-UINT8:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT16_LE()" link="gstreamer-GstUtils.html#GST-READ-UINT16-LE:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT16_BE()" link="gstreamer-GstUtils.html#GST-READ-UINT16-BE:CAPS"/>
-    <keyword type="macro" name="GST_READ_UINT24_LE()" link="gstreamer-GstUtils.html#GST-READ-UINT24-LE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GST_READ_UINT24_BE()" link="gstreamer-GstUtils.html#GST-READ-UINT24-BE:CAPS" since="0.10.22"/>
+    <keyword type="macro" name="GST_READ_UINT24_LE()" link="gstreamer-GstUtils.html#GST-READ-UINT24-LE:CAPS"/>
+    <keyword type="macro" name="GST_READ_UINT24_BE()" link="gstreamer-GstUtils.html#GST-READ-UINT24-BE:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT32_LE()" link="gstreamer-GstUtils.html#GST-READ-UINT32-LE:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT32_BE()" link="gstreamer-GstUtils.html#GST-READ-UINT32-BE:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT64_LE()" link="gstreamer-GstUtils.html#GST-READ-UINT64-LE:CAPS"/>
     <keyword type="macro" name="GST_READ_UINT64_BE()" link="gstreamer-GstUtils.html#GST-READ-UINT64-BE:CAPS"/>
-    <keyword type="function" name="GST_READ_FLOAT_LE ()" link="gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GST_READ_FLOAT_BE ()" link="gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GST_READ_DOUBLE_LE ()" link="gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GST_READ_DOUBLE_BE ()" link="gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS" since="0.10.22"/>
+    <keyword type="function" name="GST_READ_FLOAT_LE ()" link="gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS"/>
+    <keyword type="function" name="GST_READ_FLOAT_BE ()" link="gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS"/>
+    <keyword type="function" name="GST_READ_DOUBLE_LE ()" link="gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS"/>
+    <keyword type="function" name="GST_READ_DOUBLE_BE ()" link="gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT8()" link="gstreamer-GstUtils.html#GST-WRITE-UINT8:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT16_LE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT16-LE:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT16_BE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT16-BE:CAPS"/>
-    <keyword type="macro" name="GST_WRITE_UINT24_LE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT24-LE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GST_WRITE_UINT24_BE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT24-BE:CAPS" since="0.10.22"/>
+    <keyword type="macro" name="GST_WRITE_UINT24_LE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT24-LE:CAPS"/>
+    <keyword type="macro" name="GST_WRITE_UINT24_BE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT24-BE:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT32_LE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT32-LE:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT32_BE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT32-BE:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT64_LE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT64-LE:CAPS"/>
     <keyword type="macro" name="GST_WRITE_UINT64_BE()" link="gstreamer-GstUtils.html#GST-WRITE-UINT64-BE:CAPS"/>
-    <keyword type="function" name="GST_WRITE_FLOAT_LE ()" link="gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GST_WRITE_FLOAT_BE ()" link="gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GST_WRITE_DOUBLE_LE ()" link="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GST_WRITE_DOUBLE_BE ()" link="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS" since="0.10.22"/>
+    <keyword type="function" name="GST_WRITE_FLOAT_LE ()" link="gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS"/>
+    <keyword type="function" name="GST_WRITE_FLOAT_BE ()" link="gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS"/>
+    <keyword type="function" name="GST_WRITE_DOUBLE_LE ()" link="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS"/>
+    <keyword type="function" name="GST_WRITE_DOUBLE_BE ()" link="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS"/>
     <keyword type="macro" name="GST_ROUND_UP_2()" link="gstreamer-GstUtils.html#GST-ROUND-UP-2:CAPS"/>
     <keyword type="macro" name="GST_ROUND_UP_4()" link="gstreamer-GstUtils.html#GST-ROUND-UP-4:CAPS"/>
     <keyword type="macro" name="GST_ROUND_UP_8()" link="gstreamer-GstUtils.html#GST-ROUND-UP-8:CAPS"/>
     <keyword type="macro" name="GST_ROUND_UP_16()" link="gstreamer-GstUtils.html#GST-ROUND-UP-16:CAPS"/>
     <keyword type="macro" name="GST_ROUND_UP_32()" link="gstreamer-GstUtils.html#GST-ROUND-UP-32:CAPS"/>
     <keyword type="macro" name="GST_ROUND_UP_64()" link="gstreamer-GstUtils.html#GST-ROUND-UP-64:CAPS"/>
-    <keyword type="macro" name="GST_ROUND_DOWN_2()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-2:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GST_ROUND_DOWN_4()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-4:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GST_ROUND_DOWN_8()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-8:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GST_ROUND_DOWN_16()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-16:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GST_ROUND_DOWN_32()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-32:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GST_ROUND_DOWN_64()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-64:CAPS" since="0.10.12"/>
-    <keyword type="macro" name="GDOUBLE_FROM_BE()" link="gstreamer-GstUtils.html#GDOUBLE-FROM-BE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GDOUBLE_FROM_LE()" link="gstreamer-GstUtils.html#GDOUBLE-FROM-LE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GDOUBLE_SWAP_LE_BE ()" link="gstreamer-GstUtils.html#GDOUBLE-SWAP-LE-BE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GDOUBLE_TO_BE()" link="gstreamer-GstUtils.html#GDOUBLE-TO-BE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GDOUBLE_TO_LE()" link="gstreamer-GstUtils.html#GDOUBLE-TO-LE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GFLOAT_FROM_BE()" link="gstreamer-GstUtils.html#GFLOAT-FROM-BE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GFLOAT_FROM_LE()" link="gstreamer-GstUtils.html#GFLOAT-FROM-LE:CAPS" since="0.10.22"/>
-    <keyword type="function" name="GFLOAT_SWAP_LE_BE ()" link="gstreamer-GstUtils.html#GFLOAT-SWAP-LE-BE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GFLOAT_TO_BE()" link="gstreamer-GstUtils.html#GFLOAT-TO-BE:CAPS" since="0.10.22"/>
-    <keyword type="macro" name="GFLOAT_TO_LE()" link="gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS" since="0.10.22"/>
+    <keyword type="macro" name="GST_ROUND_DOWN_2()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-2:CAPS"/>
+    <keyword type="macro" name="GST_ROUND_DOWN_4()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-4:CAPS"/>
+    <keyword type="macro" name="GST_ROUND_DOWN_8()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-8:CAPS"/>
+    <keyword type="macro" name="GST_ROUND_DOWN_16()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-16:CAPS"/>
+    <keyword type="macro" name="GST_ROUND_DOWN_32()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-32:CAPS"/>
+    <keyword type="macro" name="GST_ROUND_DOWN_64()" link="gstreamer-GstUtils.html#GST-ROUND-DOWN-64:CAPS"/>
+    <keyword type="macro" name="GDOUBLE_FROM_BE()" link="gstreamer-GstUtils.html#GDOUBLE-FROM-BE:CAPS"/>
+    <keyword type="macro" name="GDOUBLE_FROM_LE()" link="gstreamer-GstUtils.html#GDOUBLE-FROM-LE:CAPS"/>
+    <keyword type="function" name="GDOUBLE_SWAP_LE_BE ()" link="gstreamer-GstUtils.html#GDOUBLE-SWAP-LE-BE:CAPS"/>
+    <keyword type="macro" name="GDOUBLE_TO_BE()" link="gstreamer-GstUtils.html#GDOUBLE-TO-BE:CAPS"/>
+    <keyword type="macro" name="GDOUBLE_TO_LE()" link="gstreamer-GstUtils.html#GDOUBLE-TO-LE:CAPS"/>
+    <keyword type="macro" name="GFLOAT_FROM_BE()" link="gstreamer-GstUtils.html#GFLOAT-FROM-BE:CAPS"/>
+    <keyword type="macro" name="GFLOAT_FROM_LE()" link="gstreamer-GstUtils.html#GFLOAT-FROM-LE:CAPS"/>
+    <keyword type="function" name="GFLOAT_SWAP_LE_BE ()" link="gstreamer-GstUtils.html#GFLOAT-SWAP-LE-BE:CAPS"/>
+    <keyword type="macro" name="GFLOAT_TO_BE()" link="gstreamer-GstUtils.html#GFLOAT-TO-BE:CAPS"/>
+    <keyword type="macro" name="GFLOAT_TO_LE()" link="gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS"/>
     <keyword type="function" name="gst_flow_get_name ()" link="gstreamer-GstUtils.html#gst-flow-get-name"/>
     <keyword type="function" name="gst_flow_to_quark ()" link="gstreamer-GstUtils.html#gst-flow-to-quark"/>
-    <keyword type="function" name="gst_print_element_args ()" link="gstreamer-GstUtils.html#gst-print-element-args"/>
-    <keyword type="function" name="gst_print_pad_caps ()" link="gstreamer-GstUtils.html#gst-print-pad-caps"/>
     <keyword type="macro" name="gst_guint64_to_gdouble()" link="gstreamer-GstUtils.html#gst-guint64-to-gdouble"/>
     <keyword type="macro" name="gst_gdouble_to_guint64()" link="gstreamer-GstUtils.html#gst-gdouble-to-guint64"/>
     <keyword type="function" name="gst_util_dump_mem ()" link="gstreamer-GstUtils.html#gst-util-dump-mem"/>
@@ -1716,20 +1742,20 @@
     <keyword type="function" name="gst_util_uint64_scale_int ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale-int"/>
     <keyword type="function" name="gst_util_uint64_scale_int_round ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round"/>
     <keyword type="function" name="gst_util_uint64_scale_int_ceil ()" link="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil"/>
-    <keyword type="function" name="gst_util_greatest_common_divisor ()" link="gstreamer-GstUtils.html#gst-util-greatest-common-divisor" since="0.10.26"/>
-    <keyword type="function" name="gst_util_greatest_common_divisor_int64 ()" link="gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64" since="0.11.0"/>
-    <keyword type="function" name="gst_util_fraction_to_double ()" link="gstreamer-GstUtils.html#gst-util-fraction-to-double" since="0.10.26"/>
-    <keyword type="function" name="gst_util_double_to_fraction ()" link="gstreamer-GstUtils.html#gst-util-double-to-fraction" since="0.10.26"/>
-    <keyword type="function" name="gst_util_fraction_multiply ()" link="gstreamer-GstUtils.html#gst-util-fraction-multiply" since="0.10.26"/>
-    <keyword type="function" name="gst_util_fraction_add ()" link="gstreamer-GstUtils.html#gst-util-fraction-add" since="0.10.26"/>
-    <keyword type="function" name="gst_util_fraction_compare ()" link="gstreamer-GstUtils.html#gst-util-fraction-compare" since="0.10.31"/>
-    <keyword type="function" name="gst_util_seqnum_next ()" link="gstreamer-GstUtils.html#gst-util-seqnum-next" since="0.10.22"/>
-    <keyword type="function" name="gst_util_seqnum_compare ()" link="gstreamer-GstUtils.html#gst-util-seqnum-compare" since="0.10.22"/>
+    <keyword type="function" name="gst_util_greatest_common_divisor ()" link="gstreamer-GstUtils.html#gst-util-greatest-common-divisor"/>
+    <keyword type="function" name="gst_util_greatest_common_divisor_int64 ()" link="gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64"/>
+    <keyword type="function" name="gst_util_fraction_to_double ()" link="gstreamer-GstUtils.html#gst-util-fraction-to-double"/>
+    <keyword type="function" name="gst_util_double_to_fraction ()" link="gstreamer-GstUtils.html#gst-util-double-to-fraction"/>
+    <keyword type="function" name="gst_util_fraction_multiply ()" link="gstreamer-GstUtils.html#gst-util-fraction-multiply"/>
+    <keyword type="function" name="gst_util_fraction_add ()" link="gstreamer-GstUtils.html#gst-util-fraction-add"/>
+    <keyword type="function" name="gst_util_fraction_compare ()" link="gstreamer-GstUtils.html#gst-util-fraction-compare"/>
+    <keyword type="function" name="gst_util_seqnum_next ()" link="gstreamer-GstUtils.html#gst-util-seqnum-next"/>
+    <keyword type="function" name="gst_util_seqnum_compare ()" link="gstreamer-GstUtils.html#gst-util-seqnum-compare"/>
     <keyword type="function" name="gst_util_set_object_arg ()" link="gstreamer-GstUtils.html#gst-util-set-object-arg"/>
     <keyword type="function" name="gst_util_set_value_from_string ()" link="gstreamer-GstUtils.html#gst-util-set-value-from-string"/>
-    <keyword type="function" name="gst_util_get_timestamp ()" link="gstreamer-GstUtils.html#gst-util-get-timestamp" since="0.10.16"/>
-    <keyword type="enum" name="enum GstSearchMode" link="gstreamer-GstUtils.html#GstSearchMode" since="0.10.23"/>
-    <keyword type="function" name="gst_util_array_binary_search ()" link="gstreamer-GstUtils.html#gst-util-array-binary-search" since="0.10.23"/>
+    <keyword type="function" name="gst_util_get_timestamp ()" link="gstreamer-GstUtils.html#gst-util-get-timestamp"/>
+    <keyword type="enum" name="enum GstSearchMode" link="gstreamer-GstUtils.html#GstSearchMode"/>
+    <keyword type="function" name="gst_util_array_binary_search ()" link="gstreamer-GstUtils.html#gst-util-array-binary-search"/>
     <keyword type="macro" name="GST_MAKE_FOURCC()" link="gstreamer-GstValue.html#GST-MAKE-FOURCC:CAPS"/>
     <keyword type="macro" name="GST_STR_FOURCC()" link="gstreamer-GstValue.html#GST-STR-FOURCC:CAPS"/>
     <keyword type="macro" name="GST_FOURCC_FORMAT" link="gstreamer-GstValue.html#GST-FOURCC-FORMAT:CAPS"/>
@@ -1745,13 +1771,13 @@
     <keyword type="macro" name="GST_TYPE_BITMASK" link="gstreamer-GstValue.html#GST-TYPE-BITMASK:CAPS"/>
     <keyword type="function" name="gst_value_set_bitmask ()" link="gstreamer-GstValue.html#gst-value-set-bitmask"/>
     <keyword type="function" name="gst_value_get_bitmask ()" link="gstreamer-GstValue.html#gst-value-get-bitmask"/>
-    <keyword type="macro" name="GST_VALUE_HOLDS_INT64_RANGE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-INT64-RANGE:CAPS" since="0.10.31"/>
-    <keyword type="macro" name="GST_TYPE_INT64_RANGE" link="gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS" since="0.10.31"/>
-    <keyword type="function" name="gst_value_set_int64_range ()" link="gstreamer-GstValue.html#gst-value-set-int64-range" since="0.10.31"/>
-    <keyword type="function" name="gst_value_get_int64_range_min ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-min" since="0.10.31"/>
-    <keyword type="function" name="gst_value_get_int64_range_max ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-max" since="0.10.31"/>
-    <keyword type="function" name="gst_value_set_int64_range_step ()" link="gstreamer-GstValue.html#gst-value-set-int64-range-step" since="0.11.0"/>
-    <keyword type="function" name="gst_value_get_int64_range_step ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-step" since="0.11.0"/>
+    <keyword type="macro" name="GST_VALUE_HOLDS_INT64_RANGE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-INT64-RANGE:CAPS"/>
+    <keyword type="macro" name="GST_TYPE_INT64_RANGE" link="gstreamer-GstValue.html#GST-TYPE-INT64-RANGE:CAPS"/>
+    <keyword type="function" name="gst_value_set_int64_range ()" link="gstreamer-GstValue.html#gst-value-set-int64-range"/>
+    <keyword type="function" name="gst_value_get_int64_range_min ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-min"/>
+    <keyword type="function" name="gst_value_get_int64_range_max ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-max"/>
+    <keyword type="function" name="gst_value_set_int64_range_step ()" link="gstreamer-GstValue.html#gst-value-set-int64-range-step"/>
+    <keyword type="function" name="gst_value_get_int64_range_step ()" link="gstreamer-GstValue.html#gst-value-get-int64-range-step"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_DOUBLE_RANGE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-DOUBLE-RANGE:CAPS"/>
     <keyword type="macro" name="GST_TYPE_DOUBLE_RANGE" link="gstreamer-GstValue.html#GST-TYPE-DOUBLE-RANGE:CAPS"/>
     <keyword type="function" name="gst_value_set_double_range ()" link="gstreamer-GstValue.html#gst-value-set-double-range"/>
@@ -1764,7 +1790,7 @@
     <keyword type="function" name="gst_value_list_append_value ()" link="gstreamer-GstValue.html#gst-value-list-append-value"/>
     <keyword type="function" name="gst_value_list_prepend_value ()" link="gstreamer-GstValue.html#gst-value-list-prepend-value"/>
     <keyword type="function" name="gst_value_list_concat ()" link="gstreamer-GstValue.html#gst-value-list-concat"/>
-    <keyword type="function" name="gst_value_list_merge ()" link="gstreamer-GstValue.html#gst-value-list-merge" since="0.10.32"/>
+    <keyword type="function" name="gst_value_list_merge ()" link="gstreamer-GstValue.html#gst-value-list-merge"/>
     <keyword type="function" name="gst_value_list_get_size ()" link="gstreamer-GstValue.html#gst-value-list-get-size"/>
     <keyword type="function" name="gst_value_list_get_value ()" link="gstreamer-GstValue.html#gst-value-list-get-value"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_FRACTION()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-FRACTION:CAPS"/>
@@ -1780,13 +1806,13 @@
     <keyword type="function" name="gst_value_get_fraction_range_min ()" link="gstreamer-GstValue.html#gst-value-get-fraction-range-min"/>
     <keyword type="function" name="gst_value_get_fraction_range_max ()" link="gstreamer-GstValue.html#gst-value-get-fraction-range-max"/>
     <keyword type="function" name="gst_value_set_fraction_range_full ()" link="gstreamer-GstValue.html#gst-value-set-fraction-range-full"/>
-    <keyword type="macro" name="GST_VALUE_HOLDS_DATE_TIME()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS" since="0.10.31"/>
+    <keyword type="macro" name="GST_VALUE_HOLDS_DATE_TIME()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-DATE-TIME:CAPS"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_CAPS()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-CAPS"/>
     <keyword type="function" name="gst_value_set_caps ()" link="gstreamer-GstValue.html#gst-value-set-caps"/>
     <keyword type="function" name="gst_value_get_caps ()" link="gstreamer-GstValue.html#gst-value-get-caps"/>
-    <keyword type="macro" name="GST_VALUE_HOLDS_STRUCTURE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-STRUCTURE:CAPS" since="0.10.15"/>
-    <keyword type="function" name="gst_value_set_structure ()" link="gstreamer-GstValue.html#gst-value-set-structure" since="0.10.15"/>
-    <keyword type="function" name="gst_value_get_structure ()" link="gstreamer-GstValue.html#gst-value-get-structure" since="0.10.15"/>
+    <keyword type="macro" name="GST_VALUE_HOLDS_STRUCTURE()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-STRUCTURE:CAPS"/>
+    <keyword type="function" name="gst_value_set_structure ()" link="gstreamer-GstValue.html#gst-value-set-structure"/>
+    <keyword type="function" name="gst_value_get_structure ()" link="gstreamer-GstValue.html#gst-value-get-structure"/>
     <keyword type="macro" name="GST_VALUE_HOLDS_BUFFER()" link="gstreamer-GstValue.html#GST-VALUE-HOLDS-BUFFER:CAPS"/>
     <keyword type="macro" name="gst_value_get_buffer()" link="gstreamer-GstValue.html#gst-value-get-buffer"/>
     <keyword type="macro" name="gst_value_set_buffer()" link="gstreamer-GstValue.html#gst-value-set-buffer"/>
@@ -1826,12 +1852,12 @@
     <keyword type="macro" name="GST_VERSION_MINOR" link="gstreamer-GstVersion.html#GST-VERSION-MINOR:CAPS"/>
     <keyword type="macro" name="GST_VERSION_MICRO" link="gstreamer-GstVersion.html#GST-VERSION-MICRO:CAPS"/>
     <keyword type="macro" name="GST_VERSION_NANO" link="gstreamer-GstVersion.html#GST-VERSION-NANO:CAPS"/>
-    <keyword type="macro" name="GST_CHECK_VERSION()" link="gstreamer-GstVersion.html#GST-CHECK-VERSION:CAPS" since="0.10.18"/>
+    <keyword type="macro" name="GST_CHECK_VERSION()" link="gstreamer-GstVersion.html#GST-CHECK-VERSION:CAPS"/>
     <keyword type="enum" name="enum GstDebugLevel" link="gstreamer-GstInfo.html#GstDebugLevel"/>
     <keyword type="macro" name="GST_LEVEL_DEFAULT" link="gstreamer-GstInfo.html#GST-LEVEL-DEFAULT:CAPS"/>
     <keyword type="enum" name="enum GstDebugColorFlags" link="gstreamer-GstInfo.html#GstDebugColorFlags"/>
     <keyword type="struct" name="struct GstDebugCategory" link="gstreamer-GstInfo.html#GstDebugCategory"/>
-    <keyword type="enum" name="enum GstDebugGraphDetails" link="gstreamer-GstInfo.html#GstDebugGraphDetails" since="0.10.15"/>
+    <keyword type="enum" name="enum GstDebugGraphDetails" link="gstreamer-GstInfo.html#GstDebugGraphDetails"/>
     <keyword type="macro" name="GST_STR_NULL()" link="gstreamer-GstInfo.html#GST-STR-NULL:CAPS"/>
     <keyword type="macro" name="GST_DEBUG_PAD_NAME()" link="gstreamer-GstInfo.html#GST-DEBUG-PAD-NAME:CAPS"/>
     <keyword type="macro" name="GST_FUNCTION" link="gstreamer-GstInfo.html#GST-FUNCTION:CAPS"/>
@@ -1856,7 +1882,7 @@
     <keyword type="macro" name="GST_DEBUG_CATEGORY_EXTERN()" link="gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-EXTERN:CAPS"/>
     <keyword type="macro" name="GST_DEBUG_CATEGORY_STATIC()" link="gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-STATIC:CAPS"/>
     <keyword type="macro" name="GST_DEBUG_CATEGORY_INIT()" link="gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-INIT:CAPS"/>
-    <keyword type="macro" name="GST_DEBUG_CATEGORY_GET()" link="gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS" since="0.10.24"/>
+    <keyword type="macro" name="GST_DEBUG_CATEGORY_GET()" link="gstreamer-GstInfo.html#GST-DEBUG-CATEGORY-GET:CAPS"/>
     <keyword type="function" name="gst_debug_category_free ()" link="gstreamer-GstInfo.html#gst-debug-category-free"/>
     <keyword type="function" name="gst_debug_category_set_threshold ()" link="gstreamer-GstInfo.html#gst-debug-category-set-threshold"/>
     <keyword type="function" name="gst_debug_category_reset_threshold ()" link="gstreamer-GstInfo.html#gst-debug-category-reset-threshold"/>
@@ -1866,45 +1892,45 @@
     <keyword type="function" name="gst_debug_category_get_description ()" link="gstreamer-GstInfo.html#gst-debug-category-get-description"/>
     <keyword type="function" name="gst_debug_get_all_categories ()" link="gstreamer-GstInfo.html#gst-debug-get-all-categories"/>
     <keyword type="function" name="gst_debug_construct_term_color ()" link="gstreamer-GstInfo.html#gst-debug-construct-term-color"/>
-    <keyword type="function" name="gst_debug_construct_win_color ()" link="gstreamer-GstInfo.html#gst-debug-construct-win-color" since="0.10.23"/>
+    <keyword type="function" name="gst_debug_construct_win_color ()" link="gstreamer-GstInfo.html#gst-debug-construct-win-color"/>
     <keyword type="macro" name="GST_CAT_LEVEL_LOG()" link="gstreamer-GstInfo.html#GST-CAT-LEVEL-LOG:CAPS"/>
     <keyword type="macro" name="GST_CAT_ERROR_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-ERROR-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_CAT_WARNING_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-WARNING-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_CAT_INFO_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-INFO-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_CAT_DEBUG_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-DEBUG-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_CAT_LOG_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-LOG-OBJECT:CAPS"/>
-    <keyword type="macro" name="GST_CAT_FIXME_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-FIXME-OBJECT:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_CAT_TRACE_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-TRACE-OBJECT:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_CAT_MEMDUMP_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-MEMDUMP-OBJECT:CAPS" since="0.10.23"/>
+    <keyword type="macro" name="GST_CAT_FIXME_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-FIXME-OBJECT:CAPS"/>
+    <keyword type="macro" name="GST_CAT_TRACE_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-TRACE-OBJECT:CAPS"/>
+    <keyword type="macro" name="GST_CAT_MEMDUMP_OBJECT()" link="gstreamer-GstInfo.html#GST-CAT-MEMDUMP-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_CAT_ERROR()" link="gstreamer-GstInfo.html#GST-CAT-ERROR:CAPS"/>
     <keyword type="macro" name="GST_CAT_WARNING()" link="gstreamer-GstInfo.html#GST-CAT-WARNING:CAPS"/>
     <keyword type="macro" name="GST_CAT_INFO()" link="gstreamer-GstInfo.html#GST-CAT-INFO:CAPS"/>
     <keyword type="macro" name="GST_CAT_DEBUG()" link="gstreamer-GstInfo.html#GST-CAT-DEBUG:CAPS"/>
     <keyword type="macro" name="GST_CAT_LOG()" link="gstreamer-GstInfo.html#GST-CAT-LOG:CAPS"/>
-    <keyword type="macro" name="GST_CAT_FIXME()" link="gstreamer-GstInfo.html#GST-CAT-FIXME:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_CAT_TRACE()" link="gstreamer-GstInfo.html#GST-CAT-TRACE:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_CAT_MEMDUMP()" link="gstreamer-GstInfo.html#GST-CAT-MEMDUMP:CAPS" since="0.10.23"/>
+    <keyword type="macro" name="GST_CAT_FIXME()" link="gstreamer-GstInfo.html#GST-CAT-FIXME:CAPS"/>
+    <keyword type="macro" name="GST_CAT_TRACE()" link="gstreamer-GstInfo.html#GST-CAT-TRACE:CAPS"/>
+    <keyword type="macro" name="GST_CAT_MEMDUMP()" link="gstreamer-GstInfo.html#GST-CAT-MEMDUMP:CAPS"/>
     <keyword type="macro" name="GST_ERROR_OBJECT()" link="gstreamer-GstInfo.html#GST-ERROR-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_WARNING_OBJECT()" link="gstreamer-GstInfo.html#GST-WARNING-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_INFO_OBJECT()" link="gstreamer-GstInfo.html#GST-INFO-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_DEBUG_OBJECT()" link="gstreamer-GstInfo.html#GST-DEBUG-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_LOG_OBJECT()" link="gstreamer-GstInfo.html#GST-LOG-OBJECT:CAPS"/>
-    <keyword type="macro" name="GST_FIXME_OBJECT()" link="gstreamer-GstInfo.html#GST-FIXME-OBJECT:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_TRACE_OBJECT()" link="gstreamer-GstInfo.html#GST-TRACE-OBJECT:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_MEMDUMP_OBJECT()" link="gstreamer-GstInfo.html#GST-MEMDUMP-OBJECT:CAPS" since="0.10.23"/>
+    <keyword type="macro" name="GST_FIXME_OBJECT()" link="gstreamer-GstInfo.html#GST-FIXME-OBJECT:CAPS"/>
+    <keyword type="macro" name="GST_TRACE_OBJECT()" link="gstreamer-GstInfo.html#GST-TRACE-OBJECT:CAPS"/>
+    <keyword type="macro" name="GST_MEMDUMP_OBJECT()" link="gstreamer-GstInfo.html#GST-MEMDUMP-OBJECT:CAPS"/>
     <keyword type="macro" name="GST_ERROR()" link="gstreamer-GstInfo.html#GST-ERROR:CAPS"/>
     <keyword type="macro" name="GST_WARNING()" link="gstreamer-GstInfo.html#GST-WARNING:CAPS"/>
     <keyword type="macro" name="GST_INFO()" link="gstreamer-GstInfo.html#GST-INFO:CAPS"/>
     <keyword type="macro" name="GST_DEBUG()" link="gstreamer-GstInfo.html#GST-DEBUG:CAPS"/>
     <keyword type="macro" name="GST_LOG()" link="gstreamer-GstInfo.html#GST-LOG:CAPS"/>
-    <keyword type="macro" name="GST_FIXME()" link="gstreamer-GstInfo.html#GST-FIXME:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_TRACE()" link="gstreamer-GstInfo.html#GST-TRACE:CAPS" since="0.10.30"/>
-    <keyword type="macro" name="GST_MEMDUMP()" link="gstreamer-GstInfo.html#GST-MEMDUMP:CAPS" since="0.10.23"/>
-    <keyword type="macro" name="GST_DEBUG_REGISTER_FUNCPTR()" link="gstreamer-GstInfo.html#GST-DEBUG-REGISTER-FUNCPTR:CAPS" since="0.10.26"/>
+    <keyword type="macro" name="GST_FIXME()" link="gstreamer-GstInfo.html#GST-FIXME:CAPS"/>
+    <keyword type="macro" name="GST_TRACE()" link="gstreamer-GstInfo.html#GST-TRACE:CAPS"/>
+    <keyword type="macro" name="GST_MEMDUMP()" link="gstreamer-GstInfo.html#GST-MEMDUMP:CAPS"/>
+    <keyword type="macro" name="GST_DEBUG_REGISTER_FUNCPTR()" link="gstreamer-GstInfo.html#GST-DEBUG-REGISTER-FUNCPTR:CAPS"/>
     <keyword type="macro" name="GST_DEBUG_FUNCPTR()" link="gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR:CAPS"/>
     <keyword type="macro" name="GST_DEBUG_FUNCPTR_NAME()" link="gstreamer-GstInfo.html#GST-DEBUG-FUNCPTR-NAME:CAPS"/>
-    <keyword type="macro" name="GST_DEBUG_BIN_TO_DOT_FILE()" link="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS" since="0.10.15"/>
-    <keyword type="macro" name="GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()" link="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS" since="0.10.15"/>
+    <keyword type="macro" name="GST_DEBUG_BIN_TO_DOT_FILE()" link="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS"/>
+    <keyword type="macro" name="GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()" link="gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE-WITH-TS:CAPS"/>
     <keyword type="function" name="gst_debug_print_stack_trace ()" link="gstreamer-GstInfo.html#gst-debug-print-stack-trace"/>
     <keyword type="macro" name="GST_TIME_FORMAT" link="gstreamer-GstInfo.html#GST-TIME-FORMAT:CAPS"/>
     <keyword type="macro" name="GST_TIME_ARGS()" link="gstreamer-GstInfo.html#GST-TIME-ARGS:CAPS"/>
@@ -1958,7 +1984,6 @@
     <keyword type="constant" name="GST_CLOCK_FLAG_CAN_SET_RESOLUTION" link="GstClock.html#GST-CLOCK-FLAG-CAN-SET-RESOLUTION:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_FLAG_CAN_SET_MASTER" link="GstClock.html#GST-CLOCK-FLAG-CAN-SET-MASTER:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_FLAG_LAST" link="GstClock.html#GST-CLOCK-FLAG-LAST:CAPS"/>
-    <keyword type="constant" name="GST_ELEMENT_FLAG_UNPARENTING" link="GstElement.html#GST-ELEMENT-FLAG-UNPARENTING:CAPS"/>
     <keyword type="constant" name="GST_ELEMENT_FLAG_LOCKED_STATE" link="GstElement.html#GST-ELEMENT-FLAG-LOCKED-STATE:CAPS"/>
     <keyword type="constant" name="GST_ELEMENT_FLAG_SINK" link="GstElement.html#GST-ELEMENT-FLAG-SINK:CAPS"/>
     <keyword type="constant" name="GST_ELEMENT_FLAG_SOURCE" link="GstElement.html#GST-ELEMENT-FLAG-SOURCE:CAPS"/>
@@ -2129,6 +2154,8 @@
     <keyword type="constant" name="GST_MESSAGE_QOS" link="gstreamer-GstMessage.html#GST-MESSAGE-QOS:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_PROGRESS" link="gstreamer-GstMessage.html#GST-MESSAGE-PROGRESS:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_TOC" link="gstreamer-GstMessage.html#GST-MESSAGE-TOC:CAPS"/>
+    <keyword type="constant" name="GST_MESSAGE_RESET_TIME" link="gstreamer-GstMessage.html#GST-MESSAGE-RESET-TIME:CAPS"/>
+    <keyword type="constant" name="GST_MESSAGE_STREAM_START" link="gstreamer-GstMessage.html#GST-MESSAGE-STREAM-START:CAPS"/>
     <keyword type="constant" name="GST_MESSAGE_ANY" link="gstreamer-GstMessage.html#GST-MESSAGE-ANY:CAPS"/>
     <keyword type="constant" name="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK" link="gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS"/>
     <keyword type="constant" name="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK" link="gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS"/>
@@ -2149,7 +2176,13 @@
     <keyword type="constant" name="GST_META_FLAG_POOLED" link="gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS"/>
     <keyword type="constant" name="GST_META_FLAG_LOCKED" link="gstreamer-GstMeta.html#GST-META-FLAG-LOCKED:CAPS"/>
     <keyword type="constant" name="GST_META_FLAG_LAST" link="gstreamer-GstMeta.html#GST-META-FLAG-LAST:CAPS"/>
+    <keyword type="constant" name="GST_MINI_OBJECT_FLAG_LOCKABLE" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LOCKABLE:CAPS"/>
+    <keyword type="constant" name="GST_MINI_OBJECT_FLAG_LOCK_READONLY" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LOCK-READONLY:CAPS"/>
     <keyword type="constant" name="GST_MINI_OBJECT_FLAG_LAST" link="gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LAST:CAPS"/>
+    <keyword type="constant" name="GST_LOCK_FLAG_READ" link="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-READ:CAPS"/>
+    <keyword type="constant" name="GST_LOCK_FLAG_WRITE" link="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-WRITE:CAPS"/>
+    <keyword type="constant" name="GST_LOCK_FLAG_EXCLUSIVE" link="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-EXCLUSIVE:CAPS"/>
+    <keyword type="constant" name="GST_LOCK_FLAG_LAST" link="gstreamer-GstMiniObject.html#GST-LOCK-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_OBJECT_FLAG_LAST" link="GstObject.html#GST-OBJECT-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_PAD_UNKNOWN" link="GstPad.html#GST-PAD-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_PAD_SRC" link="GstPad.html#GST-PAD-SRC:CAPS"/>
@@ -2164,6 +2197,7 @@
     <keyword type="constant" name="GST_PAD_FLAG_FIXED_CAPS" link="GstPad.html#GST-PAD-FLAG-FIXED-CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_PROXY_CAPS" link="GstPad.html#GST-PAD-FLAG-PROXY-CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_PROXY_ALLOCATION" link="GstPad.html#GST-PAD-FLAG-PROXY-ALLOCATION:CAPS"/>
+    <keyword type="constant" name="GST_PAD_FLAG_PROXY_SCHEDULING" link="GstPad.html#GST-PAD-FLAG-PROXY-SCHEDULING:CAPS"/>
     <keyword type="constant" name="GST_PAD_FLAG_LAST" link="GstPad.html#GST-PAD-FLAG-LAST:CAPS"/>
     <keyword type="constant" name="GST_PAD_LINK_OK" link="GstPad.html#GST-PAD-LINK-OK:CAPS"/>
     <keyword type="constant" name="GST_PAD_LINK_WRONG_HIERARCHY" link="GstPad.html#GST-PAD-LINK-WRONG-HIERARCHY:CAPS"/>
@@ -2257,7 +2291,6 @@
     <keyword type="constant" name="GST_QUERY_ACCEPT_CAPS" link="gstreamer-GstQuery.html#GST-QUERY-ACCEPT-CAPS"/>
     <keyword type="constant" name="GST_QUERY_CAPS" link="gstreamer-GstQuery.html#GST-QUERY-CAPS"/>
     <keyword type="constant" name="GST_QUERY_DRAIN" link="gstreamer-GstQuery.html#GST-QUERY-DRAIN:CAPS"/>
-    <keyword type="constant" name="GST_QUERY_TOC" link="gstreamer-GstQuery.html#GST-QUERY-TOC:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_STREAM" link="gstreamer-GstQuery.html#GST-BUFFERING-STREAM:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_DOWNLOAD" link="gstreamer-GstQuery.html#GST-BUFFERING-DOWNLOAD:CAPS"/>
     <keyword type="constant" name="GST_BUFFERING_TIMESHIFT" link="gstreamer-GstQuery.html#GST-BUFFERING-TIMESHIFT:CAPS"/>
@@ -2267,6 +2300,7 @@
     <keyword type="constant" name="GST_SEGMENT_FLAG_NONE" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-NONE:CAPS"/>
     <keyword type="constant" name="GST_SEGMENT_FLAG_RESET" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-RESET:CAPS"/>
     <keyword type="constant" name="GST_SEGMENT_FLAG_SKIP" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SKIP:CAPS"/>
+    <keyword type="constant" name="GST_SEGMENT_FLAG_SEGMENT" link="gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SEGMENT:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_TYPE_REALTIME" link="GstSystemClock.html#GST-CLOCK-TYPE-REALTIME:CAPS"/>
     <keyword type="constant" name="GST_CLOCK_TYPE_MONOTONIC" link="GstSystemClock.html#GST-CLOCK-TYPE-MONOTONIC:CAPS"/>
     <keyword type="constant" name="GST_TAG_MERGE_UNDEFINED" link="gstreamer-GstTagList.html#GST-TAG-MERGE-UNDEFINED:CAPS"/>
@@ -2285,8 +2319,15 @@
     <keyword type="constant" name="GST_TASK_STARTED" link="GstTask.html#GST-TASK-STARTED:CAPS"/>
     <keyword type="constant" name="GST_TASK_STOPPED" link="GstTask.html#GST-TASK-STOPPED:CAPS"/>
     <keyword type="constant" name="GST_TASK_PAUSED" link="GstTask.html#GST-TASK-PAUSED:CAPS"/>
-    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_CHAPTER" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-CHAPTER:CAPS"/>
+    <keyword type="constant" name="GST_TOC_SCOPE_GLOBAL" link="gstreamer-GstToc.html#GST-TOC-SCOPE-GLOBAL:CAPS"/>
+    <keyword type="constant" name="GST_TOC_SCOPE_CURRENT" link="gstreamer-GstToc.html#GST-TOC-SCOPE-CURRENT:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_ANGLE" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-ANGLE:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_VERSION" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-VERSION:CAPS"/>
     <keyword type="constant" name="GST_TOC_ENTRY_TYPE_EDITION" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-EDITION:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_INVALID" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-INVALID:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_TITLE" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-TITLE:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_TRACK" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-TRACK:CAPS"/>
+    <keyword type="constant" name="GST_TOC_ENTRY_TYPE_CHAPTER" link="gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-CHAPTER:CAPS"/>
     <keyword type="constant" name="GST_TYPE_FIND_NONE" link="gstreamer-GstTypeFind.html#GST-TYPE-FIND-NONE:CAPS"/>
     <keyword type="constant" name="GST_TYPE_FIND_MINIMUM" link="gstreamer-GstTypeFind.html#GST-TYPE-FIND-MINIMUM:CAPS"/>
     <keyword type="constant" name="GST_TYPE_FIND_POSSIBLE" link="gstreamer-GstTypeFind.html#GST-TYPE-FIND-POSSIBLE:CAPS"/>
@@ -2296,7 +2337,7 @@
     <keyword type="constant" name="GST_URI_UNKNOWN" link="gstreamer-GstUriHandler.html#GST-URI-UNKNOWN:CAPS"/>
     <keyword type="constant" name="GST_URI_SINK" link="gstreamer-GstUriHandler.html#GST-URI-SINK:CAPS"/>
     <keyword type="constant" name="GST_URI_SRC" link="gstreamer-GstUriHandler.html#GST-URI-SRC:CAPS"/>
-    <keyword type="constant" name="GST_URI_ERROR_BAD_PROTOCOL" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-PROTOCOL:CAPS"/>
+    <keyword type="constant" name="GST_URI_ERROR_UNSUPPORTED_PROTOCOL" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-UNSUPPORTED-PROTOCOL:CAPS"/>
     <keyword type="constant" name="GST_URI_ERROR_BAD_URI" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-URI:CAPS"/>
     <keyword type="constant" name="GST_URI_ERROR_BAD_STATE" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-STATE:CAPS"/>
     <keyword type="constant" name="GST_URI_ERROR_BAD_REFERENCE" link="gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-REFERENCE:CAPS"/>
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index 9b735b9..01ec023 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Core Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Core 1.0 (0.11.91.1)
+      for GStreamer Core 1.0 (0.11.93)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</a>.
     </p></div>
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index cabc165..4e494f2 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -108,8 +108,11 @@
 <ANCHOR id="gst-buffer-unref" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref">
 <ANCHOR id="gst-buffer-get-sizes" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-sizes">
 <ANCHOR id="gst-buffer-get-size" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-size">
+<ANCHOR id="gst-buffer-get-sizes-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-sizes-range">
+<ANCHOR id="gst-buffer-resize-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-resize-range">
 <ANCHOR id="gst-buffer-resize" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-resize">
 <ANCHOR id="gst-buffer-set-size" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-set-size">
+<ANCHOR id="gst-buffer-peek-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-peek-memory">
 <ANCHOR id="gst-buffer-n-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-n-memory">
 <ANCHOR id="gst-buffer-insert-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-insert-memory">
 <ANCHOR id="gst-buffer-replace-memory-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-replace-memory-range">
@@ -125,6 +128,7 @@
 <ANCHOR id="gst-buffer-remove-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-memory">
 <ANCHOR id="gst-buffer-remove-all-memory" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-all-memory">
 <ANCHOR id="gst-buffer-map" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-map">
+<ANCHOR id="gst-buffer-map-range" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-map-range">
 <ANCHOR id="gst-buffer-unmap" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unmap">
 <ANCHOR id="gst-buffer-memcmp" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-memcmp">
 <ANCHOR id="gst-buffer-extract" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-extract">
@@ -146,6 +150,7 @@
 <ANCHOR id="gst-buffer-make-writable" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-make-writable">
 <ANCHOR id="gst-buffer-replace" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-replace">
 <ANCHOR id="gst-buffer-append" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-append">
+<ANCHOR id="gst-buffer-append-region" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-append-region">
 <ANCHOR id="gst-buffer-get-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-get-meta">
 <ANCHOR id="gst-buffer-add-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-add-meta">
 <ANCHOR id="gst-buffer-remove-meta" href="gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-remove-meta">
@@ -433,7 +438,6 @@
 <ANCHOR id="gst-clock-id-get-time" href="gstreamer-1.0/GstClock.html#gst-clock-id-get-time">
 <ANCHOR id="gst-clock-id-wait" href="gstreamer-1.0/GstClock.html#gst-clock-id-wait">
 <ANCHOR id="gst-clock-id-wait-async" href="gstreamer-1.0/GstClock.html#gst-clock-id-wait-async">
-<ANCHOR id="gst-clock-id-wait-async-full" href="gstreamer-1.0/GstClock.html#gst-clock-id-wait-async-full">
 <ANCHOR id="gst-clock-id-unschedule" href="gstreamer-1.0/GstClock.html#gst-clock-id-unschedule">
 <ANCHOR id="gst-clock-id-compare-func" href="gstreamer-1.0/GstClock.html#gst-clock-id-compare-func">
 <ANCHOR id="gst-clock-id-ref" href="gstreamer-1.0/GstClock.html#gst-clock-id-ref">
@@ -501,11 +505,23 @@
 <ANCHOR id="gst-date-time-new" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new">
 <ANCHOR id="gst-date-time-new-from-unix-epoch-local-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-local-time">
 <ANCHOR id="gst-date-time-new-from-unix-epoch-utc" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-from-unix-epoch-utc">
+<ANCHOR id="gst-date-time-new-ymd" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-ymd">
 <ANCHOR id="gst-date-time-new-local-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-local-time">
 <ANCHOR id="gst-date-time-new-now-local-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-now-local-time">
 <ANCHOR id="gst-date-time-new-now-utc" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-now-utc">
 <ANCHOR id="gst-date-time-ref" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-ref">
 <ANCHOR id="gst-date-time-unref" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-unref">
+<ANCHOR id="gst-date-time-has-day" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-has-day">
+<ANCHOR id="gst-date-time-has-month" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-has-month">
+<ANCHOR id="gst-date-time-has-second" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-has-second">
+<ANCHOR id="gst-date-time-has-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-has-time">
+<ANCHOR id="gst-date-time-has-year" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-has-year">
+<ANCHOR id="gst-date-time-new-y" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-y">
+<ANCHOR id="gst-date-time-new-ym" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-ym">
+<ANCHOR id="gst-date-time-new-from-iso8601-string" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-from-iso8601-string">
+<ANCHOR id="gst-date-time-to-iso8601-string" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-to-iso8601-string">
+<ANCHOR id="gst-date-time-new-from-g-date-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-new-from-g-date-time">
+<ANCHOR id="gst-date-time-to-g-date-time" href="gstreamer-1.0/gstreamer-GstDateTime.html#gst-date-time-to-g-date-time">
 <ANCHOR id="GstElement" href="gstreamer-1.0/GstElement.html">
 <ANCHOR id="GstElement.synopsis" href="gstreamer-1.0/GstElement.html#GstElement.synopsis">
 <ANCHOR id="GstElement.object-hierarchy" href="gstreamer-1.0/GstElement.html#GstElement.object-hierarchy">
@@ -516,7 +532,6 @@
 <ANCHOR id="GstElement-struct" href="gstreamer-1.0/GstElement.html#GstElement-struct">
 <ANCHOR id="GstElementClass" href="gstreamer-1.0/GstElement.html#GstElementClass">
 <ANCHOR id="GstElementFlags" href="gstreamer-1.0/GstElement.html#GstElementFlags">
-<ANCHOR id="GST-ELEMENT-FLAG-UNPARENTING:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-UNPARENTING:CAPS">
 <ANCHOR id="GST-ELEMENT-FLAG-LOCKED-STATE:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-LOCKED-STATE:CAPS">
 <ANCHOR id="GST-ELEMENT-FLAG-SINK:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-SINK:CAPS">
 <ANCHOR id="GST-ELEMENT-FLAG-SOURCE:CAPS" href="gstreamer-1.0/GstElement.html#GST-ELEMENT-FLAG-SOURCE:CAPS">
@@ -826,6 +841,7 @@
 <ANCHOR id="gst-event-new-gap" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-gap">
 <ANCHOR id="gst-event-parse-gap" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-gap">
 <ANCHOR id="gst-event-new-stream-start" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-stream-start">
+<ANCHOR id="gst-event-parse-stream-start" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-stream-start">
 <ANCHOR id="gst-event-new-segment" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-segment">
 <ANCHOR id="gst-event-parse-segment" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-segment">
 <ANCHOR id="gst-event-copy-segment" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-copy-segment">
@@ -878,6 +894,8 @@
 <ANCHOR id="gst-event-parse-toc" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-toc">
 <ANCHOR id="gst-event-new-toc-select" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-toc-select">
 <ANCHOR id="gst-event-parse-toc-select" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-toc-select">
+<ANCHOR id="gst-event-new-segment-done" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-new-segment-done">
+<ANCHOR id="gst-event-parse-segment-done" href="gstreamer-1.0/gstreamer-GstEvent.html#gst-event-parse-segment-done">
 <ANCHOR id="gstreamer-GstEvent.see-also" href="gstreamer-1.0/gstreamer-GstEvent.html#gstreamer-GstEvent.see-also">
 <ANCHOR id="gstreamer-GstFormat" href="gstreamer-1.0/gstreamer-GstFormat.html">
 <ANCHOR id="gstreamer-GstFormat.synopsis" href="gstreamer-1.0/gstreamer-GstFormat.html#gstreamer-GstFormat.synopsis">
@@ -916,18 +934,13 @@
 <ANCHOR id="gst-ghost-pad-set-target" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-set-target">
 <ANCHOR id="gst-ghost-pad-get-target" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-get-target">
 <ANCHOR id="gst-ghost-pad-construct" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-construct">
-<ANCHOR id="gst-ghost-pad-unlink-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-unlink-default">
-<ANCHOR id="gst-ghost-pad-link-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-link-default">
 <ANCHOR id="gst-ghost-pad-activate-mode-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-activate-mode-default">
 <ANCHOR id="gst-ghost-pad-internal-activate-mode-default" href="gstreamer-1.0/GstGhostPad.html#gst-ghost-pad-internal-activate-mode-default">
 <ANCHOR id="gst-proxy-pad-get-internal" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-get-internal">
-<ANCHOR id="gst-proxy-pad-event-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-event-default">
-<ANCHOR id="gst-proxy-pad-query-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-query-default">
 <ANCHOR id="gst-proxy-pad-iterate-internal-links-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-iterate-internal-links-default">
 <ANCHOR id="gst-proxy-pad-chain-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-chain-default">
 <ANCHOR id="gst-proxy-pad-chain-list-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-chain-list-default">
 <ANCHOR id="gst-proxy-pad-getrange-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-getrange-default">
-<ANCHOR id="gst-proxy-pad-unlink-default" href="gstreamer-1.0/GstGhostPad.html#gst-proxy-pad-unlink-default">
 <ANCHOR id="GstGhostPad.see-also" href="gstreamer-1.0/GstGhostPad.html#GstGhostPad.see-also">
 <ANCHOR id="gstreamer-GstIterator" href="gstreamer-1.0/gstreamer-GstIterator.html">
 <ANCHOR id="gstreamer-GstIterator.synopsis" href="gstreamer-1.0/gstreamer-GstIterator.html#gstreamer-GstIterator.synopsis">
@@ -981,6 +994,7 @@
 <ANCHOR id="GST-MEMORY-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-IS-SET:CAPS">
 <ANCHOR id="GST-MEMORY-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-FLAG-UNSET:CAPS">
 <ANCHOR id="GST-MEMORY-IS-READONLY:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-READONLY:CAPS">
+<ANCHOR id="GST-MEMORY-IS-NO-SHARE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-NO-SHARE:CAPS">
 <ANCHOR id="GST-MEMORY-IS-ZERO-PADDED:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PADDED:CAPS">
 <ANCHOR id="GST-MEMORY-IS-ZERO-PREFIXED:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MEMORY-IS-ZERO-PREFIXED:CAPS">
 <ANCHOR id="GstMemory" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemory">
@@ -988,37 +1002,22 @@
 <ANCHOR id="GST-MAP-READ:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-READ:CAPS">
 <ANCHOR id="GST-MAP-WRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-WRITE:CAPS">
 <ANCHOR id="GST-MAP-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-FLAG-LAST:CAPS">
+<ANCHOR id="GST-MAP-READWRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS">
 <ANCHOR id="GstMapInfo" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMapInfo">
 <ANCHOR id="GST-MAP-INFO-INIT:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-INFO-INIT:CAPS">
-<ANCHOR id="GST-MAP-READWRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-MAP-READWRITE:CAPS">
-<ANCHOR id="GstAllocationParams" href="gstreamer-1.0/gstreamer-GstMemory.html#GstAllocationParams">
-<ANCHOR id="GstAllocatorAllocFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstAllocatorAllocFunction">
 <ANCHOR id="GstMemoryMapFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryMapFunction">
 <ANCHOR id="GstMemoryUnmapFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryUnmapFunction">
-<ANCHOR id="GstMemoryFreeFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryFreeFunction">
 <ANCHOR id="GstMemoryCopyFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryCopyFunction">
 <ANCHOR id="GstMemoryShareFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryShareFunction">
 <ANCHOR id="GstMemoryIsSpanFunction" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryIsSpanFunction">
-<ANCHOR id="GstMemoryInfo" href="gstreamer-1.0/gstreamer-GstMemory.html#GstMemoryInfo">
-<ANCHOR id="GstAllocator" href="gstreamer-1.0/gstreamer-GstMemory.html#GstAllocator">
-<ANCHOR id="gst-allocator-new" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-new">
-<ANCHOR id="gst-allocator-get-memory-type" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-get-memory-type">
-<ANCHOR id="gst-allocator-ref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-ref">
-<ANCHOR id="gst-allocator-unref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-unref">
-<ANCHOR id="GST-ALLOCATOR-SYSMEM:CAPS" href="gstreamer-1.0/gstreamer-GstMemory.html#GST-ALLOCATOR-SYSMEM:CAPS">
-<ANCHOR id="gst-allocator-find" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-find">
-<ANCHOR id="gst-allocator-register" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-register">
-<ANCHOR id="gst-allocator-set-default" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-set-default">
-<ANCHOR id="gst-allocation-params-init" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocation-params-init">
-<ANCHOR id="gst-allocation-params-copy" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocation-params-copy">
-<ANCHOR id="gst-allocation-params-free" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocation-params-free">
-<ANCHOR id="gst-allocator-alloc" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-allocator-alloc">
-<ANCHOR id="gst-memory-new-wrapped" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-new-wrapped">
+<ANCHOR id="gst-memory-init" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-init">
 <ANCHOR id="gst-memory-ref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-ref">
 <ANCHOR id="gst-memory-unref" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-unref">
-<ANCHOR id="gst-memory-is-exclusive" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-is-exclusive">
 <ANCHOR id="gst-memory-get-sizes" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-get-sizes">
 <ANCHOR id="gst-memory-resize" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-resize">
+<ANCHOR id="gst-memory-lock" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-lock">
+<ANCHOR id="gst-memory-unlock" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-unlock">
+<ANCHOR id="gst-memory-is-writable" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-is-writable">
 <ANCHOR id="gst-memory-make-mapped" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-make-mapped">
 <ANCHOR id="gst-memory-map" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-map">
 <ANCHOR id="gst-memory-unmap" href="gstreamer-1.0/gstreamer-GstMemory.html#gst-memory-unmap">
@@ -1060,6 +1059,8 @@
 <ANCHOR id="GST-MESSAGE-QOS:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-QOS:CAPS">
 <ANCHOR id="GST-MESSAGE-PROGRESS:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-PROGRESS:CAPS">
 <ANCHOR id="GST-MESSAGE-TOC:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-TOC:CAPS">
+<ANCHOR id="GST-MESSAGE-RESET-TIME:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-RESET-TIME:CAPS">
+<ANCHOR id="GST-MESSAGE-STREAM-START:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-STREAM-START:CAPS">
 <ANCHOR id="GST-MESSAGE-ANY:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-ANY:CAPS">
 <ANCHOR id="GST-MESSAGE-SRC:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">
 <ANCHOR id="GST-MESSAGE-SRC-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SRC-NAME:CAPS">
@@ -1126,6 +1127,8 @@
 <ANCHOR id="gst-message-parse-qos-stats" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-qos-stats">
 <ANCHOR id="gst-message-new-toc" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-toc">
 <ANCHOR id="gst-message-parse-toc" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-toc">
+<ANCHOR id="gst-message-new-reset-time" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-new-reset-time">
+<ANCHOR id="gst-message-parse-reset-time" href="gstreamer-1.0/gstreamer-GstMessage.html#gst-message-parse-reset-time">
 <ANCHOR id="GstStructureChangeType" href="gstreamer-1.0/gstreamer-GstMessage.html#GstStructureChangeType">
 <ANCHOR id="GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-LINK:CAPS">
 <ANCHOR id="GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS" href="gstreamer-1.0/gstreamer-GstMessage.html#GST-STRUCTURE-CHANGE-TYPE-PAD-UNLINK:CAPS">
@@ -1185,32 +1188,45 @@
 <ANCHOR id="gstreamer-GstMiniObject.description" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.description">
 <ANCHOR id="gstreamer-GstMiniObject.details" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gstreamer-GstMiniObject.details">
 <ANCHOR id="GstMiniObject" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObject">
-<ANCHOR id="GstMiniObjectFlags" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectFlags">
-<ANCHOR id="GST-MINI-OBJECT-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LAST:CAPS">
 <ANCHOR id="GstMiniObjectCopyFunction" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectCopyFunction">
 <ANCHOR id="GstMiniObjectDisposeFunction" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectDisposeFunction">
 <ANCHOR id="GstMiniObjectFreeFunction" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectFreeFunction">
-<ANCHOR id="GstMiniObjectWeakNotify" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectWeakNotify">
+<ANCHOR id="GstMiniObjectNotify" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectNotify">
 <ANCHOR id="GST-MINI-OBJECT-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-TYPE:CAPS">
+<ANCHOR id="GstMiniObjectFlags" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObjectFlags">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-LOCKABLE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LOCKABLE:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-LOCK-READONLY:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LOCK-READONLY:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-LAST:CAPS">
 <ANCHOR id="GST-MINI-OBJECT-FLAGS:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAGS:CAPS">
 <ANCHOR id="GST-MINI-OBJECT-FLAG-IS-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-IS-SET:CAPS">
 <ANCHOR id="GST-MINI-OBJECT-FLAG-SET:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-SET:CAPS">
 <ANCHOR id="GST-MINI-OBJECT-FLAG-UNSET:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-FLAG-UNSET:CAPS">
+<ANCHOR id="GST-MINI-OBJECT-IS-LOCKABLE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-IS-LOCKABLE:CAPS">
+<ANCHOR id="GstLockFlags" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GstLockFlags">
+<ANCHOR id="GST-LOCK-FLAG-READ:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-LOCK-FLAG-READ:CAPS">
+<ANCHOR id="GST-LOCK-FLAG-WRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-LOCK-FLAG-WRITE:CAPS">
+<ANCHOR id="GST-LOCK-FLAG-EXCLUSIVE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-LOCK-FLAG-EXCLUSIVE:CAPS">
+<ANCHOR id="GST-LOCK-FLAG-LAST:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-LOCK-FLAG-LAST:CAPS">
+<ANCHOR id="GST-LOCK-FLAG-READWRITE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-LOCK-FLAG-READWRITE:CAPS">
 <ANCHOR id="GST-MINI-OBJECT-REFCOUNT:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT:CAPS">
 <ANCHOR id="GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-REFCOUNT-VALUE:CAPS">
-<ANCHOR id="GST-MINI-OBJECT-SIZE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-MINI-OBJECT-SIZE:CAPS">
 <ANCHOR id="GST-DEFINE-MINI-OBJECT-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstMiniObject.html#GST-DEFINE-MINI-OBJECT-TYPE:CAPS">
 <ANCHOR id="gst-mini-object-init" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-init">
-<ANCHOR id="gst-mini-object-copy" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-copy">
-<ANCHOR id="gst-mini-object-is-writable" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-is-writable">
-<ANCHOR id="gst-mini-object-make-writable" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-make-writable">
 <ANCHOR id="gst-mini-object-ref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-ref">
 <ANCHOR id="gst-mini-object-unref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-unref">
 <ANCHOR id="gst-mini-object-weak-ref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-weak-ref">
 <ANCHOR id="gst-mini-object-weak-unref" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-weak-unref">
+<ANCHOR id="gst-mini-object-lock" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-lock">
+<ANCHOR id="gst-mini-object-unlock" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-unlock">
+<ANCHOR id="gst-mini-object-is-writable" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-is-writable">
+<ANCHOR id="gst-mini-object-make-writable" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-make-writable">
+<ANCHOR id="gst-mini-object-copy" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-copy">
+<ANCHOR id="gst-mini-object-set-qdata" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-set-qdata">
+<ANCHOR id="gst-mini-object-get-qdata" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-get-qdata">
+<ANCHOR id="gst-mini-object-steal-qdata" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-steal-qdata">
 <ANCHOR id="gst-mini-object-replace" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-replace">
-<ANCHOR id="gst-mini-object-steal" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-steal">
 <ANCHOR id="gst-mini-object-take" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-take">
+<ANCHOR id="gst-mini-object-steal" href="gstreamer-1.0/gstreamer-GstMiniObject.html#gst-mini-object-steal">
 <ANCHOR id="GstObject" href="gstreamer-1.0/GstObject.html">
 <ANCHOR id="GstObject.synopsis" href="gstreamer-1.0/GstObject.html#GstObject.synopsis">
 <ANCHOR id="GstObject.object-hierarchy" href="gstreamer-1.0/GstObject.html#GstObject.object-hierarchy">
@@ -1289,6 +1305,7 @@
 <ANCHOR id="GST-PAD-FLAG-FIXED-CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-FIXED-CAPS">
 <ANCHOR id="GST-PAD-FLAG-PROXY-CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-PROXY-CAPS">
 <ANCHOR id="GST-PAD-FLAG-PROXY-ALLOCATION:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-PROXY-ALLOCATION:CAPS">
+<ANCHOR id="GST-PAD-FLAG-PROXY-SCHEDULING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-PROXY-SCHEDULING:CAPS">
 <ANCHOR id="GST-PAD-FLAG-LAST:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-LAST:CAPS">
 <ANCHOR id="GstPadLinkReturn" href="gstreamer-1.0/GstPad.html#GstPadLinkReturn">
 <ANCHOR id="GST-PAD-LINK-OK:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-LINK-OK:CAPS">
@@ -1337,7 +1354,6 @@
 <ANCHOR id="gst-pad-get-allowed-caps" href="gstreamer-1.0/GstPad.html#gst-pad-get-allowed-caps">
 <ANCHOR id="gst-pad-get-current-caps" href="gstreamer-1.0/GstPad.html#gst-pad-get-current-caps">
 <ANCHOR id="gst-pad-get-pad-template-caps" href="gstreamer-1.0/GstPad.html#gst-pad-get-pad-template-caps">
-<ANCHOR id="gst-pad-set-caps" href="gstreamer-1.0/GstPad.html#gst-pad-set-caps">
 <ANCHOR id="gst-pad-get-peer" href="gstreamer-1.0/GstPad.html#gst-pad-get-peer">
 <ANCHOR id="gst-pad-use-fixed-caps" href="gstreamer-1.0/GstPad.html#gst-pad-use-fixed-caps">
 <ANCHOR id="gst-pad-has-current-caps" href="gstreamer-1.0/GstPad.html#gst-pad-has-current-caps">
@@ -1452,6 +1468,7 @@
 <ANCHOR id="gst-pad-iterate-internal-links-default" href="gstreamer-1.0/GstPad.html#gst-pad-iterate-internal-links-default">
 <ANCHOR id="gst-pad-set-element-private" href="gstreamer-1.0/GstPad.html#gst-pad-set-element-private">
 <ANCHOR id="gst-pad-get-element-private" href="gstreamer-1.0/GstPad.html#gst-pad-get-element-private">
+<ANCHOR id="gst-pad-create-stream-id" href="gstreamer-1.0/GstPad.html#gst-pad-create-stream-id">
 <ANCHOR id="GstPadForwardFunction" href="gstreamer-1.0/GstPad.html#GstPadForwardFunction">
 <ANCHOR id="gst-pad-forward" href="gstreamer-1.0/GstPad.html#gst-pad-forward">
 <ANCHOR id="gst-pad-chain" href="gstreamer-1.0/GstPad.html#gst-pad-chain">
@@ -1713,7 +1730,6 @@
 <ANCHOR id="GST-QUERY-ACCEPT-CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-ACCEPT-CAPS">
 <ANCHOR id="GST-QUERY-CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-CAPS">
 <ANCHOR id="GST-QUERY-DRAIN:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-DRAIN:CAPS">
-<ANCHOR id="GST-QUERY-TOC:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TOC:CAPS">
 <ANCHOR id="GST-QUERY-TYPE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE:CAPS">
 <ANCHOR id="GST-QUERY-TYPE-NAME:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-TYPE-NAME:CAPS">
 <ANCHOR id="GST-QUERY-IS-UPSTREAM:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-QUERY-IS-UPSTREAM:CAPS">
@@ -1758,7 +1774,6 @@
 <ANCHOR id="gst-query-parse-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-caps">
 <ANCHOR id="gst-query-set-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-caps-result">
 <ANCHOR id="gst-query-parse-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-caps-result">
-<ANCHOR id="gst-query-intersect-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-intersect-caps-result">
 <ANCHOR id="gst-query-new-accept-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-accept-caps">
 <ANCHOR id="gst-query-parse-accept-caps" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-accept-caps">
 <ANCHOR id="gst-query-set-accept-caps-result" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-accept-caps-result">
@@ -1795,7 +1810,7 @@
 <ANCHOR id="gst-query-get-n-allocation-metas" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-get-n-allocation-metas">
 <ANCHOR id="gst-query-parse-nth-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-allocation-meta">
 <ANCHOR id="gst-query-remove-nth-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-remove-nth-allocation-meta">
-<ANCHOR id="gst-query-has-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-has-allocation-meta">
+<ANCHOR id="gst-query-find-allocation-meta" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-find-allocation-meta">
 <ANCHOR id="GstSchedulingFlags" href="gstreamer-1.0/gstreamer-GstQuery.html#GstSchedulingFlags">
 <ANCHOR id="GST-SCHEDULING-FLAG-SEEKABLE:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-SEEKABLE:CAPS">
 <ANCHOR id="GST-SCHEDULING-FLAG-SEQUENTIAL:CAPS" href="gstreamer-1.0/gstreamer-GstQuery.html#GST-SCHEDULING-FLAG-SEQUENTIAL:CAPS">
@@ -1807,9 +1822,6 @@
 <ANCHOR id="gst-query-parse-nth-scheduling-mode" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-nth-scheduling-mode">
 <ANCHOR id="gst-query-has-scheduling-mode" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-has-scheduling-mode">
 <ANCHOR id="gst-query-new-drain" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-drain">
-<ANCHOR id="gst-query-new-toc" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-new-toc">
-<ANCHOR id="gst-query-parse-toc" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-parse-toc">
-<ANCHOR id="gst-query-set-toc" href="gstreamer-1.0/gstreamer-GstQuery.html#gst-query-set-toc">
 <ANCHOR id="gstreamer-GstQuery.see-also" href="gstreamer-1.0/gstreamer-GstQuery.html#gstreamer-GstQuery.see-also">
 <ANCHOR id="GstRegistry" href="gstreamer-1.0/GstRegistry.html">
 <ANCHOR id="GstRegistry.synopsis" href="gstreamer-1.0/GstRegistry.html#GstRegistry.synopsis">
@@ -1850,6 +1862,7 @@
 <ANCHOR id="GST-SEGMENT-FLAG-NONE:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-NONE:CAPS">
 <ANCHOR id="GST-SEGMENT-FLAG-RESET:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-RESET:CAPS">
 <ANCHOR id="GST-SEGMENT-FLAG-SKIP:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SKIP:CAPS">
+<ANCHOR id="GST-SEGMENT-FLAG-SEGMENT:CAPS" href="gstreamer-1.0/gstreamer-GstSegment.html#GST-SEGMENT-FLAG-SEGMENT:CAPS">
 <ANCHOR id="gst-segment-clip" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-clip">
 <ANCHOR id="gst-segment-init" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-init">
 <ANCHOR id="gst-segment-new" href="gstreamer-1.0/gstreamer-GstSegment.html#gst-segment-new">
@@ -2062,6 +2075,7 @@
 <ANCHOR id="gst-tag-list-new-empty" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-empty">
 <ANCHOR id="gst-tag-list-new-valist" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-valist">
 <ANCHOR id="gst-tag-list-new-from-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-from-string">
+<ANCHOR id="gst-tag-list-free" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-free">
 <ANCHOR id="gst-tag-list-to-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-to-string">
 <ANCHOR id="gst-tag-list-is-empty" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-empty">
 <ANCHOR id="gst-tag-list-is-equal" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-equal">
@@ -2107,8 +2121,8 @@
 <ANCHOR id="gst-tag-list-get-date-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date-index">
 <ANCHOR id="gst-tag-list-get-date-time" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date-time">
 <ANCHOR id="gst-tag-list-get-date-time-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-date-time-index">
-<ANCHOR id="gst-tag-list-get-buffer" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-buffer">
-<ANCHOR id="gst-tag-list-get-buffer-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-buffer-index">
+<ANCHOR id="gst-tag-list-get-sample" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-sample">
+<ANCHOR id="gst-tag-list-get-sample-index" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-sample-index">
 <ANCHOR id="GstTagSetter" href="gstreamer-1.0/GstTagSetter.html">
 <ANCHOR id="GstTagSetter.synopsis" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.synopsis">
 <ANCHOR id="GstTagSetter.object-hierarchy" href="gstreamer-1.0/GstTagSetter.html#GstTagSetter.object-hierarchy">
@@ -2148,8 +2162,9 @@
 <ANCHOR id="gst-task-set-lock" href="gstreamer-1.0/GstTask.html#gst-task-set-lock">
 <ANCHOR id="gst-task-set-pool" href="gstreamer-1.0/GstTask.html#gst-task-set-pool">
 <ANCHOR id="gst-task-get-pool" href="gstreamer-1.0/GstTask.html#gst-task-get-pool">
-<ANCHOR id="GstTaskThreadCallbacks" href="gstreamer-1.0/GstTask.html#GstTaskThreadCallbacks">
-<ANCHOR id="gst-task-set-thread-callbacks" href="gstreamer-1.0/GstTask.html#gst-task-set-thread-callbacks">
+<ANCHOR id="GstTaskThreadFunc" href="gstreamer-1.0/GstTask.html#GstTaskThreadFunc">
+<ANCHOR id="gst-task-set-enter-callback" href="gstreamer-1.0/GstTask.html#gst-task-set-enter-callback">
+<ANCHOR id="gst-task-set-leave-callback" href="gstreamer-1.0/GstTask.html#gst-task-set-leave-callback">
 <ANCHOR id="gst-task-get-state" href="gstreamer-1.0/GstTask.html#gst-task-get-state">
 <ANCHOR id="gst-task-set-state" href="gstreamer-1.0/GstTask.html#gst-task-set-state">
 <ANCHOR id="gst-task-pause" href="gstreamer-1.0/GstTask.html#gst-task-pause">
@@ -2177,35 +2192,62 @@
 <ANCHOR id="gstreamer-GstToc.description" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.description">
 <ANCHOR id="gstreamer-GstToc.details" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.details">
 <ANCHOR id="GstToc" href="gstreamer-1.0/gstreamer-GstToc.html#GstToc">
+<ANCHOR id="GstTocScope" href="gstreamer-1.0/gstreamer-GstToc.html#GstTocScope">
+<ANCHOR id="GST-TOC-SCOPE-GLOBAL:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-SCOPE-GLOBAL:CAPS">
+<ANCHOR id="GST-TOC-SCOPE-CURRENT:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-SCOPE-CURRENT:CAPS">
 <ANCHOR id="GstTocEntry" href="gstreamer-1.0/gstreamer-GstToc.html#GstTocEntry">
 <ANCHOR id="GstTocEntryType" href="gstreamer-1.0/gstreamer-GstToc.html#GstTocEntryType">
-<ANCHOR id="GST-TOC-ENTRY-TYPE-CHAPTER:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-CHAPTER:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-ANGLE:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-ANGLE:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-VERSION:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-VERSION:CAPS">
 <ANCHOR id="GST-TOC-ENTRY-TYPE-EDITION:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-EDITION:CAPS">
-<ANCHOR id="gst-toc-entry-new" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-new">
-<ANCHOR id="gst-toc-entry-new-with-pad" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-new-with-pad">
-<ANCHOR id="gst-toc-entry-free" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-free">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-INVALID:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-INVALID:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-TITLE:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-TITLE:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-TRACK:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-TRACK:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-CHAPTER:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-CHAPTER:CAPS">
 <ANCHOR id="gst-toc-new" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-new">
-<ANCHOR id="gst-toc-free" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-free">
-<ANCHOR id="gst-toc-entry-copy" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-copy">
+<ANCHOR id="gst-toc-ref" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-ref">
+<ANCHOR id="gst-toc-unref" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-unref">
 <ANCHOR id="gst-toc-copy" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-copy">
+<ANCHOR id="gst-toc-make-writable" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-make-writable">
+<ANCHOR id="gst-toc-get-scope" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-get-scope">
+<ANCHOR id="gst-toc-get-entries" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-get-entries">
+<ANCHOR id="gst-toc-append-entry" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-append-entry">
+<ANCHOR id="gst-toc-get-tags" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-get-tags">
+<ANCHOR id="gst-toc-merge-tags" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-merge-tags">
+<ANCHOR id="gst-toc-set-tags" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-set-tags">
+<ANCHOR id="gst-toc-dump" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-dump">
+<ANCHOR id="gst-toc-entry-new" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-new">
+<ANCHOR id="gst-toc-entry-ref" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-ref">
+<ANCHOR id="gst-toc-entry-unref" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-unref">
+<ANCHOR id="gst-toc-entry-copy" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-copy">
+<ANCHOR id="gst-toc-entry-make-writable" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-make-writable">
 <ANCHOR id="gst-toc-find-entry" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-find-entry">
-<ANCHOR id="gst-toc-entry-get-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-start-stop">
-<ANCHOR id="gst-toc-entry-set-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-set-start-stop">
+<ANCHOR id="gst-toc-entry-get-toc" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-toc">
+<ANCHOR id="gst-toc-entry-get-uid" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-uid">
+<ANCHOR id="gst-toc-entry-get-parent" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-parent">
+<ANCHOR id="gst-toc-entry-get-sub-entries" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-sub-entries">
+<ANCHOR id="gst-toc-entry-append-sub-entry" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-append-sub-entry">
+<ANCHOR id="gst-toc-entry-get-start-stop-times" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-start-stop-times">
+<ANCHOR id="gst-toc-entry-set-start-stop-times" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-set-start-stop-times">
+<ANCHOR id="gst-toc-entry-get-tags" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-tags">
+<ANCHOR id="gst-toc-entry-merge-tags" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-merge-tags">
+<ANCHOR id="gst-toc-entry-set-tags" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-set-tags">
 <ANCHOR id="gst-toc-entry-type-get-nick" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-type-get-nick">
+<ANCHOR id="gst-toc-entry-get-entry-type" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-entry-type">
+<ANCHOR id="gst-toc-entry-is-alternative" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-is-alternative">
+<ANCHOR id="gst-toc-entry-is-sequence" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-is-sequence">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-IS-ALTERNATIVE:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-ALTERNATIVE:CAPS">
+<ANCHOR id="GST-TOC-ENTRY-TYPE-IS-SEQUENCE:CAPS" href="gstreamer-1.0/gstreamer-GstToc.html#GST-TOC-ENTRY-TYPE-IS-SEQUENCE:CAPS">
 <ANCHOR id="gstreamer-GstToc.see-also" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.see-also">
 <ANCHOR id="gstreamer-GstTocSetter" href="gstreamer-1.0/gstreamer-GstTocSetter.html">
 <ANCHOR id="gstreamer-GstTocSetter.synopsis" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.synopsis">
 <ANCHOR id="gstreamer-GstTocSetter.description" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.description">
 <ANCHOR id="gstreamer-GstTocSetter.details" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.details">
 <ANCHOR id="GstTocSetter" href="gstreamer-1.0/gstreamer-GstTocSetter.html#GstTocSetter">
-<ANCHOR id="GstTocSetterIFace" href="gstreamer-1.0/gstreamer-GstTocSetter.html#GstTocSetterIFace">
-<ANCHOR id="gst-toc-setter-get-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc">
-<ANCHOR id="gst-toc-setter-get-toc-copy" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-copy">
-<ANCHOR id="gst-toc-setter-reset-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-reset-toc">
+<ANCHOR id="GstTocSetterInterface" href="gstreamer-1.0/gstreamer-GstTocSetter.html#GstTocSetterInterface">
 <ANCHOR id="gst-toc-setter-set-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-set-toc">
-<ANCHOR id="gst-toc-setter-get-toc-entry" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry">
-<ANCHOR id="gst-toc-setter-get-toc-entry-copy" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc-entry-copy">
-<ANCHOR id="gst-toc-setter-add-toc-entry" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-add-toc-entry">
+<ANCHOR id="gst-toc-setter-get-toc" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-get-toc">
+<ANCHOR id="gst-toc-setter-reset" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gst-toc-setter-reset">
 <ANCHOR id="gstreamer-GstTypeFind" href="gstreamer-1.0/gstreamer-GstTypeFind.html">
 <ANCHOR id="gstreamer-GstTypeFind.synopsis" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.synopsis">
 <ANCHOR id="gstreamer-GstTypeFind.description" href="gstreamer-1.0/gstreamer-GstTypeFind.html#gstreamer-GstTypeFind.description">
@@ -2233,6 +2275,7 @@
 <ANCHOR id="gst-type-find-factory-get-list" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-list">
 <ANCHOR id="gst-type-find-factory-get-extensions" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-extensions">
 <ANCHOR id="gst-type-find-factory-get-caps" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-get-caps">
+<ANCHOR id="gst-type-find-factory-has-function" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-has-function">
 <ANCHOR id="gst-type-find-factory-call-function" href="gstreamer-1.0/GstTypeFindFactory.html#gst-type-find-factory-call-function">
 <ANCHOR id="gstreamer-GstUriHandler" href="gstreamer-1.0/gstreamer-GstUriHandler.html">
 <ANCHOR id="gstreamer-GstUriHandler.synopsis" href="gstreamer-1.0/gstreamer-GstUriHandler.html#gstreamer-GstUriHandler.synopsis">
@@ -2247,7 +2290,7 @@
 <ANCHOR id="GST-URI-SINK:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-SINK:CAPS">
 <ANCHOR id="GST-URI-SRC:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-SRC:CAPS">
 <ANCHOR id="GstURIError" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIError">
-<ANCHOR id="GST-URI-ERROR-BAD-PROTOCOL:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-PROTOCOL:CAPS">
+<ANCHOR id="GST-URI-ERROR-UNSUPPORTED-PROTOCOL:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-UNSUPPORTED-PROTOCOL:CAPS">
 <ANCHOR id="GST-URI-ERROR-BAD-URI:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-URI:CAPS">
 <ANCHOR id="GST-URI-ERROR-BAD-STATE:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-STATE:CAPS">
 <ANCHOR id="GST-URI-ERROR-BAD-REFERENCE:CAPS" href="gstreamer-1.0/gstreamer-GstUriHandler.html#GST-URI-ERROR-BAD-REFERENCE:CAPS">
@@ -2322,8 +2365,6 @@
 <ANCHOR id="GFLOAT-TO-LE:CAPS" href="gstreamer-1.0/gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS">
 <ANCHOR id="gst-flow-get-name" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-flow-get-name">
 <ANCHOR id="gst-flow-to-quark" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-flow-to-quark">
-<ANCHOR id="gst-print-element-args" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-print-element-args">
-<ANCHOR id="gst-print-pad-caps" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-print-pad-caps">
 <ANCHOR id="gst-guint64-to-gdouble" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-guint64-to-gdouble">
 <ANCHOR id="gst-gdouble-to-guint64" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-gdouble-to-guint64">
 <ANCHOR id="gst-util-dump-mem" href="gstreamer-1.0/gstreamer-GstUtils.html#gst-util-dump-mem">
@@ -2577,6 +2618,7 @@
 <ANCHOR id="gst-debug-bin-to-dot-file-with-ts" href="gstreamer-1.0/gstreamer-GstInfo.html#gst-debug-bin-to-dot-file-with-ts">
 <ANCHOR id="gstreamer-GstInfo.see-also" href="gstreamer-1.0/gstreamer-GstInfo.html#gstreamer-GstInfo.see-also">
 <ANCHOR id="annotation-glossterm-out" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-scope async" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-scope async">
 <ANCHOR id="annotation-glossterm-allow-none" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-allow-none">
 <ANCHOR id="annotation-glossterm-inout" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-inout">
 <ANCHOR id="annotation-glossterm-closure" href="gstreamer-1.0/annotation-glossary.html#annotation-glossterm-closure">
diff --git a/docs/gst/running.xml b/docs/gst/running.xml
index ce64a24..b6bf59a 100644
--- a/docs/gst/running.xml
+++ b/docs/gst/running.xml
@@ -201,7 +201,12 @@
   <para>
 To get all possible debug output, set
 <envar>GST_DEBUG</envar>
-to <option>*:9</option>
+to <option>*:9</option>. For debugging purposes a <option>*:6</option> debug
+log is usually the most useful, as it contains all important information, but
+hides a lot of noise such as refs/unrefs. For bug reporting purposes, a
+<option>*:6</option> log is also what will be requested usually. It's often
+also worth running with <option>*:3</option> to see if there are any
+non-fatal errors or warnings that might be related to the problem at hand.
   </para>
 
 </formalpara>
@@ -298,7 +303,8 @@
   Keep track of the unfreed memory pointers and dump an overview of all unfreed
   memory at program exit. Together with a level 9 debug log this can be used to
   follow the lifecycle of leaked objects in order to track down where they are
-  leaked.
+  leaked. This can be useful for debugging memory leaks in situations where
+  tools such as valgrind are not available, or not an option.
 </para>
         </listitem>
       </varlistentry>
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 7b7f275..4d65adb 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -190,7 +190,9 @@
 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@
diff --git a/docs/libs/gstreamer-libs-sections.txt b/docs/libs/gstreamer-libs-sections.txt
index a5dbbda..73b1408 100644
--- a/docs/libs/gstreamer-libs-sections.txt
+++ b/docs/libs/gstreamer-libs-sections.txt
@@ -648,10 +648,6 @@
 gst_collect_pads_stop
 
 gst_collect_pads_available
-gst_collect_pads_is_active
-
-gst_collect_pads_collect
-gst_collect_pads_collect_range
 
 gst_collect_pads_flush
 gst_collect_pads_peek
diff --git a/docs/libs/html/GstAdapter.html b/docs/libs/html/GstAdapter.html
index dcbe437..5573c8a 100644
--- a/docs/libs/html/GstAdapter.html
+++ b/docs/libs/html/GstAdapter.html
@@ -46,7 +46,7 @@
 <a class="link" href="GstAdapter.html" title="GstAdapter"><span class="returnvalue">GstAdapter</span></a> *        <a class="link" href="GstAdapter.html#gst-adapter-new" title="gst_adapter_new ()">gst_adapter_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-clear" title="gst_adapter_clear ()">gst_adapter_clear</a>                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-push" title="gst_adapter_push ()">gst_adapter_push</a>                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="returnvalue">gconstpointer</span></a>       <a class="link" href="GstAdapter.html#gst-adapter-map" title="gst_adapter_map ()">gst_adapter_map</a>                     (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstAdapter.html#gst-adapter-unmap" title="gst_adapter_unmap ()">gst_adapter_unmap</a>                   (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
@@ -60,13 +60,13 @@
 <span class="returnvalue">gsize</span>               <a class="link" href="GstAdapter.html#gst-adapter-available-fast" title="gst_adapter_available_fast ()">gst_adapter_available_fast</a>          (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>            <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()">gst_adapter_take</a>                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstAdapter.html#gst-adapter-take-buffer" title="gst_adapter_take_buffer ()">gst_adapter_take_buffer</a>             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstAdapter.html#gst-adapter-take-buffer" title="gst_adapter_take_buffer ()">gst_adapter_take_buffer</a>             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GstAdapter.html#gst-adapter-take-list" title="gst_adapter_take_list ()">gst_adapter_take_list</a>               (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-pts" title="gst_adapter_prev_pts ()">gst_adapter_prev_pts</a>                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-pts" title="gst_adapter_prev_pts ()">gst_adapter_prev_pts</a>                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-dts" title="gst_adapter_prev_dts ()">gst_adapter_prev_dts</a>                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstAdapter.html#gst-adapter-prev-dts" title="gst_adapter_prev_dts ()">gst_adapter_prev_dts</a>                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);
 <span class="returnvalue">gsize</span>               <a class="link" href="GstAdapter.html#gst-adapter-masked-scan-uint32" title="gst_adapter_masked_scan_uint32 ()">gst_adapter_masked_scan_uint32</a>      (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">guint32</span> mask</code></em>,
@@ -154,21 +154,21 @@
   GstFlowReturn ret <span class="gtkdoc opt">=</span> GST_FLOW_OK<span class="gtkdoc opt">;</span>
 
   <span class="gtkdoc slc">// will give the element an extra ref; remember to drop it</span>
-  <span class="keyword">this</span> <span class="gtkdoc opt">=</span> <span class="function">MY_ELEMENT</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-get-parent">gst_pad_get_parent</a></span> <span class="gtkdoc opt">(</span>pad<span class="gtkdoc opt">));</span>
+  <span class="keyword">this</span> <span class="gtkdoc opt">=</span> <span class="function">MY_ELEMENT</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-1.0/GstPad.html#gst-pad-get-parent">gst_pad_get_parent</a></span> <span class="gtkdoc opt">(</span>pad<span class="gtkdoc opt">));</span>
   adapter <span class="gtkdoc opt">=</span> <span class="keyword">this</span><span class="gtkdoc opt">-&gt;</span>adapter<span class="gtkdoc opt">;</span>
 
   <span class="gtkdoc slc">// put buffer into adapter</span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-push">gst_adapter_push</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> buffer<span class="gtkdoc opt">);</span>
+  <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-push">gst_adapter_push</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> buffer<span class="gtkdoc opt">);</span>
   <span class="gtkdoc slc">// while we can read out 512 bytes, process them</span>
-  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-available">gst_adapter_available</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">) &gt;=</span> <span class="number">512</span> <span class="gtkdoc opt">&amp;&amp;</span> ret <span class="gtkdoc opt">==</span> GST_FLOW_OK<span class="gtkdoc opt">) {</span>
-    <span class="gtkdoc kwb">const</span> guint8 <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-map">gst_adapter_map</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
+  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-available">gst_adapter_available</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">) &gt;=</span> <span class="number">512</span> <span class="gtkdoc opt">&amp;&amp;</span> ret <span class="gtkdoc opt">==</span> GST_FLOW_OK<span class="gtkdoc opt">) {</span>
+    <span class="gtkdoc kwb">const</span> guint8 <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-map">gst_adapter_map</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
     <span class="gtkdoc slc">// use flowreturn as an error value</span>
     ret <span class="gtkdoc opt">=</span> <span class="function">my_library_foo</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">);</span>
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-unmap">gst_adapter_unmap</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">);</span>
-    <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-flush">gst_adapter_flush</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-unmap">gst_adapter_unmap</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">);</span>
+    <span class="function"><a href="../gstreamer-libs-1.0/GstAdapter.html#gst-adapter-flush">gst_adapter_flush</a></span> <span class="gtkdoc opt">(</span>adapter<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
   <span class="gtkdoc opt">}</span>
 
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span><span class="keyword">this</span><span class="gtkdoc opt">);</span>
+  <span class="function"><a href="../gstreamer-1.0/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span><span class="keyword">this</span><span class="gtkdoc opt">);</span>
   <span class="keyword">return</span> ret<span class="gtkdoc opt">;</span>
 <span class="gtkdoc opt">}</span></pre></td>
       </tr>
@@ -186,14 +186,14 @@
 An element using GstAdapter in its sink pad chain function should ensure that
 when the FLUSH_STOP event is received, that any queued data is cleared using
 <a class="link" href="GstAdapter.html#gst-adapter-clear" title="gst_adapter_clear ()"><code class="function">gst_adapter_clear()</code></a>. Data should also be cleared or processed on EOS and
-when changing state from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-PAUSED:CAPS"><span class="type">GST_STATE_PAUSED</span></a> to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-READY:CAPS"><span class="type">GST_STATE_READY</span></a>.
+when changing state from <a href="../gstreamer-1.0/GstElement.html#GST-STATE-PAUSED:CAPS"><span class="type">GST_STATE_PAUSED</span></a> to <a href="../gstreamer-1.0/GstElement.html#GST-STATE-READY:CAPS"><span class="type">GST_STATE_READY</span></a>.
 </p>
 <p>
 Also check the GST_BUFFER_FLAG_DISCONT flag on the buffer. Some elements might
 need to clear the adapter after a discontinuity.
 </p>
 <p>
-Since 0.10.24, the adapter will keep track of the timestamps of the buffers
+The adapter will keep track of the timestamps of the buffers
 that were pushed. The last seen timestamp before the current position
 can be queried with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html#gst-adapter-prev-timestamp"><code class="function">gst_adapter_prev_timestamp()</code></a>. This function can
 optionally return the amount of bytes between the start of the buffer that
@@ -219,7 +219,7 @@
 </p>
 <p>
 Note that <a class="link" href="GstAdapter.html#gst-adapter-push" title="gst_adapter_push ()"><code class="function">gst_adapter_push()</code></a> takes ownership of the buffer passed. Use
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> before pushing it into the adapter if you still want to
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> before pushing it into the adapter if you still want to
 access the buffer later. The adapter will never modify the data in the
 buffer pushed in it.
 </p>
@@ -272,7 +272,7 @@
 <div class="refsect2">
 <a name="gst-adapter-push"></a><h3>gst_adapter_push ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_adapter_push                    (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
 <p>
 Adds the data from <em class="parameter"><code>buf</code></em> to the data stored inside <em class="parameter"><code>adapter</code></em> and takes
 ownership of the buffer.
@@ -287,7 +287,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> to add to queue in the adapter. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> to add to queue in the adapter. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -303,13 +303,13 @@
 valid until the next function is called on the adapter.
 </p>
 <p>
-Note that setting the returned pointer as the data of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is
+Note that setting the returned pointer as the data of a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is
 incorrect for general-purpose plugins. The reason is that if a downstream
 element stores the buffer so that it has access to it outside of the bounds
 of its chain function, the buffer will have an invalid data pointer after
 your element flushes the bytes. In that case you should use
 <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()"><code class="function">gst_adapter_take()</code></a>, which returns a freshly-allocated buffer that you can set
-as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> malloc_data or the potentially more performant
+as <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> malloc_data or the potentially more performant
 <a class="link" href="GstAdapter.html#gst-adapter-take-buffer" title="gst_adapter_take_buffer ()"><code class="function">gst_adapter_take_buffer()</code></a>.
 </p>
 <p>
@@ -329,8 +329,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a pointer to the first
-<em class="parameter"><code>size</code></em> bytes of data, or NULL. <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]</span>
+<td>a pointer to the first <em class="parameter"><code>size</code></em> bytes of data, or NULL. <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="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span>
 </td>
 </tr>
 </tbody>
@@ -378,7 +377,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
-<td>the memory to copy into. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+<td>the memory to copy into. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span>
 </td>
 </tr>
 <tr>
@@ -391,7 +390,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -499,8 +497,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>oven-fresh hot data, or
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>nbytes</code></em> bytes are not available. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=nbytes]</span>
+<td>oven-fresh hot data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>nbytes</code></em> bytes are not available. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=nbytes][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span>
 </td>
 </tr>
 </tbody>
@@ -509,17 +506,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-take-buffer"></a><h3>gst_adapter_take_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_adapter_take_buffer             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_adapter_take_buffer             (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> nbytes</code></em>);</pre>
 <p>
-Returns a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> bytes of the
+Returns a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> bytes of the
 <em class="parameter"><code>adapter</code></em>. The returned bytes will be flushed from the adapter.
 This function is potentially more performant than <a class="link" href="GstAdapter.html#gst-adapter-take" title="gst_adapter_take ()"><code class="function">gst_adapter_take()</code></a>
 since it can reuse the memory in pushed buffers by subbuffering
 or merging.
 </p>
 <p>
-Caller owns returned value. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> after usage.
+Caller owns returned value. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> after usage.
 </p>
 <p>
 Free-function: gst_buffer_unref
@@ -538,13 +535,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> of
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing the first <em class="parameter"><code>nbytes</code></em> of
 the adapter, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if <em class="parameter"><code>nbytes</code></em> bytes are not available. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -558,7 +554,7 @@
 performant because no memory should be copied.
 </p>
 <p>
-Caller owns returned list and contained buffers. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> each
+Caller owns returned list and contained buffers. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a> each
 buffer in the list before freeing the list after usage.
 </p>
 <div class="variablelist"><table border="0">
@@ -582,12 +578,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-prev-pts"></a><h3>gst_adapter_prev_pts ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_pts                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_pts                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);</pre>
 <p>
 Get the pts that was before the current byte in the adapter. When
@@ -623,7 +618,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-adapter-prev-dts"></a><h3>gst_adapter_prev_dts ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_dts                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_adapter_prev_dts                (<em class="parameter"><code><a class="link" href="GstAdapter.html" title="GstAdapter"><span class="type">GstAdapter</span></a> *adapter</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> *distance</code></em>);</pre>
 <p>
 Get the dts that was before the current byte in the adapter. When
@@ -732,7 +727,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -793,7 +787,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.30</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/GstBaseSink.html b/docs/libs/html/GstBaseSink.html
index ccdf82e..4f49306 100644
--- a/docs/libs/html/GstBaseSink.html
+++ b/docs/libs/html/GstBaseSink.html
@@ -35,7 +35,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstBaseSink.top_of_page"></a>GstBaseSink</span></h2>
-<p>GstBaseSink — Base class for sink elements</p>
+<p>GstBaseSink</p>
 </td>
 <td valign="top" align="right"></td>
 </tr></table></div>
@@ -49,18 +49,15 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-query-latency" title="gst_base_sink_query_latency ()">gst_base_sink_query_latency</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *upstream_live</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-latency" title="gst_base_sink_get_latency ()">gst_base_sink_get_latency</a>           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-do-preroll" title="gst_base_sink_do_preroll ()">gst_base_sink_do_preroll</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-preroll" title="gst_base_sink_wait_preroll ()">gst_base_sink_wait_preroll</a>          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstBaseSink.html#gst-base-sink-wait-clock" title="gst_base_sink_wait_clock ()">gst_base_sink_wait_clock</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-eos" title="gst_base_sink_wait_eos ()">gst_base_sink_wait_eos</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-latency" title="gst_base_sink_get_latency ()">gst_base_sink_get_latency</a>           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-do-preroll" title="gst_base_sink_do_preroll ()">gst_base_sink_do_preroll</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSink.html#gst-base-sink-wait-preroll" title="gst_base_sink_wait_preroll ()">gst_base_sink_wait_preroll</a>          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      <a class="link" href="GstBaseSink.html#gst-base-sink-wait-clock" title="gst_base_sink_wait_clock ()">gst_base_sink_wait_clock</a>            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-sync" title="gst_base_sink_set_sync ()">gst_base_sink_set_sync</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> sync</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-get-sync" title="gst_base_sink_get_sync ()">gst_base_sink_get_sync</a>              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
@@ -74,12 +71,12 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSink.html#gst-base-sink-is-async-enabled" title="gst_base_sink_is_async_enabled ()">gst_base_sink_is_async_enabled</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-ts-offset" title="gst_base_sink_set_ts_offset ()">gst_base_sink_set_ts_offset</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    <a class="link" href="GstBaseSink.html#gst-base-sink-get-ts-offset" title="gst_base_sink_get_ts_offset ()">gst_base_sink_get_ts_offset</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    <a class="link" href="GstBaseSink.html#gst-base-sink-get-ts-offset" title="gst_base_sink_get_ts_offset ()">gst_base_sink_get_ts_offset</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-render-delay" title="gst_base_sink_set_render_delay ()">gst_base_sink_set_render_delay</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-render-delay" title="gst_base_sink_get_render_delay ()">gst_base_sink_get_render_delay</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> *         <a class="link" href="GstBaseSink.html#gst-base-sink-get-last-sample" title="gst_base_sink_get_last_sample ()">gst_base_sink_get_last_sample</a>       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);
+<a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        <a class="link" href="GstBaseSink.html#gst-base-sink-get-render-delay" title="gst_base_sink_get_render_delay ()">gst_base_sink_get_render_delay</a>      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> *         <a class="link" href="GstBaseSink.html#gst-base-sink-get-last-sample" title="gst_base_sink_get_last_sample ()">gst_base_sink_get_last_sample</a>       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSink.html#gst-base-sink-set-blocksize" title="gst_base_sink_set_blocksize ()">gst_base_sink_set_blocksize</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blocksize</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstBaseSink.html#gst-base-sink-get-blocksize" title="gst_base_sink_get_blocksize ()">gst_base_sink_get_blocksize</a>         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);
@@ -102,8 +99,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstBaseSink
 </pre>
 </div>
@@ -113,7 +110,7 @@
   "<a class="link" href="GstBaseSink.html#GstBaseSink--async" title='The "async" property'>async</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--blocksize" title='The "blocksize" property'>blocksize</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--enable-last-sample" title='The "enable-last-sample" property'>enable-last-sample</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GstBaseSink.html#GstBaseSink--last-sample" title='The "last-sample" property'>last-sample</a>"              <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read
+  "<a class="link" href="GstBaseSink.html#GstBaseSink--last-sample" title='The "last-sample" property'>last-sample</a>"              <a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read
   "<a class="link" href="GstBaseSink.html#GstBaseSink--max-lateness" title='The "max-lateness" property'>max-lateness</a>"             <span class="type">gint64</span>                : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--qos" title='The "qos" property'>qos</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="GstBaseSink.html#GstBaseSink--render-delay" title='The "render-delay" property'>render-delay</a>"             <span class="type">guint64</span>               : Read / Write
@@ -124,158 +121,6 @@
 </div>
 <div class="refsect1">
 <a name="GstBaseSink.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> is the base class for sink elements in GStreamer, such as
-xvimagesink or filesink. It is a layer on top of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> that provides a
-simplified interface to plugin writers. <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> handles many details
-for you, for example: preroll, clock synchronization, state changes,
-activation in push or pull mode, and queries.
-</p>
-<p>
-In most cases, when writing sink elements, there is no need to implement
-class methods from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> or to set functions on pads, because the
-<a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> infrastructure should be sufficient.
-</p>
-<p>
-<a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> provides support for exactly one sink pad, which should be
-named "sink". A sink implementation (subclass of <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a>) should
-install a pad template in its class_init function, like so:
-</p>
-<div class="informalexample">
-  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
-    <tbody>
-      <tr>
-        <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span>
-<span class="function">my_element_class_init</span> <span class="gtkdoc opt">(</span>GstMyElementClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
-  GstElementClass <span class="gtkdoc opt">*</span>gstelement_class <span class="gtkdoc opt">=</span> <span class="function">GST_ELEMENT_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
-
-  <span class="gtkdoc slc">// sinktemplate should be a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction</span>
-  <span class="gtkdoc slc">// <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-PAD-SINK:CAPS">GST_PAD_SINK</a> and name &quot;sink&quot;</span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
-      <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>sinktemplate<span class="gtkdoc opt">));</span>
-  <span class="gtkdoc slc">// see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#GstElementDetails">GstElementDetails</a></span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-set-details">gst_element_class_set_details</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">, &amp;</span>details<span class="gtkdoc opt">);</span>
-<span class="gtkdoc opt">}</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-<p>
-<a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will handle the prerolling correctly. This means that it will
-return <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-CHANGE-ASYNC:CAPS"><span class="type">GST_STATE_CHANGE_ASYNC</span></a> from a state change to PAUSED until the first
-buffer arrives in this element. The base class will call the
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.preroll"><code class="function">GstBaseSinkClass.preroll()</code></a> vmethod with this preroll buffer and will then
-commit the state change to the next asynchronously pending state.
-</p>
-<p>
-When the element is set to PLAYING, <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will synchronise on the
-clock using the times returned from <a class="link" href="GstBaseSink.html#GstBaseSinkClass.get-times"><code class="function">GstBaseSinkClass.get_times()</code></a>. If this
-function returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a> for the start time, no synchronisation
-will be done. Synchronisation can be disabled entirely by setting the object
-<a class="link" href="GstBaseSink.html#GstBaseSink--sync" title='The "sync" property'><span class="type">"sync"</span></a> property to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
-</p>
-<p>
-After synchronisation the virtual method <a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> will be
-called. Subclasses should minimally implement this method.
-</p>
-<p>
-Since 0.10.3 subclasses that synchronise on the clock in the
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> method are supported as well. These classes
-typically receive a buffer in the render method and can then potentially
-block on the clock while rendering. A typical example is an audiosink.
-Since 0.10.11 these subclasses can use <a class="link" href="GstBaseSink.html#gst-base-sink-wait-preroll" title="gst_base_sink_wait_preroll ()"><code class="function">gst_base_sink_wait_preroll()</code></a> to
-perform the blocking wait.
-</p>
-<p>
-Upon receiving the EOS event in the PLAYING state, <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will wait
-for the clock to reach the time indicated by the stop time of the last
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.get-times"><code class="function">GstBaseSinkClass.get_times()</code></a> call before posting an EOS message. When the
-element receives EOS in PAUSED, preroll completes, the event is queued and an
-EOS message is posted when going to PLAYING.
-</p>
-<p>
-<a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will internally use the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GST-EVENT-NEWSEGMENT:CAPS"><span class="type">GST_EVENT_NEWSEGMENT</span></a> events to schedule
-synchronisation and clipping of buffers. Buffers that fall completely outside
-of the current segment are dropped. Buffers that fall partially in the
-segment are rendered (and prerolled). Subclasses should do any subbuffer
-clipping themselves when needed.
-</p>
-<p>
-<a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> will by default report the current playback position in
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> based on the current clock time and segment information.
-If no clock has been set on the element, the query will be forwarded
-upstream.
-</p>
-<p>
-The <a class="link" href="GstBaseSink.html#GstBaseSinkClass.set-caps"><code class="function">GstBaseSinkClass.set_caps()</code></a> function will be called when the subclass
-should configure itself to process a specific media type.
-</p>
-<p>
-The <a class="link" href="GstBaseSink.html#GstBaseSinkClass.start"><code class="function">GstBaseSinkClass.start()</code></a> and <a class="link" href="GstBaseSink.html#GstBaseSinkClass.stop"><code class="function">GstBaseSinkClass.stop()</code></a> virtual methods
-will be called when resources should be allocated. Any 
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.preroll"><code class="function">GstBaseSinkClass.preroll()</code></a>, <a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> and
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.set-caps"><code class="function">GstBaseSinkClass.set_caps()</code></a> function will be called between the
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.start"><code class="function">GstBaseSinkClass.start()</code></a> and <a class="link" href="GstBaseSink.html#GstBaseSinkClass.stop"><code class="function">GstBaseSinkClass.stop()</code></a> calls.
-</p>
-<p>
-The <a class="link" href="GstBaseSink.html#GstBaseSinkClass.event"><code class="function">GstBaseSinkClass.event()</code></a> virtual method will be called when an event is
-received by <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a>. Normally this method should only be overriden by
-very specific elements (such as file sinks) which need to handle the
-newsegment event specially.
-</p>
-<p>
-The <a class="link" href="GstBaseSink.html#GstBaseSinkClass.unlock"><code class="function">GstBaseSinkClass.unlock()</code></a> method is called when the elements should
-unblock any blocking operations they perform in the
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> method. This is mostly useful when the
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> method performs a blocking write on a file
-descriptor, for example.
-</p>
-<p>
-The <a class="link" href="GstBaseSink.html#GstBaseSink--max-lateness" title='The "max-lateness" property'><span class="type">"max-lateness"</span></a> property affects how the sink deals with
-buffers that arrive too late in the sink. A buffer arrives too late in the
-sink when the presentation time (as a combination of the last segment, buffer
-timestamp and element base_time) plus the duration is before the current
-time of the clock.
-If the frame is later than max-lateness, the sink will drop the buffer
-without calling the render method.
-This feature is disabled if sync is disabled, the
-<a class="link" href="GstBaseSink.html#GstBaseSinkClass.get-times"><code class="function">GstBaseSinkClass.get_times()</code></a> method does not return a valid start time or
-max-lateness is set to -1 (the default).
-Subclasses can use <a class="link" href="GstBaseSink.html#gst-base-sink-set-max-lateness" title="gst_base_sink_set_max_lateness ()"><code class="function">gst_base_sink_set_max_lateness()</code></a> to configure the
-max-lateness value.
-</p>
-<p>
-The <a class="link" href="GstBaseSink.html#GstBaseSink--qos" title='The "qos" property'><span class="type">"qos"</span></a> property will enable the quality-of-service features of
-the basesink which gather statistics about the real-time performance of the
-clock synchronisation. For each buffer received in the sink, statistics are
-gathered and a QOS event is sent upstream with these numbers. This
-information can then be used by upstream elements to reduce their processing
-rate, for example.
-</p>
-<p>
-Since 0.10.15 the <a class="link" href="GstBaseSink.html#GstBaseSink--async" title='The "async" property'><span class="type">"async"</span></a> property can be used to instruct the
-sink to never perform an ASYNC state change. This feature is mostly usable
-when dealing with non-synchronized streams or sparse streams.
-</p>
-<p>
-Last reviewed on 2007-08-29 (0.10.15)
-</p>
 </div>
 <div class="refsect1">
 <a name="GstBaseSink.details"></a><h2>Details</h2>
@@ -349,7 +194,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>Element parent class</td>
 </tr>
 <tr>
@@ -402,7 +247,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.query"></a>query</code></em> ()</span></p></td>
-<td>perform a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> on the element. Since: 0.10.36</td>
+<td>perform a <a href="../gstreamer-1.0/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> on the element.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.event"></a>event</code></em> ()</span></p></td>
@@ -435,7 +280,7 @@
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.render-list"></a>render_list</code></em> ()</span></p></td>
 <td>Same as <em class="parameter"><code>render</code></em> but used whith buffer lists instead of
-buffers. Since: 0.10.24</td>
+buffers.</td>
 </tr>
 </tbody>
 </table></div>
@@ -446,8 +291,8 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_sink_query_latency         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *upstream_live</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
 <p>
 Query the sink for the latency parameters. The latency will be queried from
 the upstream elements. <em class="parameter"><code>live</code></em> will be TRUE if <em class="parameter"><code>sink</code></em> is configured to
@@ -495,12 +340,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-latency"></a><h3>gst_base_sink_get_latency ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_latency           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_latency           (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the currently configured latency.
 </p>
@@ -517,13 +361,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-do-preroll"></a><h3>gst_base_sink_do_preroll ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_do_preroll            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_do_preroll            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMiniObject.html#GstMiniObject"><span class="type">GstMiniObject</span></a> *obj</code></em>);</pre>
 <p>
 If the <em class="parameter"><code>sink</code></em> spawns its own thread for pulling buffers from upstream it
 should call this method after it has pulled a buffer. If the element needed
@@ -548,17 +391,16 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
 continue. Any other return value should be returned from the render vmethod.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-wait-preroll"></a><h3>gst_base_sink_wait_preroll ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_preroll          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_preroll          (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 If the <a class="link" href="GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> method performs its own synchronisation
 against the clock it must unblock when going from PLAYING to the PAUSED state
@@ -566,9 +408,9 @@
 </p>
 <p>
 This function will block until a state change to PLAYING happens (in which
-case this function returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
+case this function returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
 to a state change to READY or a FLUSH event (in which case this function
-returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
+returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
 </p>
 <p>
 This function should only be called with the PREROLL_LOCK held, like in the
@@ -584,27 +426,26 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if the preroll completed and processing can
 continue. Any other return value should be returned from the render vmethod.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.11</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-wait-clock"></a><h3>gst_base_sink_wait_clock ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      gst_base_sink_wait_clock            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockReturn"><span class="returnvalue">GstClockReturn</span></a>      gst_base_sink_wait_clock            (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
 <p>
 This function will block until <em class="parameter"><code>time</code></em> is reached. It is usually called by
 subclasses that use their own internal synchronisation.
 </p>
 <p>
-If <em class="parameter"><code>time</code></em> is not valid, no sycnhronisation is done and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is
+If <em class="parameter"><code>time</code></em> is not valid, no sycnhronisation is done and <a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is
 returned. Likewise, if synchronisation is disabled in the element or there
-is no clock, no synchronisation is done and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is returned.
+is no clock, no synchronisation is done and <a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-BADTIME:CAPS"><span class="type">GST_CLOCK_BADTIME</span></a> is returned.
 </p>
 <p>
 This function should only be called with the PREROLL_LOCK held, like when
@@ -635,54 +476,10 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockReturn"><span class="type">GstClockReturn</span></a></td>
+<td><a href="../gstreamer-1.0/GstClock.html#GstClockReturn"><span class="type">GstClockReturn</span></a></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.20</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-base-sink-wait-eos"></a><h3>gst_base_sink_wait_eos ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_sink_wait_eos              (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *jitter</code></em>);</pre>
-<p>
-This function will block until <em class="parameter"><code>time</code></em> is reached. It is usually called by
-subclasses that use their own internal synchronisation but want to let the
-EOS be handled by the base class.
-</p>
-<p>
-This function should only be called with the PREROLL_LOCK held, like when
-receiving an EOS event in the ::event vmethod.
-</p>
-<p>
-The <em class="parameter"><code>time</code></em> argument should be the running_time of when the EOS should happen
-and will be adjusted with any latency and offset configured in the sink.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
-<td>the sink</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>time</code></em> :</span></p></td>
-<td>the running_time to be reached</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>jitter</code></em> :</span></p></td>
-<td>the jitter to be filled with time diff, or NULL. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -709,7 +506,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -732,7 +528,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -758,7 +553,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -783,7 +577,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -806,7 +599,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -829,7 +621,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -855,7 +646,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -879,13 +669,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-set-ts-offset"></a><h3>gst_base_sink_set_ts_offset ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_ts_offset         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> offset</code></em>);</pre>
 <p>
 Adjust the synchronisation of <em class="parameter"><code>sink</code></em> with <em class="parameter"><code>offset</code></em>. A negative value will
 render buffers earlier than their timestamp. A positive value will delay
@@ -905,12 +694,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-ts-offset"></a><h3>gst_base_sink_get_ts_offset ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    gst_base_sink_get_ts_offset         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>    gst_base_sink_get_ts_offset         (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the synchronisation offset of <em class="parameter"><code>sink</code></em>.
 </p>
@@ -927,13 +715,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-set-render-delay"></a><h3>gst_base_sink_set_render_delay ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_sink_set_render_delay      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> delay</code></em>);</pre>
 <p>
 Set the render delay in <em class="parameter"><code>sink</code></em> to <em class="parameter"><code>delay</code></em>. The render delay is the time
 between actual rendering of a buffer and its synchronisation time. Some
@@ -961,12 +748,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-render-delay"></a><h3>gst_base_sink_get_render_delay ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_render_delay      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>        gst_base_sink_get_render_delay      (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the render delay of <em class="parameter"><code>sink</code></em>. see <a class="link" href="GstBaseSink.html#gst-base-sink-set-render-delay" title="gst_base_sink_set_render_delay ()"><code class="function">gst_base_sink_set_render_delay()</code></a> for more
 information about the render delay.
@@ -985,18 +771,17 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.21</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-sink-get-last-sample"></a><h3>gst_base_sink_get_last_sample ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> *         gst_base_sink_get_last_sample       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="returnvalue">GstSample</span></a> *         gst_base_sink_get_last_sample       (<em class="parameter"><code><a class="link" href="GstBaseSink.html" title="GstBaseSink"><span class="type">GstBaseSink</span></a> *sink</code></em>);</pre>
 <p>
 Get the last sample that arrived in the sink and was used for preroll or for
 rendering. This property can be used to generate thumbnails.
 </p>
 <p>
-The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> on the sample can be used to determine the type of the buffer.
+The <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> on the sample can be used to determine the type of the buffer.
 </p>
 <p>
 Free-function: gst_sample_unref
@@ -1010,14 +795,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage.
+<td>a <a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>. <a href="../gstreamer-1.0/gstreamer-GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage.
 This function returns NULL when no buffer has arrived in the sink yet
 or when the sink is not in PAUSED or PLAYING. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1042,7 +826,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1066,7 +849,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1090,7 +872,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1116,7 +897,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1124,7 +904,7 @@
 <pre class="programlisting">#define GST_BASE_SINK_PAD(obj)          (GST_BASE_SINK_CAST (obj)-&gt;sinkpad)
 </pre>
 <p>
-Gives the pointer to the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1194,7 +974,6 @@
 not required.
 </p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1204,7 +983,6 @@
 The amount of bytes to pull when operating in pull mode.
 </p>
 <p>Default value: 4096</p>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1217,18 +995,16 @@
 as possible, eg. if you're using a buffer pool.
 </p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.30</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBaseSink--last-sample"></a><h3>The <code class="literal">"last-sample"</code> property</h3>
-<pre class="programlisting">  "last-sample"              <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read</pre>
+<pre class="programlisting">  "last-sample"              <a href="../gstreamer-1.0/gstreamer-GstSample.html#GstSample"><span class="type">GstSample</span></a>*            : Read</pre>
 <p>
 The last buffer that arrived in the sink and was used for preroll or for
 rendering. This property can be used to generate thumbnails. This property
 can be NULL when the sink has not yet received a bufer.
 </p>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1255,7 +1031,6 @@
 make other sinks compensate for the delay.
 </p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1274,7 +1049,6 @@
 to a value bigger than 0 will make the sink create THROTTLE QoS events.
 </p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1286,13 +1060,8 @@
 used to fix synchronisation in bad files.
 </p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.15</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="GstBaseSink.see-also"></a><h2>See Also</h2>
-<a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a>, <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a>
-</div>
 </div>
 <div class="footer">
 <hr>
diff --git a/docs/libs/html/GstBaseSrc.html b/docs/libs/html/GstBaseSrc.html
index 067e0a7..518525a 100644
--- a/docs/libs/html/GstBaseSrc.html
+++ b/docs/libs/html/GstBaseSrc.html
@@ -47,16 +47,16 @@
 struct              <a class="link" href="GstBaseSrc.html#GstBaseSrc-struct" title="struct GstBaseSrc">GstBaseSrc</a>;
 struct              <a class="link" href="GstBaseSrc.html#GstBaseSrcClass" title="struct GstBaseSrcClass">GstBaseSrcClass</a>;
 enum                <a class="link" href="GstBaseSrc.html#GstBaseSrcFlags" title="enum GstBaseSrcFlags">GstBaseSrcFlags</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSrc.html#gst-base-src-wait-playing" title="gst_base_src_wait_playing ()">gst_base_src_wait_playing</a>           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstBaseSrc.html#gst-base-src-wait-playing" title="gst_base_src_wait_playing ()">gst_base_src_wait_playing</a>           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-is-live" title="gst_base_src_is_live ()">gst_base_src_is_live</a>                (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-live" title="gst_base_src_set_live ()">gst_base_src_set_live</a>               (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> live</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-format" title="gst_base_src_set_format ()">gst_base_src_set_format</a>             (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-query-latency" title="gst_base_src_query_latency ()">gst_base_src_query_latency</a>          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstBaseSrc.html#gst-base-src-get-blocksize" title="gst_base_src_get_blocksize ()">gst_base_src_get_blocksize</a>          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseSrc.html#gst-base-src-set-blocksize" title="gst_base_src_set_blocksize ()">gst_base_src_set_blocksize</a>          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> blocksize</code></em>);
@@ -70,7 +70,7 @@
                                                          <em class="parameter"><code><span class="type">gint64</span> stop</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> position</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBaseSrc.html#gst-base-src-set-caps" title="gst_base_src_set_caps ()">gst_base_src_set_caps</a>               (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
 #define             <a class="link" href="GstBaseSrc.html#GST-BASE-SRC-PAD:CAPS" title="GST_BASE_SRC_PAD()">GST_BASE_SRC_PAD</a>                    (obj)
 </pre>
 </div>
@@ -79,8 +79,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstBaseSrc
                            +----<a class="link" href="GstPushSrc.html" title="GstPushSrc">GstPushSrc</a>
 </pre>
@@ -108,17 +108,17 @@
 <p>
 </p>
 <p>
-The source can be configured to operate in any <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> with the
+The source can be configured to operate in any <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> with the
 <a class="link" href="GstBaseSrc.html#gst-base-src-set-format" title="gst_base_src_set_format ()"><code class="function">gst_base_src_set_format()</code></a> method. The currently set format determines
-the format of the internal <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> and any <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GST-EVENT-NEWSEGMENT:CAPS"><span class="type">GST_EVENT_NEWSEGMENT</span></a>
-events. The default format for <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> is <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>.
+the format of the internal <a href="../gstreamer-1.0/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> and any <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GST-EVENT-NEWSEGMENT:CAPS"><span class="type">GST_EVENT_NEWSEGMENT</span></a>
+events. The default format for <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> is <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>.
 </p>
 <p>
 <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> always supports push mode scheduling. If the following
 conditions are met, it also supports pull mode scheduling:
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><p>The format is set to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a> (default).</p></li>
+<li class="listitem"><p>The format is set to <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a> (default).</p></li>
 <li class="listitem"><p><a class="link" href="GstBaseSrc.html#GstBaseSrcClass.is-seekable"><code class="function">GstBaseSrcClass.is_seekable()</code></a> returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p></li>
 </ul></div>
 <p>
@@ -127,7 +127,7 @@
 If all the conditions are met for operating in pull mode, <a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> is
 automatically seekable in push mode as well. The following conditions must
 be met to make the element seekable in push mode when the format is not
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>:
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-BYTES:CAPS"><span class="type">GST_FORMAT_BYTES</span></a>:
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
 <li class="listitem"><p>
@@ -164,7 +164,7 @@
 <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.create"><code class="function">GstBaseSrcClass.create()</code></a> method will not be called in PAUSED but only in
 PLAYING. To signal the pipeline that the element will not produce data, the
 return value from the READY to PAUSED state will be
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><span class="type">GST_STATE_CHANGE_NO_PREROLL</span></a>.
+<a href="../gstreamer-1.0/GstElement.html#GST-STATE-CHANGE-NO-PREROLL:CAPS"><span class="type">GST_STATE_CHANGE_NO_PREROLL</span></a>.
 </p>
 <p>
 A typical live source will timestamp the buffers it creates with the
@@ -174,7 +174,7 @@
 </p>
 <p>
 Live sources that synchronize and block on the clock (an audio source, for
-example) can since 0.10.12 use <a class="link" href="GstBaseSrc.html#gst-base-src-wait-playing" title="gst_base_src_wait_playing ()"><code class="function">gst_base_src_wait_playing()</code></a> when the
+example) can use <a class="link" href="GstBaseSrc.html#gst-base-src-wait-playing" title="gst_base_src_wait_playing ()"><code class="function">gst_base_src_wait_playing()</code></a> when the
 <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.create"><code class="function">GstBaseSrcClass.create()</code></a> function was interrupted by a state change to
 PAUSED.
 </p>
@@ -219,10 +219,10 @@
 <span class="function">my_element_class_init</span> <span class="gtkdoc opt">(</span>GstMyElementClass <span class="gtkdoc opt">*</span>klass<span class="gtkdoc opt">)</span>
 <span class="gtkdoc opt">{</span>
   GstElementClass <span class="gtkdoc opt">*</span>gstelement_class <span class="gtkdoc opt">=</span> <span class="function">GST_ELEMENT_CLASS</span> <span class="gtkdoc opt">(</span>klass<span class="gtkdoc opt">);</span>
-  <span class="gtkdoc slc">// srctemplate should be a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction</span>
-  <span class="gtkdoc slc">// <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-PAD-SRC:CAPS">GST_PAD_SRC</a> and name &quot;src&quot;</span>
-  <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
-      <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>srctemplate<span class="gtkdoc opt">));</span>
+  <span class="gtkdoc slc">// srctemplate should be a <a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate">GstStaticPadTemplate</a> with direction</span>
+  <span class="gtkdoc slc">// <a href="../gstreamer-1.0/GstPad.html#GST-PAD-SRC:CAPS">GST_PAD_SRC</a> and name &quot;src&quot;</span>
+  <span class="function"><a href="../gstreamer-1.0/GstElement.html#gst-element-class-add-pad-template">gst_element_class_add_pad_template</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">,</span>
+      <span class="function"><a href="../gstreamer-1.0/GstPadTemplate.html#gst-static-pad-template-get">gst_static_pad_template_get</a></span> <span class="gtkdoc opt">(&amp;</span>srctemplate<span class="gtkdoc opt">));</span>
   <span class="gtkdoc slc">// see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#GstElementDetails">GstElementDetails</a></span>
   <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-class-set-details">gst_element_class_set_details</a></span> <span class="gtkdoc opt">(</span>gstelement_class<span class="gtkdoc opt">, &amp;</span>details<span class="gtkdoc opt">);</span>
 <span class="gtkdoc opt">}</span></pre></td>
@@ -236,7 +236,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7055728"></a><h3>Controlled shutdown of live sources in applications</h3>
+<a name="idp6539136"></a><h3>Controlled shutdown of live sources in applications</h3>
 <p>
 Applications that record from a live source may want to stop recording
 in a controlled way, so that the recording is stopped, but the data
@@ -248,10 +248,10 @@
 been processed and the pipeline can safely be stopped.
 </p>
 <p>
-Since GStreamer 0.10.16 an application may send an EOS event to a source
-element to make it perform the EOS logic (send EOS event downstream or post a
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS"><span class="type">GST_MESSAGE_SEGMENT_DONE</span></a> on the bus). This can typically be done
-with the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-send-event"><code class="function">gst_element_send_event()</code></a> function on the element or its parent bin.
+An application may send an EOS event to a source element to make it
+perform the EOS logic (send EOS event downstream or post a
+<a href="../gstreamer-1.0/gstreamer-GstMessage.html#GST-MESSAGE-SEGMENT-DONE:CAPS"><span class="type">GST_MESSAGE_SEGMENT_DONE</span></a> on the bus). This can typically be done
+with the <a href="../gstreamer-1.0/GstElement.html#gst-element-send-event"><code class="function">gst_element_send_event()</code></a> function on the element or its parent bin.
 </p>
 <p>
 After the EOS has been sent to the element, the application should wait for
@@ -350,7 +350,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSrcClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseSrcClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>Element parent class</td>
 </tr>
 <tr>
@@ -405,8 +405,7 @@
 do_seek vmethod for executing a seek request. Sub-classes should override
 this if they support seeking in formats other than the configured native
 format. By default, it tries to convert the seek arguments to the
-configured native format and prepare a segment in that format.
-Since: 0.10.13</td>
+configured native format and prepare a segment in that format.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseSrcClass.do-seek"></a>do_seek</code></em> ()</span></p></td>
@@ -467,7 +466,7 @@
 } GstBaseSrcFlags;
 </pre>
 <p>
-The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> flags that a basesrc element may have.
+The <a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> flags that a basesrc element may have.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -493,7 +492,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-src-wait-playing"></a><h3>gst_base_src_wait_playing ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_src_wait_playing           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_src_wait_playing           (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>);</pre>
 <p>
 If the <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.create"><code class="function">GstBaseSrcClass.create()</code></a> method performs its own synchronisation
 against the clock it must unblock when going from PLAYING to the PAUSED state
@@ -501,9 +500,9 @@
 </p>
 <p>
 This function will block until a state change to PLAYING happens (in which
-case this function returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
+case this function returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a>) or the processing must be stopped due
 to a state change to READY or a FLUSH event (in which case this function
-returns <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
+returns <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a>).
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -515,12 +514,11 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if <em class="parameter"><code>src</code></em> is PLAYING and processing can
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> if <em class="parameter"><code>src</code></em> is PLAYING and processing can
 continue. Any other return value should be returned from the create vmethod.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.12</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -578,7 +576,7 @@
 <div class="refsect2">
 <a name="gst-base-src-set-format"></a><h3>gst_base_src_set_format ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_src_set_format             (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>);</pre>
 <p>
 Sets the default format of the source. This will be the format used
 for sending NEW_SEGMENT events and for performing seeks.
@@ -588,7 +586,7 @@
 operate in pull mode if the <a class="link" href="GstBaseSrc.html#GstBaseSrcClass.is-seekable"><code class="function">GstBaseSrcClass.is_seekable()</code></a> returns TRUE.
 </p>
 <p>
-This function must only be called in states &lt; <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a>.
+This function must only be called in states &lt; <a href="../gstreamer-1.0/GstElement.html#GST-STATE-PAUSED:CAPS"><code class="literal">GST_STATE_PAUSED</code></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -603,15 +601,14 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.1</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-src-query-latency"></a><h3>gst_base_src_query_latency ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_src_query_latency          (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *live</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
 <p>
 Query the source for the latency parameters. <em class="parameter"><code>live</code></em> will be TRUE when <em class="parameter"><code>src</code></em> is
 configured as a live source. <em class="parameter"><code>min_latency</code></em> will be set to the difference
@@ -649,7 +646,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.13</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -671,7 +667,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -695,7 +690,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -718,7 +712,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -743,7 +736,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.15</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -768,7 +760,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -812,13 +803,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-src-set-caps"></a><h3>gst_base_src_set_caps ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_src_set_caps               (<em class="parameter"><code><a class="link" href="GstBaseSrc.html" title="GstBaseSrc"><span class="type">GstBaseSrc</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
 <p>
 Set new caps on the basesrc source pad.
 </p>
@@ -832,7 +822,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
 </td>
 </tr>
 <tr>
@@ -849,7 +839,7 @@
 <pre class="programlisting">#define GST_BASE_SRC_PAD(obj)                 (GST_BASE_SRC_CAST (obj)-&gt;srcpad)
 </pre>
 <p>
-Gives the pointer to the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
diff --git a/docs/libs/html/GstBaseTransform.html b/docs/libs/html/GstBaseTransform.html
index 2c89ce9..d91487a 100644
--- a/docs/libs/html/GstBaseTransform.html
+++ b/docs/libs/html/GstBaseTransform.html
@@ -57,8 +57,8 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseTransform.html#gst-base-transform-update-qos" title="gst_base_transform_update_qos ()">gst_base_transform_update_qos</a>       (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstBaseTransform.html#gst-base-transform-set-gap-aware" title="gst_base_transform_set_gap_aware ()">gst_base_transform_set_gap_aware</a>    (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> gap_aware</code></em>);
 #define             <a class="link" href="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS" title="GST_BASE_TRANSFORM_SINK_NAME">GST_BASE_TRANSFORM_SINK_NAME</a>
@@ -73,8 +73,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstBaseTransform
 </pre>
 </div>
@@ -111,7 +111,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6939712"></a><h3>Use Cases</h3>
+<a name="idp8304832"></a><h3>Use Cases</h3>
 <p>
 </p>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -251,7 +251,7 @@
 </p>
 <hr>
 <div class="refsect2">
-<a name="idp7842576"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
+<a name="idp6194080"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
 <p>
 </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -337,7 +337,8 @@
 
   /* decide allocation query for output buffers */
   gboolean      (*decide_allocation)  (GstBaseTransform *trans, GstQuery *query);
-  gboolean      (*filter_meta)        (GstBaseTransform *trans, GstQuery *query, GType api);
+  gboolean      (*filter_meta)        (GstBaseTransform *trans, GstQuery *query,
+                                       GType api, const GstStructure *params);
 
   /* propose allocation query parameters for input buffers */
   gboolean      (*propose_allocation) (GstBaseTransform *trans, GstQuery *decide_query,
@@ -387,7 +388,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseTransformClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>Element parent class</td>
 </tr>
 <tr>
@@ -419,7 +420,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.accept-caps"></a>accept_caps</code></em> ()</span></p></td>
-<td>Optional. Since 0.10.30
+<td>Optional.
 Subclasses can override this method to check if <em class="parameter"><code>caps</code></em> can be
 handled by the element. The default implementation might not be
 the most optimal way to check this in all cases.</td>
@@ -430,7 +431,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.query"></a>query</code></em> ()</span></p></td>
-<td>Optional Since 0.10.36
+<td>Optional.
 Handle a requested query. Subclasses that implement this
 should must chain up to the parent if they didn't handle the
 query</td>
@@ -528,7 +529,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="structfield"><code><a name="GstBaseTransformClass.before-transform"></a>before_transform</code></em> ()</span></p></td>
-<td>Optional. Since 0.10.22
+<td>Optional.
 This method is called right before the base class will
 start processing. Dynamic properties or other delayed
 configuration could be performed in this method.</td>
@@ -677,7 +678,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -704,15 +704,14 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-transform-update-qos"></a><h3>gst_base_transform_update_qos ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_transform_update_qos       (<em class="parameter"><code><a class="link" href="GstBaseTransform.html" title="GstBaseTransform"><span class="type">GstBaseTransform</span></a> *trans</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> proportion</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> diff</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
 <p>
 Set the QoS parameters in the transform. This function is called internally
 when a QOS event is received but subclasses can provide custom information
@@ -744,7 +743,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -753,7 +751,7 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> gap_aware</code></em>);</pre>
 <p>
 If <em class="parameter"><code>gap_aware</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (the default), output buffers will have the
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS"><code class="literal">GST_BUFFER_FLAG_GAP</code></a> flag unset.
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GST-BUFFER-FLAG-GAP:CAPS"><code class="literal">GST_BUFFER_FLAG_GAP</code></a> flag unset.
 </p>
 <p>
 If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the element must handle output buffers with this flag set
@@ -777,7 +775,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.16</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -803,7 +800,7 @@
 <pre class="programlisting">#define GST_BASE_TRANSFORM_SINK_PAD(obj) (GST_BASE_TRANSFORM_CAST (obj)-&gt;sinkpad)
 </pre>
 <p>
-Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the sink <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -812,7 +809,6 @@
 <td>base transform instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -820,7 +816,7 @@
 <pre class="programlisting">#define GST_BASE_TRANSFORM_SRC_PAD(obj)		(GST_BASE_TRANSFORM_CAST (obj)-&gt;srcpad)
 </pre>
 <p>
-Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -829,7 +825,6 @@
 <td>base transform instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -837,10 +832,9 @@
 <pre class="programlisting">#define GST_BASE_TRANSFORM_FLOW_DROPPED   GST_FLOW_CUSTOM_SUCCESS
 </pre>
 <p>
-A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from transform and transform_ip to
+A <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from transform and transform_ip to
 indicate that no output buffer was generated.
 </p>
-<p class="since">Since 0.10.13</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/GstCollectPads.html b/docs/libs/html/GstCollectPads.html
index 19c5e4f..6c52e82 100644
--- a/docs/libs/html/GstCollectPads.html
+++ b/docs/libs/html/GstCollectPads.html
@@ -45,26 +45,26 @@
 struct              <a class="link" href="GstCollectPads.html#GstCollectPads-struct" title="struct GstCollectPads">GstCollectPads</a>;
 struct              <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData">GstCollectData</a>;
 <span class="returnvalue">void</span>                (<a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()">*GstCollectDataDestroyNotify</a>)      (<em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsBufferFunction" title="GstCollectPadsBufferFunction ()">*GstCollectPadsBufferFunction</a>)     (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsBufferFunction" title="GstCollectPadsBufferFunction ()">*GstCollectPadsBufferFunction</a>)     (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                (<a class="link" href="GstCollectPads.html#GstCollectPadsCompareFunction" title="GstCollectPadsCompareFunction ()">*GstCollectPadsCompareFunction</a>)    (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data1</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data2</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp2</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp2</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (<a class="link" href="GstCollectPads.html#GstCollectPadsEventFunction" title="GstCollectPadsEventFunction ()">*GstCollectPadsEventFunction</a>)      (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()">*GstCollectPadsClipFunction</a>)       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsClipFunction" title="GstCollectPadsClipFunction ()">*GstCollectPadsClipFunction</a>)       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *inbuffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **outbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *inbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **outbuffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()">*GstCollectPadsFunction</a>)           (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="GstCollectPads.html#GstCollectPadsFunction" title="GstCollectPadsFunction ()">*GstCollectPadsFunction</a>)           (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
 enum                <a class="link" href="GstCollectPads.html#GstCollectPadsStateFlags" title="enum GstCollectPadsStateFlags">GstCollectPadsStateFlags</a>;
 #define             <a class="link" href="GstCollectPads.html#GST-COLLECT-PADS-STATE:CAPS" title="GST_COLLECT_PADS_STATE()">GST_COLLECT_PADS_STATE</a>              (data)
@@ -79,35 +79,29 @@
 #define             <a class="link" href="GstCollectPads.html#GST-COLLECT-PADS-STREAM-UNLOCK:CAPS" title="GST_COLLECT_PADS_STREAM_UNLOCK()">GST_COLLECT_PADS_STREAM_UNLOCK</a>      (pads)
 <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="returnvalue">GstCollectPads</span></a> *    <a class="link" href="GstCollectPads.html#gst-collect-pads-new" title="gst_collect_pads_new ()">gst_collect_pads_new</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
 <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    <a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad" title="gst_collect_pads_add_pad ()">gst_collect_pads_add_pad</a>            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    <a class="link" href="GstCollectPads.html#gst-collect-pads-add-pad-full" title="gst_collect_pads_add_pad_full ()">gst_collect_pads_add_pad_full</a>       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()"><span class="type">GstCollectDataDestroyNotify</span></a> destroy_notify</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> lock</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstCollectPads.html#gst-collect-pads-remove-pad" title="gst_collect_pads_remove_pad ()">gst_collect_pads_remove_pad</a>         (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-start" title="gst_collect_pads_start ()">gst_collect_pads_start</a>              (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-stop" title="gst_collect_pads_stop ()">gst_collect_pads_stop</a>               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstCollectPads.html#gst-collect-pads-available" title="gst_collect_pads_available ()">gst_collect_pads_available</a>          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstCollectPads.html#gst-collect-pads-is-active" title="gst_collect_pads_is_active ()">gst_collect_pads_is_active</a>          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstCollectPads.html#gst-collect-pads-collect" title="gst_collect_pads_collect ()">gst_collect_pads_collect</a>            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="GstCollectPads.html#gst-collect-pads-collect-range" title="gst_collect_pads_collect_range ()">gst_collect_pads_collect_range</a>      (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GstCollectPads.html#gst-collect-pads-flush" title="gst_collect_pads_flush ()">gst_collect_pads_flush</a>              (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-peek" title="gst_collect_pads_peek ()">gst_collect_pads_peek</a>               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-peek" title="gst_collect_pads_peek ()">gst_collect_pads_peek</a>               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-pop" title="gst_collect_pads_pop ()">gst_collect_pads_pop</a>                (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-pop" title="gst_collect_pads_pop ()">gst_collect_pads_pop</a>                (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-read-buffer" title="gst_collect_pads_read_buffer ()">gst_collect_pads_read_buffer</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-read-buffer" title="gst_collect_pads_read_buffer ()">gst_collect_pads_read_buffer</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-take-buffer" title="gst_collect_pads_take_buffer ()">gst_collect_pads_take_buffer</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="GstCollectPads.html#gst-collect-pads-take-buffer" title="gst_collect_pads_take_buffer ()">gst_collect_pads_take_buffer</a>        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstCollectPads.html#gst-collect-pads-set-buffer-function" title="gst_collect_pads_set_buffer_function ()">gst_collect_pads_set_buffer_function</a>
@@ -139,7 +133,7 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
                +----GstCollectPads
 </pre>
 </div>
@@ -187,8 +181,8 @@
     no pad is blocked and the element can finish streaming.
   </p></li>
 <li class="listitem"><p>
-    <a class="link" href="GstCollectPads.html#gst-collect-pads-collect" title="gst_collect_pads_collect ()"><code class="function">gst_collect_pads_collect()</code></a> and <a class="link" href="GstCollectPads.html#gst-collect-pads-collect-range" title="gst_collect_pads_collect_range ()"><code class="function">gst_collect_pads_collect_range()</code></a> can be used by
-    elements that start a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTask.html"><span class="type">GstTask</span></a> to drive the collect_pads. This feature is however
+    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstCollectPads.html#gst-collect-pads-collect"><code class="function">gst_collect_pads_collect()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstCollectPads.html#gst-collect-pads-collect-range"><code class="function">gst_collect_pads_collect_range()</code></a> can be used by
+    elements that start a <a href="../gstreamer-1.0/GstTask.html"><span class="type">GstTask</span></a> to drive the collect_pads. This feature is however
     not yet implemented.
   </p></li>
 <li class="listitem"><p>
@@ -223,7 +217,6 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> managed by this <a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a>.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -249,12 +242,12 @@
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *<em class="structfield"><code><a name="GstCollectData.pad"></a>pad</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *<em class="structfield"><code><a name="GstCollectData.pad"></a>pad</code></em>;</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> managed by this data</td>
+<a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> managed by this data</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstCollectData.buffer"></a>buffer</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstCollectData.buffer"></a>buffer</code></em>;</span></p></td>
 <td>currently queued buffer.</td>
 </tr>
 <tr>
@@ -262,12 +255,11 @@
 <td>position in the buffer</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> <em class="structfield"><code><a name="GstCollectData.segment"></a>segment</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstSegment.html#GstSegment"><span class="type">GstSegment</span></a> <em class="structfield"><code><a name="GstCollectData.segment"></a>segment</code></em>;</span></p></td>
 <td>last segment received.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -285,14 +277,13 @@
 <td>the <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> that will be freed</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstCollectPadsBufferFunction"></a><h3>GstCollectPadsBufferFunction ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsBufferFunction)     (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsBufferFunction)     (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 A function that will be called when a (considered oldest) buffer can be muxed.
@@ -312,7 +303,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
 </td>
 </tr>
 <tr>
@@ -323,20 +314,19 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstCollectPadsCompareFunction"></a><h3>GstCollectPadsCompareFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                (*GstCollectPadsCompareFunction)    (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data1</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp1</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data2</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp2</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp2</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 A function for comparing two timestamps of buffers or newsegments collected on one pad.
@@ -379,14 +369,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstCollectPadsEventFunction"></a><h3>GstCollectPadsEventFunction ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            (*GstCollectPadsEventFunction)      (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *pad</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 A function that will be called while processing an event. It takes
@@ -403,11 +392,11 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> that received an event</td>
+<td>the <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> that received an event</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> received</td>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> received</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
@@ -421,15 +410,14 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstCollectPadsClipFunction"></a><h3>GstCollectPadsClipFunction ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsClipFunction)       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsClipFunction)       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *inbuffer</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **outbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *inbuffer</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **outbuffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 A function that will be called when <em class="parameter"><code>inbuffer</code></em> is received on the pad managed
@@ -458,12 +446,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>inbuffer</code></em> :</span></p></td>
-<td>the input <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+<td>the input <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>outbuffer</code></em> :</span></p></td>
-<td>the output <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+<td>the output <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
 </td>
 </tr>
 <tr>
@@ -472,16 +460,15 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that corresponds to the result of clipping.</td>
+<td>a <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that corresponds to the result of clipping.</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstCollectPadsFunction"></a><h3>GstCollectPadsFunction ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsFunction)           (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstCollectPadsFunction)           (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>
 A function that will be called when all pads have received data.
@@ -501,11 +488,10 @@
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> for success</td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -552,7 +538,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -570,7 +555,6 @@
 <td>a <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a>.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -593,7 +577,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -616,7 +599,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -639,7 +621,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -659,7 +640,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -677,7 +657,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -695,7 +674,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -715,13 +693,12 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-add-pad"></a><h3>gst_collect_pads_add_pad ()</h3>
 <pre class="programlisting"><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    gst_collect_pads_add_pad            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
 Add a pad to the collection of collect pads. The pad has to be
@@ -767,13 +744,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-add-pad-full"></a><h3>gst_collect_pads_add_pad_full ()</h3>
 <pre class="programlisting"><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="returnvalue">GstCollectData</span></a> *    gst_collect_pads_add_pad_full       (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectDataDestroyNotify" title="GstCollectDataDestroyNotify ()"><span class="type">GstCollectDataDestroyNotify</span></a> destroy_notify</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> lock</code></em>);</pre>
@@ -841,13 +817,12 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-remove-pad"></a><h3>gst_collect_pads_remove_pad ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_collect_pads_remove_pad         (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Remove a pad from the collection of collect pads. This function will also
 free the <a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> and all the resources that were allocated with
@@ -878,7 +853,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -897,7 +871,6 @@
 <td>the collectspads to use</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -917,7 +890,6 @@
 <td>the collectspads to use</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -949,111 +921,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-is-active"></a><h3>gst_collect_pads_is_active ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_collect_pads_is_active          (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
-<p>
-Check if a pad is active.
-</p>
-<p>
-This function is currently not implemented.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>the pad to check</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the pad is active.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-collect"></a><h3>gst_collect_pads_collect ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_collect_pads_collect            (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>);</pre>
-<p>
-Collect data on all pads. This function is usually called
-from a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTask.html"><span class="type">GstTask</span></a> function in an element. 
-</p>
-<p>
-This function is currently not implemented.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> of the operation.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-collect-pads-collect-range"></a><h3>gst_collect_pads_collect_range ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_collect_pads_collect_range      (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
-                                                         <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
-<p>
-Collect data with <em class="parameter"><code>offset</code></em> and <em class="parameter"><code>length</code></em> on all pads. This function
-is typically called in the getrange function of an element. 
-</p>
-<p>
-This function is currently not implemented.
-</p>
-<p>
-MT safe.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>pads</code></em> :</span></p></td>
-<td>the collectspads to use</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset to collect</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>the length to collect</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> of the operation.</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1093,12 +960,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-peek"></a><h3>gst_collect_pads_peek ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_peek               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_peek               (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);</pre>
 <p>
 Peek at the buffer currently queued in <em class="parameter"><code>data</code></em>. This function
@@ -1126,12 +992,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-pop"></a><h3>gst_collect_pads_pop ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_pop                (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_pop                (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>);</pre>
 <p>
 Pop the buffer currently queued in <em class="parameter"><code>data</code></em>. This function
@@ -1160,12 +1025,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-read-buffer"></a><h3>gst_collect_pads_read_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_read_buffer        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_read_buffer        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -1202,12 +1066,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-collect-pads-take-buffer"></a><h3>gst_collect_pads_take_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_take_buffer        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_collect_pads_take_buffer        (<em class="parameter"><code><a class="link" href="GstCollectPads.html" title="GstCollectPads"><span class="type">GstCollectPads</span></a> *pads</code></em>,
                                                          <em class="parameter"><code><a class="link" href="GstCollectPads.html#GstCollectData" title="struct GstCollectData"><span class="type">GstCollectData</span></a> *data</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
 <p>
@@ -1244,7 +1107,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1278,7 +1140,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1311,7 +1172,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1347,7 +1207,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1377,7 +1236,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1407,7 +1265,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1446,7 +1303,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1484,7 +1340,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/GstInterpolationControlSource.html b/docs/libs/html/GstInterpolationControlSource.html
index 2b865b6..b8244c9 100644
--- a/docs/libs/html/GstInterpolationControlSource.html
+++ b/docs/libs/html/GstInterpolationControlSource.html
@@ -46,7 +46,7 @@
 
 struct              <a class="link" href="GstInterpolationControlSource.html#GstInterpolationControlSource-struct" title="struct GstInterpolationControlSource">GstInterpolationControlSource</a>;
 enum                <a class="link" href="GstInterpolationControlSource.html#GstInterpolationMode" title="enum GstInterpolationMode">GstInterpolationMode</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()">gst_interpolation_control_source_new</a>
+<a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstInterpolationControlSource.html#gst-interpolation-control-source-new" title="gst_interpolation_control_source_new ()">gst_interpolation_control_source_new</a>
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
@@ -55,8 +55,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html">GstControlSource</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
                      +----<a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
                            +----GstInterpolationControlSource
 </pre>
@@ -70,7 +70,7 @@
 <div class="refsect1">
 <a name="GstInterpolationControlSource.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> is a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>, that interpolates values between user-given
+<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a> is a <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>, that interpolates values between user-given
 control points. It supports several interpolation modes and property types.
 </p>
 <p>
@@ -88,7 +88,7 @@
 <a name="GstInterpolationControlSource-struct"></a><h3>struct GstInterpolationControlSource</h3>
 <pre class="programlisting">struct GstInterpolationControlSource;</pre>
 <p>
-The instance structure of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>.
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
 </p>
 </div>
 <hr>
@@ -127,7 +127,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-interpolation-control-source-new"></a><h3>gst_interpolation_control_source_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_interpolation_control_source_new
+<pre class="programlisting"><a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_interpolation_control_source_new
                                                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This returns a new, unbound <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource"><span class="type">GstInterpolationControlSource</span></a>.
diff --git a/docs/libs/html/GstLFOControlSource.html b/docs/libs/html/GstLFOControlSource.html
index 143e430..bf44a2d 100644
--- a/docs/libs/html/GstLFOControlSource.html
+++ b/docs/libs/html/GstLFOControlSource.html
@@ -46,7 +46,7 @@
 
 struct              <a class="link" href="GstLFOControlSource.html#GstLFOControlSource-struct" title="struct GstLFOControlSource">GstLFOControlSource</a>;
 enum                <a class="link" href="GstLFOControlSource.html#GstLFOWaveform" title="enum GstLFOWaveform">GstLFOWaveform</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstLFOControlSource.html#gst-lfo-control-source-new" title="gst_lfo_control_source_new ()">gst_lfo_control_source_new</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstLFOControlSource.html#gst-lfo-control-source-new" title="gst_lfo_control_source_new ()">gst_lfo_control_source_new</a>          (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -54,8 +54,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html">GstControlSource</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
                      +----GstLFOControlSource
 </pre>
 </div>
@@ -72,7 +72,7 @@
 <div class="refsect1">
 <a name="GstLFOControlSource.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> is a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>, that provides several periodic waveforms
+<a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a> is a <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>, that provides several periodic waveforms
 as control values. It supports all fundamental, numeric GValue types as property.
 </p>
 <p>
@@ -90,7 +90,7 @@
 <a name="GstLFOControlSource-struct"></a><h3>struct GstLFOControlSource</h3>
 <pre class="programlisting">struct GstLFOControlSource;</pre>
 <p>
-The instance structure of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>.
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
 </p>
 </div>
 <hr>
@@ -141,7 +141,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-lfo-control-source-new"></a><h3>gst_lfo_control_source_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_lfo_control_source_new          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_lfo_control_source_new          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This returns a new, unbound <a class="link" href="GstLFOControlSource.html" title="GstLFOControlSource"><span class="type">GstLFOControlSource</span></a>.
 </p>
diff --git a/docs/libs/html/GstNetClientClock.html b/docs/libs/html/GstNetClientClock.html
index e4f308f..0055651 100644
--- a/docs/libs/html/GstNetClientClock.html
+++ b/docs/libs/html/GstNetClientClock.html
@@ -46,10 +46,10 @@
 #include &lt;gst/net/gstnet.h&gt;
 
 struct              <a class="link" href="GstNetClientClock.html#GstNetClientClock-struct" title="struct GstNetClientClock">GstNetClientClock</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstNetClientClock.html#gst-net-client-clock-new" title="gst_net_client_clock_new ()">gst_net_client_clock_new</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+<a href="../gstreamer-1.0/GstClock.html"><span class="returnvalue">GstClock</span></a> *          <a class="link" href="GstNetClientClock.html#gst-net-client-clock-new" title="gst_net_client_clock_new ()">gst_net_client_clock_new</a>            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *remote_address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> remote_port</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -57,9 +57,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html">GstClock</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html">GstSystemClock</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstClock.html">GstClock</a>
+                     +----<a href="../gstreamer-1.0/GstSystemClock.html">GstSystemClock</a>
                            +----GstNetClientClock
 </pre>
 </div>
@@ -73,7 +73,7 @@
 <div class="refsect1">
 <a name="GstNetClientClock.description"></a><h2>Description</h2>
 <p>
-This object implements a custom <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> that synchronizes its time
+This object implements a custom <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> that synchronizes its time
 to a remote time provider such as <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>.
 </p>
 <p>
@@ -86,12 +86,12 @@
 parameters based on the local and remote observations.
 </p>
 <p>
-Various parameters of the clock can be configured with the parent <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>
+Various parameters of the clock can be configured with the parent <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>
 "timeout", "window-size" and "window-threshold" object properties.
 </p>
 <p>
-A <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> is typically set on a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html"><span class="type">GstPipeline</span></a> with 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html#gst-pipeline-use-clock"><code class="function">gst_pipeline_use_clock()</code></a>.
+A <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> is typically set on a <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a> with 
+<a href="../gstreamer-1.0/GstPipeline.html#gst-pipeline-use-clock"><code class="function">gst_pipeline_use_clock()</code></a>.
 </p>
 <p>
 Last reviewed on 2005-11-23 (0.9.5)
@@ -109,10 +109,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-client-clock-new"></a><h3>gst_net_client_clock_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="returnvalue">GstClock</span></a> *          gst_net_client_clock_new            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstClock.html"><span class="returnvalue">GstClock</span></a> *          gst_net_client_clock_new            (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *remote_address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> remote_port</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> base_time</code></em>);</pre>
 <p>
 Create a new <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> that will report the time
 provided by the <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> on <em class="parameter"><code>remote_address</code></em> and 
@@ -139,7 +139,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> that receives a time from the remote
+<td>a new <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> that receives a time from the remote
 clock.</td>
 </tr>
 </tbody>
@@ -165,7 +165,7 @@
 </div>
 <div class="refsect1">
 <a name="GstNetClientClock.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html"><span class="type">GstPipeline</span></a>
+<a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>, <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/GstNetTimeProvider.html b/docs/libs/html/GstNetTimeProvider.html
index 33f4f99..9c11fbc 100644
--- a/docs/libs/html/GstNetTimeProvider.html
+++ b/docs/libs/html/GstNetTimeProvider.html
@@ -46,7 +46,7 @@
 #include &lt;gst/net/gstnet.h&gt;
 
 struct              <a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider-struct" title="struct GstNetTimeProvider">GstNetTimeProvider</a>;
-<a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()">gst_net_time_provider_new</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
+<a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()">gst_net_time_provider_new</a>          (<em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port</code></em>);
 </pre>
@@ -56,7 +56,7 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
                +----GstNetTimeProvider
 </pre>
 </div>
@@ -65,25 +65,25 @@
 <pre class="synopsis">
   "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--active" title='The "active" property'>active</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--address" title='The "address" property'>address</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
-  "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--clock" title='The "clock" property'>clock</a>"                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write
+  "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--clock" title='The "clock" property'>clock</a>"                    <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write
   "<a class="link" href="GstNetTimeProvider.html#GstNetTimeProvider--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
 </pre>
 </div>
 <div class="refsect1">
 <a name="GstNetTimeProvider.description"></a><h2>Description</h2>
 <p>
-This object exposes the time of a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> on the network.
+This object exposes the time of a <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> on the network.
 </p>
 <p>
 A <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> is created with <a class="link" href="GstNetTimeProvider.html#gst-net-time-provider-new" title="gst_net_time_provider_new ()"><code class="function">gst_net_time_provider_new()</code></a> which
-takes a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>, an address and a port number as arguments.
+takes a <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, an address and a port number as arguments.
 </p>
 <p>
 After creating the object, a client clock such as <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a> can
 query the exposed clock over the network for its values.
 </p>
 <p>
-The <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> typically wraps the clock used by a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html"><span class="type">GstPipeline</span></a>.
+The <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a> typically wraps the clock used by a <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a>.
 </p>
 <p>
 Last reviewed on 2005-11-23 (0.9.5)
@@ -101,7 +101,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-net-time-provider-new"></a><h3>gst_net_time_provider_new ()</h3>
-<pre class="programlisting"><a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * gst_net_time_provider_new          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
+<pre class="programlisting"><a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="returnvalue">GstNetTimeProvider</span></a> * gst_net_time_provider_new          (<em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> *clock</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> port</code></em>);</pre>
 <p>
@@ -112,7 +112,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>clock</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a> to export over the network</td>
+<td>a <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a> to export over the network</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
@@ -149,7 +149,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstNetTimeProvider--clock"></a><h3>The <code class="literal">"clock"</code> property</h3>
-<pre class="programlisting">  "clock"                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write</pre>
+<pre class="programlisting">  "clock"                    <a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>*             : Read / Write</pre>
 <p>The clock to export over the network.</p>
 </div>
 <hr>
@@ -163,7 +163,7 @@
 </div>
 <div class="refsect1">
 <a name="GstNetTimeProvider.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html"><span class="type">GstPipeline</span></a>
+<a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a href="../gstreamer-1.0/GstPipeline.html"><span class="type">GstPipeline</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/GstPushSrc.html b/docs/libs/html/GstPushSrc.html
index d6b1e3d..05c2c43 100644
--- a/docs/libs/html/GstPushSrc.html
+++ b/docs/libs/html/GstPushSrc.html
@@ -50,8 +50,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----<a class="link" href="GstBaseSrc.html" title="GstBaseSrc">GstBaseSrc</a>
                            +----GstPushSrc
 </pre>
diff --git a/docs/libs/html/GstTimedValueControlSource.html b/docs/libs/html/GstTimedValueControlSource.html
index 832f03f..b81d608 100644
--- a/docs/libs/html/GstTimedValueControlSource.html
+++ b/docs/libs/html/GstTimedValueControlSource.html
@@ -45,9 +45,9 @@
 struct              <a class="link" href="GstTimedValueControlSource.html#GstTimedValueControlSource-struct" title="struct GstTimedValueControlSource">GstTimedValueControlSource</a>;
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *     <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-find-control-point-iter" title="gst_timed_value_control_source_find_control_point_iter ()">gst_timed_value_control_source_find_control_point_iter</a>
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set" title="gst_timed_value_control_source_set ()">gst_timed_value_control_source_set</a>  (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-set-from-list" title="gst_timed_value_control_source_set_from_list ()">gst_timed_value_control_source_set_from_list</a>
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
@@ -56,7 +56,7 @@
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-unset" title="gst_timed_value_control_source_unset ()">gst_timed_value_control_source_unset</a>
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-unset-all" title="gst_timed_value_control_source_unset_all ()">gst_timed_value_control_source_unset_all</a>
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GstTimedValueControlSource.html#gst-timed-value-control-source-get-count" title="gst_timed_value_control_source_get_count ()">gst_timed_value_control_source_get_count</a>
@@ -70,8 +70,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html">GstControlSource</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
                      +----GstTimedValueControlSource
                            +----<a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
                            +----<a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
@@ -96,7 +96,7 @@
 <a name="GstTimedValueControlSource-struct"></a><h3>struct GstTimedValueControlSource</h3>
 <pre class="programlisting">struct GstTimedValueControlSource;</pre>
 <p>
-The instance structure of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>.
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
 </p>
 </div>
 <hr>
@@ -104,7 +104,7 @@
 <a name="gst-timed-value-control-source-find-control-point-iter"></a><h3>gst_timed_value_control_source_find_control_point_iter ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Sequences.html#GSequenceIter"><span class="returnvalue">GSequenceIter</span></a> *     gst_timed_value_control_source_find_control_point_iter
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
 <p>
 Find last value before given timestamp in control point list.
 If all values in the control point list come after the given
@@ -136,7 +136,7 @@
 <div class="refsect2">
 <a name="gst-timed-value-control-source-set"></a><h3>gst_timed_value_control_source_set ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_timed_value_control_source_set  (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> value</code></em>);</pre>
 <p>
 Set the value of given controller-handled property at a certain time.
@@ -182,7 +182,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>timedvalues</code></em> :</span></p></td>
 <td>a list
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html#GstTimedValue"><span class="type">GstTimedValue</span></a> items. <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> GstController.TimedValue]</span>
+with <a href="../gstreamer-1.0/GstControlSource.html#GstTimedValue"><span class="type">GstTimedValue</span></a> items. <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> GstController.TimedValue]</span>
 </td>
 </tr>
 <tr>
@@ -198,7 +198,7 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gst_timed_value_control_source_get_all
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>);</pre>
 <p>
-Returns a read-only copy of the list of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html#GstTimedValue"><span class="type">GstTimedValue</span></a> for the given property.
+Returns a read-only copy of the list of <a href="../gstreamer-1.0/GstControlSource.html#GstTimedValue"><span class="type">GstTimedValue</span></a> for the given property.
 Free the list after done with it.
 </p>
 <div class="variablelist"><table border="0">
@@ -222,7 +222,7 @@
 <a name="gst-timed-value-control-source-unset"></a><h3>gst_timed_value_control_source_unset ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_timed_value_control_source_unset
                                                         (<em class="parameter"><code><a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource"><span class="type">GstTimedValueControlSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
 <p>
 Used to remove the value of given controller-handled property at a certain
 time.
diff --git a/docs/libs/html/GstTriggerControlSource.html b/docs/libs/html/GstTriggerControlSource.html
index 86e4975..b4a91d0 100644
--- a/docs/libs/html/GstTriggerControlSource.html
+++ b/docs/libs/html/GstTriggerControlSource.html
@@ -45,7 +45,7 @@
 #include &lt;libs/controller/gsttriggercontrolsource.h&gt;
 
 struct              <a class="link" href="GstTriggerControlSource.html#GstTriggerControlSource-struct" title="struct GstTriggerControlSource">GstTriggerControlSource</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstTriggerControlSource.html#gst-trigger-control-source-new" title="gst_trigger_control_source_new ()">gst_trigger_control_source_new</a>      (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  <a class="link" href="GstTriggerControlSource.html#gst-trigger-control-source-new" title="gst_trigger_control_source_new ()">gst_trigger_control_source_new</a>      (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -53,8 +53,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html">GstControlSource</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
                      +----<a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
                            +----GstTriggerControlSource
 </pre>
@@ -68,7 +68,7 @@
 <div class="refsect1">
 <a name="GstTriggerControlSource.description"></a><h2>Description</h2>
 <p>
-<a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a> is a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>, that returns values from user-given
+<a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a> is a <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>, that returns values from user-given
 control points. It allows for a tolerance on the time-stamps.
 </p>
 <p>
@@ -86,13 +86,13 @@
 <a name="GstTriggerControlSource-struct"></a><h3>struct GstTriggerControlSource</h3>
 <pre class="programlisting">struct GstTriggerControlSource;</pre>
 <p>
-The instance structure of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="type">GstControlSource</span></a>.
+The instance structure of <a href="../gstreamer-1.0/GstControlSource.html"><span class="type">GstControlSource</span></a>.
 </p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-trigger-control-source-new"></a><h3>gst_trigger_control_source_new ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_trigger_control_source_new      (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstControlSource.html"><span class="returnvalue">GstControlSource</span></a> *  gst_trigger_control_source_new      (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 This returns a new, unbound <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource"><span class="type">GstTriggerControlSource</span></a>.
 </p>
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 32dc764..a215b0a 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -482,10 +482,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstBaseSink.html#gst-base-sink-wait-eos" title="gst_base_sink_wait_eos ()">gst_base_sink_wait_eos</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstBaseSink.html#gst-base-sink-wait-preroll" title="gst_base_sink_wait_preroll ()">gst_base_sink_wait_preroll</a>, function in <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
 </dt>
 <dd></dd>
@@ -1591,14 +1587,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-collect" title="gst_collect_pads_collect ()">gst_collect_pads_collect</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-collect-range" title="gst_collect_pads_collect_range ()">gst_collect_pads_collect_range</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstCollectPads.html#gst-collect-pads-flush" title="gst_collect_pads_flush ()">gst_collect_pads_flush</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
 </dt>
 <dd></dd>
@@ -1607,10 +1595,6 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="GstCollectPads.html#gst-collect-pads-is-active" title="gst_collect_pads_is_active ()">gst_collect_pads_is_active</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="GstCollectPads.html#gst-collect-pads-new" title="gst_collect_pads_new ()">gst_collect_pads_new</a>, function in <a class="link" href="GstCollectPads.html" title="GstCollectPads">GstCollectPads</a>
 </dt>
 <dd></dd>
diff --git a/docs/libs/html/gstreamer-base.html b/docs/libs/html/gstreamer-base.html
index 0738a4c..39700ca 100644
--- a/docs/libs/html/gstreamer-base.html
+++ b/docs/libs/html/gstreamer-base.html
@@ -30,7 +30,7 @@
 <span class="refentrytitle"><a href="GstBaseSrc.html">GstBaseSrc</a></span><span class="refpurpose"> — Base class for getrange based source elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstBaseSink.html">GstBaseSink</a></span><span class="refpurpose"> — Base class for sink elements</span>
+<span class="refentrytitle"><a href="GstBaseSink.html">GstBaseSink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstBaseTransform.html">GstBaseTransform</a></span><span class="refpurpose"> — Base class for simple transform filters</span>
diff --git a/docs/libs/html/gstreamer-hierarchy.html b/docs/libs/html/gstreamer-hierarchy.html
index 144cbbe..41f305a 100644
--- a/docs/libs/html/gstreamer-hierarchy.html
+++ b/docs/libs/html/gstreamer-hierarchy.html
@@ -25,16 +25,16 @@
 <pre class="screen">
     <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
         <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-            <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+            <a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+                <a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                     <a class="link" href="GstBaseSrc.html" title="GstBaseSrc">GstBaseSrc</a>
                         <a class="link" href="GstPushSrc.html" title="GstPushSrc">GstPushSrc</a>
                     <a class="link" href="GstBaseSink.html" title="GstBaseSink">GstBaseSink</a>
                     <a class="link" href="GstBaseTransform.html" title="GstBaseTransform">GstBaseTransform</a>
-                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html">GstClock</a>
-                    <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstSystemClock.html">GstSystemClock</a>
+                <a href="../gstreamer-1.0/GstClock.html">GstClock</a>
+                    <a href="../gstreamer-1.0/GstSystemClock.html">GstSystemClock</a>
                         <a class="link" href="GstNetClientClock.html" title="GstNetClientClock">GstNetClientClock</a>
-                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html">GstControlSource</a>
+                <a href="../gstreamer-1.0/GstControlSource.html">GstControlSource</a>
                     <a class="link" href="GstTimedValueControlSource.html" title="GstTimedValueControlSource">GstTimedValueControlSource</a>
                         <a class="link" href="GstInterpolationControlSource.html" title="GstInterpolationControlSource">GstInterpolationControlSource</a>
                         <a class="link" href="GstTriggerControlSource.html" title="GstTriggerControlSource">GstTriggerControlSource</a>
diff --git a/docs/libs/html/gstreamer-libs-GstBaseParse.html b/docs/libs/html/gstreamer-libs-GstBaseParse.html
index c7c3d93..64b8c06 100644
--- a/docs/libs/html/gstreamer-libs-GstBaseParse.html
+++ b/docs/libs/html/gstreamer-libs-GstBaseParse.html
@@ -43,7 +43,7 @@
 struct              <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse">GstBaseParse</a>;
 struct              <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseClass" title="struct GstBaseParseClass">GstBaseParseClass</a>;
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration" title="gst_base_parse_set_duration ()">gst_base_parse_set_duration</a>         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> interval</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate" title="gst_base_parse_set_average_bitrate ()">gst_base_parse_set_average_bitrate</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
@@ -62,26 +62,26 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> lead_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> lead_out</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency" title="gst_base_parse_set_latency ()">gst_base_parse_set_latency</a>          (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default" title="gst_base_parse_convert_default ()">gst_base_parse_convert_default</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry" title="gst_base_parse_add_index_entry ()">gst_base_parse_add_index_entry</a>      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force</code></em>);
                     <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame">GstBaseParseFrame</a>;
 enum                <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags">GstBaseParseFrameFlags</a>;
-<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" title="gst_base_parse_frame_new ()">gst_base_parse_frame_new</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" title="gst_base_parse_frame_new ()">gst_base_parse_frame_new</a>            (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags"><span class="type">GstBaseParseFrameFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> overhead</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init" title="gst_base_parse_frame_init ()">gst_base_parse_frame_init</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free" title="gst_base_parse_frame_free ()">gst_base_parse_frame_free</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()">gst_base_parse_push_frame</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       <a class="link" href="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" title="gst_base_parse_push_frame ()">gst_base_parse_push_frame</a>           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS" title="GST_BASE_PARSE_DRAINING()">GST_BASE_PARSE_DRAINING</a>             (parse)
 #define             <a class="link" href="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS" title="GST_BASE_PARSE_FLAG_DRAINING">GST_BASE_PARSE_FLAG_DRAINING</a>
@@ -221,9 +221,9 @@
 when base class calls subclass' <em class="parameter"><code>set_sink_caps</code></em> function).
 </p>
 <p>
-This base class uses <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> as a meaning of frames. So,
+This base class uses <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> as a meaning of frames. So,
 subclass conversion routine needs to know that conversion from
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> must return the
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><span class="type">GST_FORMAT_TIME</span></a> to <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><span class="type">GST_FORMAT_DEFAULT</span></a> must return the
 frame number that can be found from the given byte position.
 </p>
 <p>
@@ -292,7 +292,7 @@
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstBaseParse.element"></a>element</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstBaseParse.element"></a>element</code></em>;</span></p></td>
 <td>the parent element.</td>
 </tr></tbody>
 </table></div>
@@ -347,7 +347,7 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseParseClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseParseClass.parent-class"></a>parent_class</code></em>;</span></p></td>
 <td>the parent class</td>
 </tr>
 <tr>
@@ -415,7 +415,7 @@
 <td>Optional.
 Called until it doesn't return GST_FLOW_OK anymore for
 the first buffers. Can be used by the subclass to detect
-the stream format. Since: 0.10.36</td>
+the stream format.</td>
 </tr>
 </tbody>
 </table></div>
@@ -424,7 +424,7 @@
 <div class="refsect2">
 <a name="gst-base-parse-set-duration"></a><h3>gst_base_parse_set_duration ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_parse_set_duration         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> fmt</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> duration</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> interval</code></em>);</pre>
 <p>
@@ -445,7 +445,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>fmt</code></em> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>duration</code></em> :</span></p></td>
@@ -457,7 +457,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -488,7 +487,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -514,7 +512,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -545,7 +542,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -571,7 +567,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -597,7 +592,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -639,14 +633,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-set-latency"></a><h3>gst_base_parse_set_latency ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_base_parse_set_latency          (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
 <p>
 Sets the minimum and maximum (which may likely be equal) latency introduced
 by the parsing process.  If there is such a latency, which depends on the
@@ -670,15 +663,14 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-convert-default"></a><h3>gst_base_parse_convert_default ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_parse_convert_default      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
                                                          <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
 <p>
 Default implementation of "convert" vmethod in <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> class.
@@ -694,7 +686,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src_format</code></em> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> describing the source format.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> describing the source format.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src_value</code></em> :</span></p></td>
@@ -703,7 +695,7 @@
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest_format</code></em> :</span></p></td>
 <td>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> defining the converted format.</td>
+<a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> defining the converted format.</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>dest_value</code></em> :</span></p></td>
@@ -715,14 +707,13 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-add-index-entry"></a><h3>gst_base_parse_add_index_entry ()</h3>
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_base_parse_add_index_entry      (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> ts</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> key</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force</code></em>);</pre>
 <p>
@@ -762,7 +753,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -788,11 +778,11 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.buffer"></a>buffer</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.buffer"></a>buffer</code></em>;</span></p></td>
 <td>input data to be parsed for frames.</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.out-buffer"></a>out_buffer</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstBaseParseFrame.out-buffer"></a>out_buffer</code></em>;</span></p></td>
 <td>(optional) (replacement) output data.</td>
 </tr>
 <tr>
@@ -815,7 +805,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -878,12 +867,11 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-frame-new"></a><h3>gst_base_parse_frame_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * gst_base_parse_frame_new            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="returnvalue">GstBaseParseFrame</span></a> * gst_base_parse_frame_new            (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" title="enum GstBaseParseFrameFlags"><span class="type">GstBaseParseFrameFlags</span></a> flags</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> overhead</code></em>);</pre>
 <p>
@@ -896,7 +884,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -916,7 +904,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -937,7 +924,6 @@
 <a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a>.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -947,7 +933,7 @@
 <hr>
 <div class="refsect2">
 <a name="gst-base-parse-push-frame"></a><h3>gst_base_parse_push_frame ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_parse_push_frame           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       gst_base_parse_push_frame           (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParse" title="struct GstBaseParse"><span class="type">GstBaseParse</span></a> *parse</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" title="GstBaseParseFrame"><span class="type">GstBaseParseFrame</span></a> *frame</code></em>);</pre>
 <p>
 Pushes the frame's buffer downstream, sends any pending events and
@@ -972,11 +958,10 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
+<td><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -994,7 +979,6 @@
 <td>base parse instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1014,11 +998,10 @@
 <pre class="programlisting">#define GST_BASE_PARSE_FLOW_DROPPED     GST_FLOW_CUSTOM_SUCCESS
 </pre>
 <p>
-A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse_frame to
+A <a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that can be returned from parse_frame to
 indicate that no output buffer was generated, or from pre_push_frame to
 to forego pushing buffer.
 </p>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1035,7 +1018,6 @@
 <td>base parse instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1043,7 +1025,7 @@
 <pre class="programlisting">#define GST_BASE_PARSE_SINK_PAD(obj)    (GST_BASE_PARSE_CAST (obj)-&gt;sinkpad)
 </pre>
 <p>
-Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the sink <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1052,7 +1034,6 @@
 <td>base parse instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1060,7 +1041,7 @@
 <pre class="programlisting">#define GST_BASE_PARSE_SRC_PAD(obj)    (GST_BASE_PARSE_CAST (obj)-&gt;srcpad)
 </pre>
 <p>
-Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+Gives the pointer to the source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> object of the element.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -1069,7 +1050,6 @@
 <td>base parse instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.33</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gstreamer-libs-GstBitReader.html b/docs/libs/html/gstreamer-libs-GstBitReader.html
index 2f82f7e..d6e7c01 100644
--- a/docs/libs/html/gstreamer-libs-GstBitReader.html
+++ b/docs/libs/html/gstreamer-libs-GstBitReader.html
@@ -139,7 +139,9 @@
 <tbody>
 <tr>
 <td><p><span class="term">const <span class="type">guint8</span> *<em class="structfield"><code><a name="GstBitReader.data"></a>data</code></em>;</span></p></td>
-<td>Data from which the bit reader will read</td>
+<td>Data from which the bit reader will
+read. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstBitReader.size"></a>size</code></em>;</span></p></td>
@@ -180,7 +182,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -198,7 +199,9 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>Data from which the <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> should read</td>
+<td>Data from which the <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a>
+should read. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
@@ -211,7 +214,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -229,7 +231,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -259,7 +260,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -281,7 +281,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -303,7 +302,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -332,7 +330,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -354,7 +351,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -382,7 +378,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -405,7 +400,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -439,7 +433,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -473,7 +466,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -507,7 +499,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -541,7 +532,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -575,7 +565,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -609,7 +598,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -643,7 +631,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -677,7 +664,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -701,7 +687,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -719,7 +704,6 @@
 <td>a <a class="link" href="gstreamer-libs-GstBitReader.html#GstBitReader" title="GstBitReader"><span class="type">GstBitReader</span></a> instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -748,7 +732,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -777,7 +760,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -806,7 +788,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -835,7 +816,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -864,7 +844,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -893,7 +872,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -929,7 +907,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gstreamer-libs-GstBufferStraw.html b/docs/libs/html/gstreamer-libs-GstBufferStraw.html
index ae88b32..b1a2ff0 100644
--- a/docs/libs/html/gstreamer-libs-GstBufferStraw.html
+++ b/docs/libs/html/gstreamer-libs-GstBufferStraw.html
@@ -40,12 +40,12 @@
 <pre class="synopsis">
 #include &lt;gst/check/gstbufferstraw.h&gt;
 
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline" title="gst_buffer_straw_start_pipeline ()">gst_buffer_straw_start_pipeline</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()">gst_buffer_straw_get_buffer</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline" title="gst_buffer_straw_stop_pipeline ()">gst_buffer_straw_stop_pipeline</a>      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline" title="gst_buffer_straw_start_pipeline ()">gst_buffer_straw_start_pipeline</a>     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()">gst_buffer_straw_get_buffer</a>         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline" title="gst_buffer_straw_stop_pipeline ()">gst_buffer_straw_stop_pipeline</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -59,8 +59,8 @@
 <a name="gstreamer-libs-GstBufferStraw.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="gst-buffer-straw-start-pipeline"></a><h3>gst_buffer_straw_start_pipeline ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_start_pipeline     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_start_pipeline     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Sets up a pipeline for buffer sucking. This will allow you to call
 <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()"><code class="function">gst_buffer_straw_get_buffer()</code></a> to access buffers as they pass over <em class="parameter"><code>pad</code></em>.
@@ -68,7 +68,7 @@
 <p>
 This function is normally used in unit tests that want to verify that a
 particular element is outputting correct buffers. For example, you would make
-a pipeline via <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstParse.html#gst-parse-launch"><code class="function">gst_parse_launch()</code></a>, pull out the pad you want to monitor, then
+a pipeline via <a href="../gstreamer-1.0/gstreamer-GstParse.html#gst-parse-launch"><code class="function">gst_parse_launch()</code></a>, pull out the pad you want to monitor, then
 call <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer" title="gst_buffer_straw_get_buffer ()"><code class="function">gst_buffer_straw_get_buffer()</code></a> to get the buffers that pass through <em class="parameter"><code>pad</code></em>.
 The pipeline will block until you have sucked off the buffers.
 </p>
@@ -99,8 +99,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-straw-get-buffer"></a><h3>gst_buffer_straw_get_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_straw_get_buffer         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_buffer_straw_get_buffer         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Get one buffer from <em class="parameter"><code>pad</code></em>. Implemented via buffer probes. This function will
 block until the pipeline passes a buffer over <em class="parameter"><code>pad</code></em>, so for robust behavior
@@ -126,7 +126,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the captured <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.</td>
+<td>the captured <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.</td>
 </tr>
 </tbody>
 </table></div>
@@ -134,10 +134,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-straw-stop-pipeline"></a><h3>gst_buffer_straw_stop_pipeline ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_stop_pipeline      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_buffer_straw_stop_pipeline      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *bin</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
-Set <em class="parameter"><code>bin</code></em> to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-NULL:CAPS"><span class="type">GST_STATE_NULL</span></a> and release resource allocated in
+Set <em class="parameter"><code>bin</code></em> to <a href="../gstreamer-1.0/GstElement.html#GST-STATE-NULL:CAPS"><span class="type">GST_STATE_NULL</span></a> and release resource allocated in
 <a class="link" href="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline" title="gst_buffer_straw_start_pipeline ()"><code class="function">gst_buffer_straw_start_pipeline()</code></a>.
 </p>
 <p>
diff --git a/docs/libs/html/gstreamer-libs-GstByteReader.html b/docs/libs/html/gstreamer-libs-GstByteReader.html
index 45bc65d..c04fe48 100644
--- a/docs/libs/html/gstreamer-libs-GstByteReader.html
+++ b/docs/libs/html/gstreamer-libs-GstByteReader.html
@@ -303,7 +303,9 @@
 <tbody>
 <tr>
 <td><p><span class="term">const <span class="type">guint8</span> *<em class="structfield"><code><a name="GstByteReader.data"></a>data</code></em>;</span></p></td>
-<td>Data from which the bit reader will read</td>
+<td>Data from which the bit reader will
+read. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstByteReader.size"></a>size</code></em>;</span></p></td>
@@ -340,7 +342,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -373,7 +374,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -391,7 +391,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -422,7 +421,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -444,7 +442,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -466,7 +463,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -495,7 +491,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -517,7 +512,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -545,7 +539,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -574,7 +567,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -604,7 +596,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -634,7 +625,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -664,7 +654,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -694,7 +683,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -724,7 +712,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -754,7 +741,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -784,7 +770,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -814,7 +799,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -843,7 +827,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -873,7 +856,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -903,7 +885,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -933,7 +914,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -963,7 +943,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -993,7 +972,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1023,7 +1001,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1053,7 +1030,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1083,7 +1059,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1112,7 +1087,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1142,7 +1116,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1172,7 +1145,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1202,7 +1174,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1232,7 +1203,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1262,7 +1232,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1292,7 +1261,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1322,7 +1290,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1352,7 +1319,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1381,7 +1347,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1411,7 +1376,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1441,7 +1405,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1471,7 +1434,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1501,7 +1463,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1531,7 +1492,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1561,7 +1521,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1591,7 +1550,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1621,7 +1579,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1651,7 +1608,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1681,7 +1637,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1711,7 +1666,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1741,7 +1695,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1771,7 +1724,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1801,7 +1753,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1831,7 +1782,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1861,7 +1811,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1898,7 +1847,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1938,7 +1886,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1975,7 +1922,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2050,7 +1996,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2095,7 +2040,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2131,7 +2075,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2171,7 +2114,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2216,7 +2158,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2264,7 +2205,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2312,7 +2252,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2341,7 +2280,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2370,7 +2308,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2400,7 +2337,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2430,7 +2366,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2454,7 +2389,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2477,7 +2411,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2502,7 +2435,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2527,7 +2459,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2552,7 +2483,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2577,7 +2507,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2602,7 +2531,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2627,7 +2555,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2652,7 +2579,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2677,7 +2603,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2700,7 +2625,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2725,7 +2649,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2750,7 +2673,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2775,7 +2697,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2800,7 +2721,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2825,7 +2745,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2850,7 +2769,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2875,7 +2793,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2900,7 +2817,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2923,7 +2839,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2948,7 +2863,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2973,7 +2887,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2998,7 +2911,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3023,7 +2935,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3048,7 +2959,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3073,7 +2983,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3098,7 +3007,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3123,7 +3031,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3147,7 +3054,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3172,7 +3078,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3197,7 +3102,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3222,7 +3126,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3247,7 +3150,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3272,7 +3174,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3297,7 +3198,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3322,7 +3222,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3347,7 +3246,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3371,7 +3269,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3395,7 +3292,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3419,7 +3315,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3443,7 +3338,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3467,7 +3361,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3491,7 +3384,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3515,7 +3407,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3539,7 +3430,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3573,7 +3463,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3604,7 +3493,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3624,7 +3512,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.25</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gstreamer-libs-GstByteWriter.html b/docs/libs/html/gstreamer-libs-GstByteWriter.html
index cf2422c..590f224 100644
--- a/docs/libs/html/gstreamer-libs-GstByteWriter.html
+++ b/docs/libs/html/gstreamer-libs-GstByteWriter.html
@@ -57,11 +57,11 @@
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fixed</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free" title="gst_byte_writer_free ()">gst_byte_writer_free</a>                (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer" title="gst_byte_writer_free_and_get_buffer ()">gst_byte_writer_free_and_get_buffer</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer" title="gst_byte_writer_free_and_get_buffer ()">gst_byte_writer_free_and_get_buffer</a> (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <span class="returnvalue">guint8</span> *            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data" title="gst_byte_writer_free_and_get_data ()">gst_byte_writer_free_and_get_data</a>   (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset" title="gst_byte_writer_reset ()">gst_byte_writer_reset</a>               (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <span class="returnvalue">guint8</span> *            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data" title="gst_byte_writer_reset_and_get_data ()">gst_byte_writer_reset_and_get_data</a>  (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer" title="gst_byte_writer_reset_and_get_buffer ()">gst_byte_writer_reset_and_get_buffer</a>
+<a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer" title="gst_byte_writer_reset_and_get_buffer ()">gst_byte_writer_reset_and_get_buffer</a>
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-pos" title="gst_byte_writer_get_pos ()">gst_byte_writer_get_pos</a>             (<em class="parameter"><code>const <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gstreamer-libs-GstByteWriter.html#gst-byte-writer-set-pos" title="gst_byte_writer_set_pos ()">gst_byte_writer_set_pos</a>             (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>,
@@ -268,7 +268,6 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -306,7 +305,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -338,7 +336,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -355,7 +352,6 @@
 <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -379,8 +375,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
-<td>Memory
-area for writing. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym> callee-allocated][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>Memory area for writing. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -393,7 +388,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -422,7 +416,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -440,15 +433,14 @@
 </td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-free-and-get-buffer"></a><h3>gst_byte_writer_free_and_get_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_free_and_get_buffer (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_free_and_get_buffer (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
 <p>
 Frees <em class="parameter"><code>writer</code></em> and all memory allocated by it except
-the current data, which is returned as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.
+the current data, which is returned as <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>.
 </p>
 <p>
 Free-function: gst_buffer_unref
@@ -464,13 +456,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current data as buffer. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
+<td>the current data as buffer. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
 after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -499,7 +490,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -517,7 +507,6 @@
 <a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> instance</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -539,17 +528,17 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current data. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the current data. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after
+usage. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-byte-writer-reset-and-get-buffer"></a><h3>gst_byte_writer_reset_and_get_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_reset_and_get_buffer
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> *         gst_byte_writer_reset_and_get_buffer
                                                         (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstByteWriter.html#GstByteWriter" title="GstByteWriter"><span class="type">GstByteWriter</span></a> *writer</code></em>);</pre>
 <p>
 Resets <em class="parameter"><code>writer</code></em> and returns the current data as buffer.
@@ -567,13 +556,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the current data as buffer. <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
+<td>the current data as buffer. <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#gst-buffer-unref"><code class="function">gst_buffer_unref()</code></a>
 after usage. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -593,7 +581,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -623,7 +610,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -647,7 +633,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -667,7 +652,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -697,7 +681,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -726,7 +709,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -755,7 +737,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -784,7 +765,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -813,7 +793,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -842,7 +821,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -871,7 +849,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -900,7 +877,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -929,7 +905,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -958,7 +933,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -987,7 +961,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1016,7 +989,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1045,7 +1017,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1074,7 +1045,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1103,7 +1073,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1132,7 +1101,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1161,7 +1129,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1190,7 +1157,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1219,7 +1185,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1248,7 +1213,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.27</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1277,7 +1241,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.27</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1306,7 +1269,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.27</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1335,7 +1297,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.27</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1366,7 +1327,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1396,7 +1356,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1426,7 +1385,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1457,7 +1415,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1492,7 +1449,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1526,7 +1482,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.27</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1558,7 +1513,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1584,7 +1538,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1610,7 +1563,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1636,7 +1588,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1662,7 +1613,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1688,7 +1638,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1714,7 +1663,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1740,7 +1688,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1765,7 +1712,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1791,7 +1737,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1817,7 +1762,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1843,7 +1787,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1869,7 +1812,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1895,7 +1837,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1921,7 +1862,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1947,7 +1887,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1973,7 +1912,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1999,7 +1937,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2025,7 +1962,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2051,7 +1987,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2077,7 +2012,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2108,7 +2042,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2138,7 +2071,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gstreamer-libs-GstCheck.html b/docs/libs/html/gstreamer-libs-GstCheck.html
index 0bd2a72..ed2a42e 100644
--- a/docs/libs/html/gstreamer-libs-GstCheck.html
+++ b/docs/libs/html/gstreamer-libs-GstCheck.html
@@ -91,43 +91,43 @@
                                                          c)
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-init" title="gst_check_init ()">gst_check_init</a>                      (<em class="parameter"><code><span class="type">int</span> *argc</code></em>,
                                                          <em class="parameter"><code><span class="type">char</span> **argv[]</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-message-error" title="gst_check_message_error ()">gst_check_message_error</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-message-error" title="gst_check_message_error ()">gst_check_message_error</a>             (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> code</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-element" title="gst_check_setup_element ()">gst_check_setup_element</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad" title="gst_check_setup_sink_pad ()">gst_check_setup_sink_pad</a>            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad" title="gst_check_setup_src_pad ()">gst_check_setup_src_pad</a>             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad-by-name" title="gst_check_setup_sink_pad_by_name ()">gst_check_setup_sink_pad_by_name</a>    (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<a href="../gstreamer-1.0/GstElement.html"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-element" title="gst_check_setup_element ()">gst_check_setup_element</a>             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad" title="gst_check_setup_sink_pad ()">gst_check_setup_sink_pad</a>            (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad" title="gst_check_setup_src_pad ()">gst_check_setup_src_pad</a>             (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-sink-pad-by-name" title="gst_check_setup_sink_pad_by_name ()">gst_check_setup_sink_pad_by_name</a>    (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad-by-name" title="gst_check_setup_src_pad_by_name ()">gst_check_setup_src_pad_by_name</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-setup-src-pad-by-name" title="gst_check_setup_src_pad_by_name ()">gst_check_setup_src_pad_by_name</a>     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-pad-by-name" title="gst_check_teardown_pad_by_name ()">gst_check_teardown_pad_by_name</a>      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-pad-by-name" title="gst_check_teardown_pad_by_name ()">gst_check_teardown_pad_by_name</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-element" title="gst_check_teardown_element ()">gst_check_teardown_element</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad" title="gst_check_teardown_sink_pad ()">gst_check_teardown_sink_pad</a>         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad" title="gst_check_teardown_src_pad ()">gst_check_teardown_src_pad</a>          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-element" title="gst_check_teardown_element ()">gst_check_teardown_element</a>          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad" title="gst_check_teardown_sink_pad ()">gst_check_teardown_sink_pad</a>         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad" title="gst_check_teardown_src_pad ()">gst_check_teardown_src_pad</a>          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-drop-buffers" title="gst_check_drop_buffers ()">gst_check_drop_buffers</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-buffer-data" title="gst_check_buffer_data ()">gst_check_buffer_data</a>               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-buffer-data" title="gst_check_buffer_data ()">gst_check_buffer_data</a>               (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-caps-equal" title="gst_check_caps_equal ()">gst_check_caps_equal</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-caps-equal" title="gst_check_caps_equal ()">gst_check_caps_equal</a>                (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list" title="gst_check_element_push_buffer_list ()">gst_check_element_push_buffer_list</a>  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_in</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer" title="gst_check_element_push_buffer ()">gst_check_element_push_buffer</a>       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="gstreamer-libs-GstCheck.html#gst-check-run-suite" title="gst_check_run_suite ()">gst_check_run_suite</a>                 (<em class="parameter"><code><span class="type">Suite</span> *suite</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fname</code></em>);
@@ -249,7 +249,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -372,7 +371,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.14</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -461,62 +459,159 @@
 <hr>
 <div class="refsect2">
 <a name="gst-check-message-error"></a><h3>gst_check_message_error ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_message_error             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_message_error             (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstMessage.html#GstMessageType"><span class="type">GstMessageType</span></a> type</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> domain</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> code</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-element"></a><h3>gst_check_setup_element ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="returnvalue">GstElement</span></a> *        gst_check_setup_element             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstElement.html"><span class="returnvalue">GstElement</span></a> *        gst_check_setup_element             (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory</code></em>);</pre>
+<p>
+setup an element for a filter test with mysrcpad and mysinkpad
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
+<td>factory</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new element. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-sink-pad"></a><h3>gst_check_setup_sink_pad ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad            (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad            (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
+<td>element to setup pad on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tmpl</code></em> :</span></p></td>
+<td>pad template</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new pad. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-src-pad"></a><h3>gst_check_setup_src_pad ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad             (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad             (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
+<td>element to setup pad on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tmpl</code></em> :</span></p></td>
+<td>pad template</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new pad. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-sink-pad-by-name"></a><h3>gst_check_setup_sink_pad_by_name ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad_by_name    (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_sink_pad_by_name    (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
+<td>element to setup pad on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tmpl</code></em> :</span></p></td>
+<td>pad template</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new pad. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-check-setup-src-pad-by-name"></a><h3>gst_check_setup_src_pad_by_name ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad_by_name     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html"><span class="returnvalue">GstPad</span></a> *            gst_check_setup_src_pad_by_name     (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPadTemplate.html#GstStaticPadTemplate"><span class="type">GstStaticPadTemplate</span></a> *tmpl</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
+<td>element to setup pad on</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tmpl</code></em> :</span></p></td>
+<td>pad template</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new pad. <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>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-pad-by-name"></a><h3>gst_check_teardown_pad_by_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_pad_by_name      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_pad_by_name      (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-element"></a><h3>gst_check_teardown_element ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_element          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_element          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-sink-pad"></a><h3>gst_check_teardown_sink_pad ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_sink_pad         (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_sink_pad         (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-teardown-src-pad"></a><h3>gst_check_teardown_src_pad ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_src_pad          (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_teardown_src_pad          (<em class="parameter"><code><a href="../gstreamer-1.0/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -526,12 +621,11 @@
 Unref and remove all buffers that are in the global <em class="parameter"><code>buffers</code></em> GList,
 emptying the list.
 </p>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-buffer-data"></a><h3>gst_check_buffer_data ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_buffer_data               (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_buffer_data               (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>);</pre>
 <p>
@@ -558,8 +652,8 @@
 <hr>
 <div class="refsect2">
 <a name="gst-check-caps-equal"></a><h3>gst_check_caps_equal ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_caps_equal                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                gst_check_caps_equal                (<em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps1</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps2</code></em>);</pre>
 <p>
 Compare two caps with gst_caps_is_equal and fail unless they are
 equal.
@@ -577,17 +671,16 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-element-push-buffer-list"></a><h3>gst_check_element_push_buffer_list ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_check_element_push_buffer_list  (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_in</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *buffer_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> last_flow_return</code></em>);</pre>
 <p>
 Create an <em class="parameter"><code>element</code></em> with the factory with the name and push the buffers in
 <em class="parameter"><code>buffer_in</code></em> to this element. The element should create the buffers equal to
@@ -623,16 +716,15 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-check-element-push-buffer"></a><h3>gst_check_element_push_buffer ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                gst_check_element_push_buffer       (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *element_name</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_in</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer_out</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps_out</code></em>);</pre>
 <p>
 Create an <em class="parameter"><code>element</code></em> with the factory with the name and push the
 <em class="parameter"><code>buffer_in</code></em> to this element. The element should create one buffer
@@ -656,7 +748,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.18</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/gstreamer-libs-GstNetTimePacket.html b/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
index 2635574..3bf804c 100644
--- a/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
+++ b/docs/libs/html/gstreamer-libs-GstNetTimePacket.html
@@ -80,11 +80,11 @@
 <col align="left" valign="top">
 <tbody>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.local-time"></a>local_time</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.local-time"></a>local_time</code></em>;</span></p></td>
 <td>the local time when this packet was sent</td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.remote-time"></a>remote_time</code></em>;</span></p></td>
+<td><p><span class="term"><a href="../gstreamer-1.0/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstNetTimePacket.remote-time"></a>remote_time</code></em>;</span></p></td>
 <td>the remote time observation</td>
 </tr>
 </tbody>
@@ -110,17 +110,18 @@
 </p>
 <p>
 If <em class="parameter"><code>buffer</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the local and remote times will be set to
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>.
+<a href="../gstreamer-1.0/GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>.
 </p>
 <p>
-MT safe. Caller owns return value (g_free to free).
+MT safe. Caller owns return value (gst_net_time_packet_free to free).
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a buffer from which to construct the packet, or NULL</td>
+<td>a buffer from which to construct the packet, or NULL. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -147,18 +148,18 @@
 <td>socket to receive the time packet on</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>src_addr</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>src_address</code></em> :</span></p></td>
 <td>address of variable to return sender address. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
 <td>return address for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or NULL</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>a new <a class="link" href="gstreamer-libs-GstNetTimePacket.html#GstNetTimePacket" title="struct GstNetTimePacket"><span class="type">GstNetTimePacket</span></a>, or NULL on error. Free
-with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+with <code class="function">gst_net_time_packet_free()</code> when done. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -189,11 +190,11 @@
 <td>socket to send the time packet on</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>dest_addr</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>dest_address</code></em> :</span></p></td>
 <td>address to send the time packet to</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
 <td>return address for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or NULL</td>
 </tr>
 <tr>
@@ -234,7 +235,7 @@
 </div>
 <div class="refsect1">
 <a name="gstreamer-libs-GstNetTimePacket.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>
+<a href="../gstreamer-1.0/GstClock.html"><span class="type">GstClock</span></a>, <a class="link" href="GstNetClientClock.html" title="GstNetClientClock"><span class="type">GstNetClientClock</span></a>, <a class="link" href="GstNetTimeProvider.html" title="GstNetTimeProvider"><span class="type">GstNetTimeProvider</span></a>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/libs/html/gstreamer-libs-GstStreamConsistency.html b/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
index cc950b9..314e510 100644
--- a/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
+++ b/docs/libs/html/gstreamer-libs-GstStreamConsistency.html
@@ -41,7 +41,7 @@
 #include &lt;gst/check/gstconsistencychecker.h&gt;
 
                     <a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency">GstStreamConsistency</a>;
-<a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new" title="gst_consistency_checker_new ()">gst_consistency_checker_new</a>      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
+<a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new" title="gst_consistency_checker_new ()">gst_consistency_checker_new</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset" title="gst_consistency_checker_reset ()">gst_consistency_checker_reset</a>       (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> *consist</code></em>);
 <span class="returnvalue">void</span>                <a class="link" href="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free" title="gst_consistency_checker_free ()">gst_consistency_checker_free</a>        (<em class="parameter"><code><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> *consist</code></em>);
 </pre>
@@ -61,12 +61,11 @@
 <p>
 Opaque consistency checker handle.
 </p>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-consistency-checker-new"></a><h3>gst_consistency_checker_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * gst_consistency_checker_new      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="returnvalue">GstStreamConsistency</span></a> * gst_consistency_checker_new      (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
 <p>
 Sets up a data probe on the given pad which will raise assertions if the
 data flow is inconsistent.
@@ -76,7 +75,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>pad</code></em> :</span></p></td>
-<td>The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> on which the dataflow will be checked.</td>
+<td>The <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> on which the dataflow will be checked.</td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -84,7 +83,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -100,7 +98,6 @@
 <td>The <a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> to reset.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -116,7 +113,6 @@
 <td>The <a class="link" href="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" title="GstStreamConsistency"><span class="type">GstStreamConsistency</span></a> to free.</td>
 </tr></tbody>
 </table></div>
-<p class="since">Since 0.10.24</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
index 6587c24..d17bf32 100644
--- a/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
+++ b/docs/libs/html/gstreamer-libs-GstTypeFindHelper.html
@@ -40,29 +40,29 @@
 <pre class="synopsis">
 #include &lt;gst/base/gsttypefindhelper.h&gt;
 
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()">gst_type_find_helper</a>                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()">gst_type_find_helper</a>                (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> size</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer" title="gst_type_find_helper_for_buffer ()">gst_type_find_helper_for_buffer</a>     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension" title="gst_type_find_helper_for_extension ()">gst_type_find_helper_for_extension</a>  (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer" title="gst_type_find_helper_for_buffer ()">gst_type_find_helper_for_buffer</a>     (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension" title="gst_type_find_helper_for_extension ()">gst_type_find_helper_for_extension</a>  (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data" title="gst_type_find_helper_for_data ()">gst_type_find_helper_for_data</a>       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data" title="gst_type_find_helper_for_data ()">gst_type_find_helper_for_data</a>       (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
                                                          <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()">*GstTypeFindHelperGetRangeFunction</a>)
-                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
+<a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (<a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()">*GstTypeFindHelperGetRangeFunction</a>)
+                                                        (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()">gst_type_find_helper_get_range</a>      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);
+<a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()">gst_type_find_helper_get_range</a>      (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> func</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> size</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -78,10 +78,10 @@
 <a name="gstreamer-libs-GstTypeFindHelper.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="gst-type-find-helper"></a><h3>gst_type_find_helper ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper                (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper                (<em class="parameter"><code><a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a> *src</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> size</code></em>);</pre>
 <p>
-Tries to find what type of data is flowing from the given source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>.
+Tries to find what type of data is flowing from the given source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>.
 </p>
 <p>
 Free-function: gst_caps_unref
@@ -91,7 +91,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>A source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>
+<td>A source <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>
 </td>
 </tr>
 <tr>
@@ -100,8 +100,8 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
+Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -110,17 +110,17 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-for-buffer"></a><h3>gst_type_find_helper_for_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_buffer     (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_buffer     (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
 <p>
-Tries to find what type of data is contained in the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>, the
+Tries to find what type of data is contained in the given <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>, the
 assumption being that the buffer represents the beginning of the stream or
 file.
 </p>
 <p>
 All available typefinders will be called on the data in order of rank. If
-a typefinding function returns a probability of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
+a typefinding function returns a probability of <a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
 typefinding is stopped immediately and the found caps will be returned
 right away. Otherwise, all available typefind functions will the tried,
 and the caps with the highest probability will be returned, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if
@@ -138,7 +138,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with data to typefind. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>a <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with data to typefind. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
 </td>
 </tr>
 <tr>
@@ -149,9 +149,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
 if no type could be found. The caller should free the caps returned
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+with <a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -160,10 +160,10 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-for-extension"></a><h3>gst_type_find_helper_for_extension ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_extension  (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_extension  (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>);</pre>
 <p>
-Tries to find the best <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> associated with <em class="parameter"><code>extension</code></em>.
+Tries to find the best <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> associated with <em class="parameter"><code>extension</code></em>.
 </p>
 <p>
 All available typefinders will be checked against the extension in order
@@ -187,22 +187,21 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to <em class="parameter"><code>extension</code></em>, or
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to <em class="parameter"><code>extension</code></em>, or
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no type could be found. The caller should free the caps
-returned with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+returned with <a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.23</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-for-data"></a><h3>gst_type_find_helper_for_data ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_data       (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_for_data       (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
                                                          <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
                                                          <em class="parameter"><code><span class="type">gsize</span> size</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
 <p>
 Tries to find what type of data is contained in the given <em class="parameter"><code>data</code></em>, the
 assumption being that the data represents the beginning of the stream or
@@ -210,7 +209,7 @@
 </p>
 <p>
 All available typefinders will be called on the data in order of rank. If
-a typefinding function returns a probability of <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
+a typefinding function returns a probability of <a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GST-TYPE-FIND-MAXIMUM:CAPS"><span class="type">GST_TYPE_FIND_MAXIMUM</span></a>,
 typefinding is stopped immediately and the found caps will be returned
 right away. Otherwise, all available typefind functions will the tried,
 and the caps with the highest probability will be returned, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if
@@ -244,9 +243,9 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>
 if no type could be found. The caller should free the caps returned
-with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+with <a href="../gstreamer-1.0/gstreamer-GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
@@ -255,12 +254,12 @@
 <hr>
 <div class="refsect2">
 <a name="GstTypeFindHelperGetRangeFunction"></a><h3>GstTypeFindHelperGetRangeFunction ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstTypeFindHelperGetRangeFunction)
-                                                        (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>       (*GstTypeFindHelperGetRangeFunction)
+                                                        (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> offset</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>);</pre>
 <p>
 This function will be called by <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" title="gst_type_find_helper_get_range ()"><code class="function">gst_type_find_helper_get_range()</code></a> when
 typefinding functions request to peek at the data of a stream at certain
@@ -269,14 +268,14 @@
 return value.
 </p>
 <p>
-This function is supposed to behave exactly like a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstPadGetRangeFunction"><span class="type">GstPadGetRangeFunction</span></a>.
+This function is supposed to behave exactly like a <a href="../gstreamer-1.0/GstPad.html#GstPadGetRangeFunction"><span class="type">GstPadGetRangeFunction</span></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> that will handle the getrange request</td>
+<td>a <a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> that will handle the getrange request</td>
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
@@ -304,12 +303,12 @@
 <hr>
 <div class="refsect2">
 <a name="gst-type-find-helper-get-range"></a><h3>gst_type_find_helper_get_range ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_get_range      (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
+<pre class="programlisting"><a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> *           gst_type_find_helper_get_range      (<em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *obj</code></em>,
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> *parent</code></em>,
                                                          <em class="parameter"><code><a class="link" href="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction" title="GstTypeFindHelperGetRangeFunction ()"><span class="type">GstTypeFindHelperGetRangeFunction</span></a> func</code></em>,
                                                          <em class="parameter"><code><span class="type">guint64</span> size</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *extension</code></em>,
-                                                         <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../gstreamer-1.0/gstreamer-GstTypeFind.html#GstTypeFindProbability"><span class="type">GstTypeFindProbability</span></a> *prob</code></em>);</pre>
 <p>
 Utility function to do pull-based typefinding. Unlike <a class="link" href="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper" title="gst_type_find_helper ()"><code class="function">gst_type_find_helper()</code></a>
 however, this function will use the specified function <em class="parameter"><code>func</code></em> to obtain the
@@ -333,7 +332,7 @@
 <tbody>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
-<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> that will be passed as first argument to <em class="parameter"><code>func</code></em>
+<td>A <a href="../gstreamer-1.0/GstObject.html"><span class="type">GstObject</span></a> that will be passed as first argument to <em class="parameter"><code>func</code></em>
 </td>
 </tr>
 <tr>
@@ -362,13 +361,12 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
-Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> corresponding to the data stream.
+Returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if no <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> matches the data stream. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
 </td>
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.26</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gstreamer-libs.devhelp2 b/docs/libs/html/gstreamer-libs.devhelp2
index a6b28f9..cae1b46 100644
--- a/docs/libs/html/gstreamer-libs.devhelp2
+++ b/docs/libs/html/gstreamer-libs.devhelp2
@@ -41,44 +41,44 @@
   <functions>
     <keyword type="struct" name="struct GstBaseParse" link="gstreamer-libs-GstBaseParse.html#GstBaseParse"/>
     <keyword type="struct" name="struct GstBaseParseClass" link="gstreamer-libs-GstBaseParse.html#GstBaseParseClass"/>
-    <keyword type="function" name="gst_base_parse_set_duration ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_average_bitrate ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_min_frame_size ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_passthrough ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-passthrough" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_syncable ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-syncable" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_has_timing_info ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-has-timing-info" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_frame_rate ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-frame-rate" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_set_latency ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency" since="0.10.36"/>
-    <keyword type="function" name="gst_base_parse_convert_default ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_add_index_entry ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry" since="0.10.33"/>
-    <keyword type="struct" name="GstBaseParseFrame" link="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame" since="0.10.33"/>
-    <keyword type="enum" name="enum GstBaseParseFrameFlags" link="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_frame_new ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new" since="0.10.33"/>
-    <keyword type="function" name="gst_base_parse_frame_init ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init" since="0.10.33"/>
+    <keyword type="function" name="gst_base_parse_set_duration ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-duration"/>
+    <keyword type="function" name="gst_base_parse_set_average_bitrate ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-average-bitrate"/>
+    <keyword type="function" name="gst_base_parse_set_min_frame_size ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-min-frame-size"/>
+    <keyword type="function" name="gst_base_parse_set_passthrough ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-passthrough"/>
+    <keyword type="function" name="gst_base_parse_set_syncable ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-syncable"/>
+    <keyword type="function" name="gst_base_parse_set_has_timing_info ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-has-timing-info"/>
+    <keyword type="function" name="gst_base_parse_set_frame_rate ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-frame-rate"/>
+    <keyword type="function" name="gst_base_parse_set_latency ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-set-latency"/>
+    <keyword type="function" name="gst_base_parse_convert_default ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-convert-default"/>
+    <keyword type="function" name="gst_base_parse_add_index_entry ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-add-index-entry"/>
+    <keyword type="struct" name="GstBaseParseFrame" link="gstreamer-libs-GstBaseParse.html#GstBaseParseFrame"/>
+    <keyword type="enum" name="enum GstBaseParseFrameFlags" link="gstreamer-libs-GstBaseParse.html#GstBaseParseFrameFlags"/>
+    <keyword type="function" name="gst_base_parse_frame_new ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-new"/>
+    <keyword type="function" name="gst_base_parse_frame_init ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-init"/>
     <keyword type="function" name="gst_base_parse_frame_free ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-frame-free"/>
-    <keyword type="function" name="gst_base_parse_push_frame ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame" since="0.10.33"/>
-    <keyword type="macro" name="GST_BASE_PARSE_DRAINING()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS" since="0.10.33"/>
+    <keyword type="function" name="gst_base_parse_push_frame ()" link="gstreamer-libs-GstBaseParse.html#gst-base-parse-push-frame"/>
+    <keyword type="macro" name="GST_BASE_PARSE_DRAINING()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-DRAINING:CAPS"/>
     <keyword type="macro" name="GST_BASE_PARSE_FLAG_DRAINING" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-DRAINING:CAPS"/>
     <keyword type="macro" name="GST_BASE_PARSE_FLAG_LOST_SYNC" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLAG-LOST-SYNC:CAPS"/>
-    <keyword type="macro" name="GST_BASE_PARSE_FLOW_DROPPED" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS" since="0.10.33"/>
-    <keyword type="macro" name="GST_BASE_PARSE_LOST_SYNC()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS" since="0.10.33"/>
-    <keyword type="macro" name="GST_BASE_PARSE_SINK_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS" since="0.10.33"/>
-    <keyword type="macro" name="GST_BASE_PARSE_SRC_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS" since="0.10.33"/>
-    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp7055728"/>
+    <keyword type="macro" name="GST_BASE_PARSE_FLOW_DROPPED" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FLOW-DROPPED:CAPS"/>
+    <keyword type="macro" name="GST_BASE_PARSE_LOST_SYNC()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS"/>
+    <keyword type="macro" name="GST_BASE_PARSE_SINK_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS"/>
+    <keyword type="macro" name="GST_BASE_PARSE_SRC_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS"/>
+    <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp6539136"/>
     <keyword type="struct" name="struct GstBaseSrc" link="GstBaseSrc.html#GstBaseSrc-struct"/>
     <keyword type="struct" name="struct GstBaseSrcClass" link="GstBaseSrc.html#GstBaseSrcClass"/>
     <keyword type="enum" name="enum GstBaseSrcFlags" link="GstBaseSrc.html#GstBaseSrcFlags"/>
-    <keyword type="function" name="gst_base_src_wait_playing ()" link="GstBaseSrc.html#gst-base-src-wait-playing" since="0.10.12"/>
+    <keyword type="function" name="gst_base_src_wait_playing ()" link="GstBaseSrc.html#gst-base-src-wait-playing"/>
     <keyword type="function" name="gst_base_src_is_live ()" link="GstBaseSrc.html#gst-base-src-is-live"/>
     <keyword type="function" name="gst_base_src_set_live ()" link="GstBaseSrc.html#gst-base-src-set-live"/>
-    <keyword type="function" name="gst_base_src_set_format ()" link="GstBaseSrc.html#gst-base-src-set-format" since="0.10.1"/>
-    <keyword type="function" name="gst_base_src_query_latency ()" link="GstBaseSrc.html#gst-base-src-query-latency" since="0.10.13"/>
-    <keyword type="function" name="gst_base_src_get_blocksize ()" link="GstBaseSrc.html#gst-base-src-get-blocksize" since="0.10.22"/>
-    <keyword type="function" name="gst_base_src_set_blocksize ()" link="GstBaseSrc.html#gst-base-src-set-blocksize" since="0.10.22"/>
-    <keyword type="function" name="gst_base_src_get_do_timestamp ()" link="GstBaseSrc.html#gst-base-src-get-do-timestamp" since="0.10.15"/>
-    <keyword type="function" name="gst_base_src_set_do_timestamp ()" link="GstBaseSrc.html#gst-base-src-set-do-timestamp" since="0.10.15"/>
-    <keyword type="function" name="gst_base_src_set_dynamic_size ()" link="GstBaseSrc.html#gst-base-src-set-dynamic-size" since="0.10.36"/>
-    <keyword type="function" name="gst_base_src_new_seamless_segment ()" link="GstBaseSrc.html#gst-base-src-new-seamless-segment" since="0.10.26"/>
+    <keyword type="function" name="gst_base_src_set_format ()" link="GstBaseSrc.html#gst-base-src-set-format"/>
+    <keyword type="function" name="gst_base_src_query_latency ()" link="GstBaseSrc.html#gst-base-src-query-latency"/>
+    <keyword type="function" name="gst_base_src_get_blocksize ()" link="GstBaseSrc.html#gst-base-src-get-blocksize"/>
+    <keyword type="function" name="gst_base_src_set_blocksize ()" link="GstBaseSrc.html#gst-base-src-set-blocksize"/>
+    <keyword type="function" name="gst_base_src_get_do_timestamp ()" link="GstBaseSrc.html#gst-base-src-get-do-timestamp"/>
+    <keyword type="function" name="gst_base_src_set_do_timestamp ()" link="GstBaseSrc.html#gst-base-src-set-do-timestamp"/>
+    <keyword type="function" name="gst_base_src_set_dynamic_size ()" link="GstBaseSrc.html#gst-base-src-set-dynamic-size"/>
+    <keyword type="function" name="gst_base_src_new_seamless_segment ()" link="GstBaseSrc.html#gst-base-src-new-seamless-segment"/>
     <keyword type="function" name="gst_base_src_set_caps ()" link="GstBaseSrc.html#gst-base-src-set-caps"/>
     <keyword type="macro" name="GST_BASE_SRC_PAD()" link="GstBaseSrc.html#GST-BASE-SRC-PAD:CAPS"/>
     <keyword type="property" name="The &quot;blocksize&quot; property" link="GstBaseSrc.html#GstBaseSrc--blocksize"/>
@@ -87,29 +87,28 @@
     <keyword type="property" name="The &quot;typefind&quot; property" link="GstBaseSrc.html#GstBaseSrc--typefind"/>
     <keyword type="struct" name="struct GstBaseSink" link="GstBaseSink.html#GstBaseSink-struct"/>
     <keyword type="struct" name="struct GstBaseSinkClass" link="GstBaseSink.html#GstBaseSinkClass"/>
-    <keyword type="function" name="gst_base_sink_query_latency ()" link="GstBaseSink.html#gst-base-sink-query-latency" since="0.10.12"/>
-    <keyword type="function" name="gst_base_sink_get_latency ()" link="GstBaseSink.html#gst-base-sink-get-latency" since="0.10.12"/>
-    <keyword type="function" name="gst_base_sink_do_preroll ()" link="GstBaseSink.html#gst-base-sink-do-preroll" since="0.10.22"/>
-    <keyword type="function" name="gst_base_sink_wait_preroll ()" link="GstBaseSink.html#gst-base-sink-wait-preroll" since="0.10.11"/>
-    <keyword type="function" name="gst_base_sink_wait_clock ()" link="GstBaseSink.html#gst-base-sink-wait-clock" since="0.10.20"/>
-    <keyword type="function" name="gst_base_sink_wait_eos ()" link="GstBaseSink.html#gst-base-sink-wait-eos" since="0.10.15"/>
-    <keyword type="function" name="gst_base_sink_set_sync ()" link="GstBaseSink.html#gst-base-sink-set-sync" since="0.10.4"/>
-    <keyword type="function" name="gst_base_sink_get_sync ()" link="GstBaseSink.html#gst-base-sink-get-sync" since="0.10.4"/>
-    <keyword type="function" name="gst_base_sink_set_max_lateness ()" link="GstBaseSink.html#gst-base-sink-set-max-lateness" since="0.10.4"/>
-    <keyword type="function" name="gst_base_sink_get_max_lateness ()" link="GstBaseSink.html#gst-base-sink-get-max-lateness" since="0.10.4"/>
-    <keyword type="function" name="gst_base_sink_set_qos_enabled ()" link="GstBaseSink.html#gst-base-sink-set-qos-enabled" since="0.10.5"/>
-    <keyword type="function" name="gst_base_sink_is_qos_enabled ()" link="GstBaseSink.html#gst-base-sink-is-qos-enabled" since="0.10.5"/>
-    <keyword type="function" name="gst_base_sink_set_async_enabled ()" link="GstBaseSink.html#gst-base-sink-set-async-enabled" since="0.10.15"/>
-    <keyword type="function" name="gst_base_sink_is_async_enabled ()" link="GstBaseSink.html#gst-base-sink-is-async-enabled" since="0.10.15"/>
-    <keyword type="function" name="gst_base_sink_set_ts_offset ()" link="GstBaseSink.html#gst-base-sink-set-ts-offset" since="0.10.15"/>
-    <keyword type="function" name="gst_base_sink_get_ts_offset ()" link="GstBaseSink.html#gst-base-sink-get-ts-offset" since="0.10.15"/>
-    <keyword type="function" name="gst_base_sink_set_render_delay ()" link="GstBaseSink.html#gst-base-sink-set-render-delay" since="0.10.21"/>
-    <keyword type="function" name="gst_base_sink_get_render_delay ()" link="GstBaseSink.html#gst-base-sink-get-render-delay" since="0.10.21"/>
-    <keyword type="function" name="gst_base_sink_get_last_sample ()" link="GstBaseSink.html#gst-base-sink-get-last-sample" since="0.10.15"/>
-    <keyword type="function" name="gst_base_sink_set_blocksize ()" link="GstBaseSink.html#gst-base-sink-set-blocksize" since="0.10.22"/>
-    <keyword type="function" name="gst_base_sink_get_blocksize ()" link="GstBaseSink.html#gst-base-sink-get-blocksize" since="0.10.22"/>
-    <keyword type="function" name="gst_base_sink_get_throttle_time ()" link="GstBaseSink.html#gst-base-sink-get-throttle-time" since="0.10.33"/>
-    <keyword type="function" name="gst_base_sink_set_throttle_time ()" link="GstBaseSink.html#gst-base-sink-set-throttle-time" since="0.10.33"/>
+    <keyword type="function" name="gst_base_sink_query_latency ()" link="GstBaseSink.html#gst-base-sink-query-latency"/>
+    <keyword type="function" name="gst_base_sink_get_latency ()" link="GstBaseSink.html#gst-base-sink-get-latency"/>
+    <keyword type="function" name="gst_base_sink_do_preroll ()" link="GstBaseSink.html#gst-base-sink-do-preroll"/>
+    <keyword type="function" name="gst_base_sink_wait_preroll ()" link="GstBaseSink.html#gst-base-sink-wait-preroll"/>
+    <keyword type="function" name="gst_base_sink_wait_clock ()" link="GstBaseSink.html#gst-base-sink-wait-clock"/>
+    <keyword type="function" name="gst_base_sink_set_sync ()" link="GstBaseSink.html#gst-base-sink-set-sync"/>
+    <keyword type="function" name="gst_base_sink_get_sync ()" link="GstBaseSink.html#gst-base-sink-get-sync"/>
+    <keyword type="function" name="gst_base_sink_set_max_lateness ()" link="GstBaseSink.html#gst-base-sink-set-max-lateness"/>
+    <keyword type="function" name="gst_base_sink_get_max_lateness ()" link="GstBaseSink.html#gst-base-sink-get-max-lateness"/>
+    <keyword type="function" name="gst_base_sink_set_qos_enabled ()" link="GstBaseSink.html#gst-base-sink-set-qos-enabled"/>
+    <keyword type="function" name="gst_base_sink_is_qos_enabled ()" link="GstBaseSink.html#gst-base-sink-is-qos-enabled"/>
+    <keyword type="function" name="gst_base_sink_set_async_enabled ()" link="GstBaseSink.html#gst-base-sink-set-async-enabled"/>
+    <keyword type="function" name="gst_base_sink_is_async_enabled ()" link="GstBaseSink.html#gst-base-sink-is-async-enabled"/>
+    <keyword type="function" name="gst_base_sink_set_ts_offset ()" link="GstBaseSink.html#gst-base-sink-set-ts-offset"/>
+    <keyword type="function" name="gst_base_sink_get_ts_offset ()" link="GstBaseSink.html#gst-base-sink-get-ts-offset"/>
+    <keyword type="function" name="gst_base_sink_set_render_delay ()" link="GstBaseSink.html#gst-base-sink-set-render-delay"/>
+    <keyword type="function" name="gst_base_sink_get_render_delay ()" link="GstBaseSink.html#gst-base-sink-get-render-delay"/>
+    <keyword type="function" name="gst_base_sink_get_last_sample ()" link="GstBaseSink.html#gst-base-sink-get-last-sample"/>
+    <keyword type="function" name="gst_base_sink_set_blocksize ()" link="GstBaseSink.html#gst-base-sink-set-blocksize"/>
+    <keyword type="function" name="gst_base_sink_get_blocksize ()" link="GstBaseSink.html#gst-base-sink-get-blocksize"/>
+    <keyword type="function" name="gst_base_sink_get_throttle_time ()" link="GstBaseSink.html#gst-base-sink-get-throttle-time"/>
+    <keyword type="function" name="gst_base_sink_set_throttle_time ()" link="GstBaseSink.html#gst-base-sink-set-throttle-time"/>
     <keyword type="macro" name="GST_BASE_SINK_PAD()" link="GstBaseSink.html#GST-BASE-SINK-PAD:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_GET_PREROLL_COND()" link="GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-COND:CAPS"/>
     <keyword type="macro" name="GST_BASE_SINK_GET_PREROLL_LOCK()" link="GstBaseSink.html#GST-BASE-SINK-GET-PREROLL-LOCK:CAPS"/>
@@ -129,23 +128,23 @@
     <keyword type="property" name="The &quot;sync&quot; property" link="GstBaseSink.html#GstBaseSink--sync"/>
     <keyword type="property" name="The &quot;throttle-time&quot; property" link="GstBaseSink.html#GstBaseSink--throttle-time"/>
     <keyword type="property" name="The &quot;ts-offset&quot; property" link="GstBaseSink.html#GstBaseSink--ts-offset"/>
-    <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp6939712"/>
-    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp7842576"/>
+    <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp8304832"/>
+    <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp6194080"/>
     <keyword type="struct" name="struct GstBaseTransform" link="GstBaseTransform.html#GstBaseTransform-struct"/>
     <keyword type="struct" name="struct GstBaseTransformClass" link="GstBaseTransform.html#GstBaseTransformClass"/>
     <keyword type="function" name="gst_base_transform_is_passthrough ()" link="GstBaseTransform.html#gst-base-transform-is-passthrough"/>
     <keyword type="function" name="gst_base_transform_set_passthrough ()" link="GstBaseTransform.html#gst-base-transform-set-passthrough"/>
     <keyword type="function" name="gst_base_transform_is_in_place ()" link="GstBaseTransform.html#gst-base-transform-is-in-place"/>
     <keyword type="function" name="gst_base_transform_set_in_place ()" link="GstBaseTransform.html#gst-base-transform-set-in-place"/>
-    <keyword type="function" name="gst_base_transform_is_qos_enabled ()" link="GstBaseTransform.html#gst-base-transform-is-qos-enabled" since="0.10.5"/>
-    <keyword type="function" name="gst_base_transform_set_qos_enabled ()" link="GstBaseTransform.html#gst-base-transform-set-qos-enabled" since="0.10.5"/>
-    <keyword type="function" name="gst_base_transform_update_qos ()" link="GstBaseTransform.html#gst-base-transform-update-qos" since="0.10.5"/>
-    <keyword type="function" name="gst_base_transform_set_gap_aware ()" link="GstBaseTransform.html#gst-base-transform-set-gap-aware" since="0.10.16"/>
+    <keyword type="function" name="gst_base_transform_is_qos_enabled ()" link="GstBaseTransform.html#gst-base-transform-is-qos-enabled"/>
+    <keyword type="function" name="gst_base_transform_set_qos_enabled ()" link="GstBaseTransform.html#gst-base-transform-set-qos-enabled"/>
+    <keyword type="function" name="gst_base_transform_update_qos ()" link="GstBaseTransform.html#gst-base-transform-update-qos"/>
+    <keyword type="function" name="gst_base_transform_set_gap_aware ()" link="GstBaseTransform.html#gst-base-transform-set-gap-aware"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_SINK_NAME" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-NAME:CAPS"/>
     <keyword type="macro" name="GST_BASE_TRANSFORM_SRC_NAME" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-NAME:CAPS"/>
-    <keyword type="macro" name="GST_BASE_TRANSFORM_SINK_PAD()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS" since="0.10.4"/>
-    <keyword type="macro" name="GST_BASE_TRANSFORM_SRC_PAD()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS" since="0.10.4"/>
-    <keyword type="macro" name="GST_BASE_TRANSFORM_FLOW_DROPPED" link="GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS" since="0.10.13"/>
+    <keyword type="macro" name="GST_BASE_TRANSFORM_SINK_PAD()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SINK-PAD:CAPS"/>
+    <keyword type="macro" name="GST_BASE_TRANSFORM_SRC_PAD()" link="GstBaseTransform.html#GST-BASE-TRANSFORM-SRC-PAD:CAPS"/>
+    <keyword type="macro" name="GST_BASE_TRANSFORM_FLOW_DROPPED" link="GstBaseTransform.html#GST-BASE-TRANSFORM-FLOW-DROPPED:CAPS"/>
     <keyword type="property" name="The &quot;qos&quot; property" link="GstBaseTransform.html#GstBaseTransform--qos"/>
     <keyword type="struct" name="struct GstPushSrc" link="GstPushSrc.html#GstPushSrc-struct"/>
     <keyword type="struct" name="GstAdapter" link="GstAdapter.html#GstAdapter-struct"/>
@@ -154,278 +153,275 @@
     <keyword type="function" name="gst_adapter_push ()" link="GstAdapter.html#gst-adapter-push"/>
     <keyword type="function" name="gst_adapter_map ()" link="GstAdapter.html#gst-adapter-map"/>
     <keyword type="function" name="gst_adapter_unmap ()" link="GstAdapter.html#gst-adapter-unmap"/>
-    <keyword type="function" name="gst_adapter_copy ()" link="GstAdapter.html#gst-adapter-copy" since="0.10.12"/>
+    <keyword type="function" name="gst_adapter_copy ()" link="GstAdapter.html#gst-adapter-copy"/>
     <keyword type="function" name="gst_adapter_flush ()" link="GstAdapter.html#gst-adapter-flush"/>
     <keyword type="function" name="gst_adapter_available ()" link="GstAdapter.html#gst-adapter-available"/>
     <keyword type="function" name="gst_adapter_available_fast ()" link="GstAdapter.html#gst-adapter-available-fast"/>
     <keyword type="function" name="gst_adapter_take ()" link="GstAdapter.html#gst-adapter-take"/>
-    <keyword type="function" name="gst_adapter_take_buffer ()" link="GstAdapter.html#gst-adapter-take-buffer" since="0.10.6"/>
-    <keyword type="function" name="gst_adapter_take_list ()" link="GstAdapter.html#gst-adapter-take-list" since="0.10.31"/>
+    <keyword type="function" name="gst_adapter_take_buffer ()" link="GstAdapter.html#gst-adapter-take-buffer"/>
+    <keyword type="function" name="gst_adapter_take_list ()" link="GstAdapter.html#gst-adapter-take-list"/>
     <keyword type="function" name="gst_adapter_prev_pts ()" link="GstAdapter.html#gst-adapter-prev-pts"/>
     <keyword type="function" name="gst_adapter_prev_dts ()" link="GstAdapter.html#gst-adapter-prev-dts"/>
-    <keyword type="function" name="gst_adapter_masked_scan_uint32 ()" link="GstAdapter.html#gst-adapter-masked-scan-uint32" since="0.10.24"/>
-    <keyword type="function" name="gst_adapter_masked_scan_uint32_peek ()" link="GstAdapter.html#gst-adapter-masked-scan-uint32-peek" since="0.10.30"/>
+    <keyword type="function" name="gst_adapter_masked_scan_uint32 ()" link="GstAdapter.html#gst-adapter-masked-scan-uint32"/>
+    <keyword type="function" name="gst_adapter_masked_scan_uint32_peek ()" link="GstAdapter.html#gst-adapter-masked-scan-uint32-peek"/>
     <keyword type="struct" name="GstBitReader" link="gstreamer-libs-GstBitReader.html#GstBitReader"/>
-    <keyword type="macro" name="GST_BIT_READER_INIT()" link="gstreamer-libs-GstBitReader.html#GST-BIT-READER-INIT:CAPS" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_new ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-new" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_free ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-free" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_init ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-init" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_pos ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-pos" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_remaining ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-remaining" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_set_pos ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-set-pos" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_size ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-size" since="0.10.26"/>
-    <keyword type="function" name="gst_bit_reader_skip ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_skip_to_byte ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint16 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint32 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint64 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint8 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint16 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint32 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint64 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint8 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8" since="0.10.22"/>
-    <keyword type="function" name="gst_bit_reader_skip_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_skip_to_byte_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint16_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint32_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint64_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_get_bits_uint8_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint16_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint32_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32-unchecked" since="0.10.31"/>
+    <keyword type="macro" name="GST_BIT_READER_INIT()" link="gstreamer-libs-GstBitReader.html#GST-BIT-READER-INIT:CAPS"/>
+    <keyword type="function" name="gst_bit_reader_new ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-new"/>
+    <keyword type="function" name="gst_bit_reader_free ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-free"/>
+    <keyword type="function" name="gst_bit_reader_init ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-init"/>
+    <keyword type="function" name="gst_bit_reader_get_pos ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-pos"/>
+    <keyword type="function" name="gst_bit_reader_get_remaining ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-remaining"/>
+    <keyword type="function" name="gst_bit_reader_set_pos ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-set-pos"/>
+    <keyword type="function" name="gst_bit_reader_get_size ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-size"/>
+    <keyword type="function" name="gst_bit_reader_skip ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip"/>
+    <keyword type="function" name="gst_bit_reader_skip_to_byte ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint16 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint32 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint64 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint8 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint16 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint32 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint64 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint8 ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8"/>
+    <keyword type="function" name="gst_bit_reader_skip_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_skip_to_byte_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-skip-to-byte-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint16_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint16-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint32_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint32-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint64_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint64-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_get_bits_uint8_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-get-bits-uint8-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint16_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint16-unchecked"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint32_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint32-unchecked"/>
     <keyword type="function" name="gst_bit_reader_peek_bits_uint64_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint64-unchecked"/>
-    <keyword type="function" name="gst_bit_reader_peek_bits_uint8_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8-unchecked" since="0.10.31"/>
+    <keyword type="function" name="gst_bit_reader_peek_bits_uint8_unchecked ()" link="gstreamer-libs-GstBitReader.html#gst-bit-reader-peek-bits-uint8-unchecked"/>
     <keyword type="struct" name="GstByteReader" link="gstreamer-libs-GstByteReader.html#GstByteReader"/>
-    <keyword type="macro" name="GST_BYTE_READER_INIT()" link="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_new ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-new" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_free ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-free" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_init ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-init" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_pos ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-pos" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_remaining ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-remaining" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_set_pos ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-set-pos" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_size ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-size" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_reader_skip ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_int64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_uint64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_int64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_float32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_float32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_float64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_float64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_float32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_float32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_float64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_peek_float64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_get_data ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_dup_data ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_peek_data ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data" since="0.10.22"/>
-    <keyword type="function" name="gst_byte_reader_masked_scan_uint32 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-masked-scan-uint32" since="0.10.24"/>
+    <keyword type="macro" name="GST_BYTE_READER_INIT()" link="gstreamer-libs-GstByteReader.html#GST-BYTE-READER-INIT:CAPS"/>
+    <keyword type="function" name="gst_byte_reader_new ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-new"/>
+    <keyword type="function" name="gst_byte_reader_free ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-free"/>
+    <keyword type="function" name="gst_byte_reader_init ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-init"/>
+    <keyword type="function" name="gst_byte_reader_get_pos ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-pos"/>
+    <keyword type="function" name="gst_byte_reader_get_remaining ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-remaining"/>
+    <keyword type="function" name="gst_byte_reader_set_pos ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-set-pos"/>
+    <keyword type="function" name="gst_byte_reader_get_size ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-size"/>
+    <keyword type="function" name="gst_byte_reader_skip ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip"/>
+    <keyword type="function" name="gst_byte_reader_get_int8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8"/>
+    <keyword type="function" name="gst_byte_reader_get_int16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be"/>
+    <keyword type="function" name="gst_byte_reader_get_int16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le"/>
+    <keyword type="function" name="gst_byte_reader_get_int24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be"/>
+    <keyword type="function" name="gst_byte_reader_get_int24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le"/>
+    <keyword type="function" name="gst_byte_reader_get_int32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be"/>
+    <keyword type="function" name="gst_byte_reader_get_int32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le"/>
+    <keyword type="function" name="gst_byte_reader_get_int64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be"/>
+    <keyword type="function" name="gst_byte_reader_get_int64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le"/>
+    <keyword type="function" name="gst_byte_reader_get_uint8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8"/>
+    <keyword type="function" name="gst_byte_reader_get_uint16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be"/>
+    <keyword type="function" name="gst_byte_reader_get_uint16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le"/>
+    <keyword type="function" name="gst_byte_reader_get_uint24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be"/>
+    <keyword type="function" name="gst_byte_reader_get_uint24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le"/>
+    <keyword type="function" name="gst_byte_reader_get_uint32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be"/>
+    <keyword type="function" name="gst_byte_reader_get_uint32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le"/>
+    <keyword type="function" name="gst_byte_reader_get_uint64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be"/>
+    <keyword type="function" name="gst_byte_reader_get_uint64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_int8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8"/>
+    <keyword type="function" name="gst_byte_reader_peek_int16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_int16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_int24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_int24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_int32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_int32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_int64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_int64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint16_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint16_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint24_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint24_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le"/>
+    <keyword type="function" name="gst_byte_reader_get_float32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le"/>
+    <keyword type="function" name="gst_byte_reader_get_float32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be"/>
+    <keyword type="function" name="gst_byte_reader_get_float64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le"/>
+    <keyword type="function" name="gst_byte_reader_get_float64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_float32_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_float32_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be"/>
+    <keyword type="function" name="gst_byte_reader_peek_float64_le ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le"/>
+    <keyword type="function" name="gst_byte_reader_peek_float64_be ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be"/>
+    <keyword type="function" name="gst_byte_reader_get_data ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data"/>
+    <keyword type="function" name="gst_byte_reader_dup_data ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data"/>
+    <keyword type="function" name="gst_byte_reader_peek_data ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data"/>
+    <keyword type="function" name="gst_byte_reader_masked_scan_uint32 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-masked-scan-uint32"/>
     <keyword type="macro" name="gst_byte_reader_get_string()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string"/>
-    <keyword type="function" name="gst_byte_reader_get_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string-utf8" since="0.10.24"/>
-    <keyword type="macro" name="gst_byte_reader_peek_string()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_peek_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string-utf8" since="0.10.24"/>
+    <keyword type="function" name="gst_byte_reader_get_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-string-utf8"/>
+    <keyword type="macro" name="gst_byte_reader_peek_string()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string"/>
+    <keyword type="function" name="gst_byte_reader_peek_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-string-utf8"/>
     <keyword type="macro" name="gst_byte_reader_dup_string()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string"/>
-    <keyword type="function" name="gst_byte_reader_dup_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf8" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_dup_string_utf16 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf16" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_dup_string_utf32 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf32" since="0.10.24"/>
-    <keyword type="macro" name="gst_byte_reader_skip_string()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_skip_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf8" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_skip_string_utf16 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf16" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_skip_string_utf32 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf32" since="0.10.24"/>
-    <keyword type="function" name="gst_byte_reader_skip_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_int64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_uint64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_int64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_uint64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_float32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_float32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_float64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_float64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_float32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_float32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_float64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_float64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_dup_data_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_get_data_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data-unchecked" since="0.10.25"/>
-    <keyword type="function" name="gst_byte_reader_peek_data_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data-unchecked" since="0.10.25"/>
+    <keyword type="function" name="gst_byte_reader_dup_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf8"/>
+    <keyword type="function" name="gst_byte_reader_dup_string_utf16 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf16"/>
+    <keyword type="function" name="gst_byte_reader_dup_string_utf32 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-string-utf32"/>
+    <keyword type="macro" name="gst_byte_reader_skip_string()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string"/>
+    <keyword type="function" name="gst_byte_reader_skip_string_utf8 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf8"/>
+    <keyword type="function" name="gst_byte_reader_skip_string_utf16 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf16"/>
+    <keyword type="function" name="gst_byte_reader_skip_string_utf32 ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-string-utf32"/>
+    <keyword type="function" name="gst_byte_reader_skip_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-skip-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int8-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int16-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int24-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_int64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-int64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint8-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint16-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint24-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_uint64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-uint64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int8-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int16-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int24-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_int64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-int64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint8_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint8-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint16_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint16_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint16-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint24_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint24_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint24-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_uint64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-uint64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_float32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_float32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_float64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_float64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-float64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_float32_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_float32_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_float64_le_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_float64_be_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-float64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_dup_data_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-dup-data-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_get_data_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-get-data-unchecked"/>
+    <keyword type="function" name="gst_byte_reader_peek_data_unchecked ()" link="gstreamer-libs-GstByteReader.html#gst-byte-reader-peek-data-unchecked"/>
     <keyword type="struct" name="GstByteWriter" link="gstreamer-libs-GstByteWriter.html#GstByteWriter"/>
-    <keyword type="function" name="gst_byte_writer_new ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_new_with_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-data" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_new_with_size ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-size" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_init ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_init_with_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-data" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_init_with_size ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-size" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_free ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_free_and_get_buffer ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_free_and_get_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_reset ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_reset_and_get_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_reset_and_get_buffer ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_get_pos ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-pos" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_set_pos ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-set-pos" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_get_remaining ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-remaining" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_get_size ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-size" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_ensure_free_space ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-ensure-free-space" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int8 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int16_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int16_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int24_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int24_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int32_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int32_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int64_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_int64_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint8 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint16_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint16_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint24_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint24_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint32_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint32_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint64_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_uint64_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_float32_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be" since="0.10.27"/>
-    <keyword type="function" name="gst_byte_writer_put_float32_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le" since="0.10.27"/>
-    <keyword type="function" name="gst_byte_writer_put_float64_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be" since="0.10.27"/>
-    <keyword type="function" name="gst_byte_writer_put_float64_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le" since="0.10.27"/>
-    <keyword type="macro" name="gst_byte_writer_put_string()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_string_utf16 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf16" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_string_utf32 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf32" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_string_utf8 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf8" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_put_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data" since="0.10.26"/>
-    <keyword type="function" name="gst_byte_writer_fill ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill" since="0.10.27"/>
+    <keyword type="function" name="gst_byte_writer_new ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new"/>
+    <keyword type="function" name="gst_byte_writer_new_with_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-data"/>
+    <keyword type="function" name="gst_byte_writer_new_with_size ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-new-with-size"/>
+    <keyword type="function" name="gst_byte_writer_init ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init"/>
+    <keyword type="function" name="gst_byte_writer_init_with_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-data"/>
+    <keyword type="function" name="gst_byte_writer_init_with_size ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-init-with-size"/>
+    <keyword type="function" name="gst_byte_writer_free ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free"/>
+    <keyword type="function" name="gst_byte_writer_free_and_get_buffer ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-buffer"/>
+    <keyword type="function" name="gst_byte_writer_free_and_get_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-free-and-get-data"/>
+    <keyword type="function" name="gst_byte_writer_reset ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset"/>
+    <keyword type="function" name="gst_byte_writer_reset_and_get_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-data"/>
+    <keyword type="function" name="gst_byte_writer_reset_and_get_buffer ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-reset-and-get-buffer"/>
+    <keyword type="function" name="gst_byte_writer_get_pos ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-pos"/>
+    <keyword type="function" name="gst_byte_writer_set_pos ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-set-pos"/>
+    <keyword type="function" name="gst_byte_writer_get_remaining ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-remaining"/>
+    <keyword type="function" name="gst_byte_writer_get_size ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-get-size"/>
+    <keyword type="function" name="gst_byte_writer_ensure_free_space ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-ensure-free-space"/>
+    <keyword type="function" name="gst_byte_writer_put_int8 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8"/>
+    <keyword type="function" name="gst_byte_writer_put_int16_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be"/>
+    <keyword type="function" name="gst_byte_writer_put_int16_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le"/>
+    <keyword type="function" name="gst_byte_writer_put_int24_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be"/>
+    <keyword type="function" name="gst_byte_writer_put_int24_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le"/>
+    <keyword type="function" name="gst_byte_writer_put_int32_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be"/>
+    <keyword type="function" name="gst_byte_writer_put_int32_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le"/>
+    <keyword type="function" name="gst_byte_writer_put_int64_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be"/>
+    <keyword type="function" name="gst_byte_writer_put_int64_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le"/>
+    <keyword type="function" name="gst_byte_writer_put_uint8 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8"/>
+    <keyword type="function" name="gst_byte_writer_put_uint16_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be"/>
+    <keyword type="function" name="gst_byte_writer_put_uint16_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le"/>
+    <keyword type="function" name="gst_byte_writer_put_uint24_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be"/>
+    <keyword type="function" name="gst_byte_writer_put_uint24_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le"/>
+    <keyword type="function" name="gst_byte_writer_put_uint32_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be"/>
+    <keyword type="function" name="gst_byte_writer_put_uint32_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le"/>
+    <keyword type="function" name="gst_byte_writer_put_uint64_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be"/>
+    <keyword type="function" name="gst_byte_writer_put_uint64_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le"/>
+    <keyword type="function" name="gst_byte_writer_put_float32_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be"/>
+    <keyword type="function" name="gst_byte_writer_put_float32_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le"/>
+    <keyword type="function" name="gst_byte_writer_put_float64_be ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be"/>
+    <keyword type="function" name="gst_byte_writer_put_float64_le ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le"/>
+    <keyword type="macro" name="gst_byte_writer_put_string()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string"/>
+    <keyword type="function" name="gst_byte_writer_put_string_utf16 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf16"/>
+    <keyword type="function" name="gst_byte_writer_put_string_utf32 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf32"/>
+    <keyword type="function" name="gst_byte_writer_put_string_utf8 ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-string-utf8"/>
+    <keyword type="function" name="gst_byte_writer_put_data ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data"/>
+    <keyword type="function" name="gst_byte_writer_fill ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill"/>
     <keyword type="function" name="gst_byte_writer_put_int8_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int8-unchecked"/>
-    <keyword type="function" name="gst_byte_writer_put_int16_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int16_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int24_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int24_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int32_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int32_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int64_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_int64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint8_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint16_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint16_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint24_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint24_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint32_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint32_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint64_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_uint64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_float32_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_float32_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_float64_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_float64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_put_data_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data-unchecked" since="0.10.31"/>
-    <keyword type="function" name="gst_byte_writer_fill_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill-unchecked" since="0.10.31"/>
+    <keyword type="function" name="gst_byte_writer_put_int16_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int16_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int16-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int24_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int24_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int24-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int32_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int32_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int64_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_int64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-int64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint8_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint8-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint16_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint16_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint16-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint24_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint24_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint24-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint32_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint32_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint64_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_uint64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-uint64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_float32_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_float32_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float32-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_float64_be_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-be-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_float64_le_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-float64-le-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_put_data_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-put-data-unchecked"/>
+    <keyword type="function" name="gst_byte_writer_fill_unchecked ()" link="gstreamer-libs-GstByteWriter.html#gst-byte-writer-fill-unchecked"/>
     <keyword type="struct" name="struct GstCollectPads" link="GstCollectPads.html#GstCollectPads-struct"/>
-    <keyword type="struct" name="struct GstCollectData" link="GstCollectPads.html#GstCollectData" since="0.10.36"/>
-    <keyword type="function" name="GstCollectDataDestroyNotify ()" link="GstCollectPads.html#GstCollectDataDestroyNotify" since="0.10.36"/>
-    <keyword type="function" name="GstCollectPadsBufferFunction ()" link="GstCollectPads.html#GstCollectPadsBufferFunction" since="0.10.36"/>
-    <keyword type="function" name="GstCollectPadsCompareFunction ()" link="GstCollectPads.html#GstCollectPadsCompareFunction" since="0.10.36"/>
-    <keyword type="function" name="GstCollectPadsEventFunction ()" link="GstCollectPads.html#GstCollectPadsEventFunction" since="0.10.36"/>
-    <keyword type="function" name="GstCollectPadsClipFunction ()" link="GstCollectPads.html#GstCollectPadsClipFunction" since="0.10.36"/>
-    <keyword type="function" name="GstCollectPadsFunction ()" link="GstCollectPads.html#GstCollectPadsFunction" since="0.10.36"/>
-    <keyword type="enum" name="enum GstCollectPadsStateFlags" link="GstCollectPads.html#GstCollectPadsStateFlags" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_STATE()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE:CAPS" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_STATE_IS_SET()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE-IS-SET:CAPS" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_STATE_SET()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE-SET:CAPS" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_STATE_UNSET()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE-UNSET:CAPS" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_GET_STREAM_LOCK()" link="GstCollectPads.html#GST-COLLECT-PADS-GET-STREAM-LOCK:CAPS" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_STREAM_LOCK()" link="GstCollectPads.html#GST-COLLECT-PADS-STREAM-LOCK:CAPS" since="0.10.36"/>
-    <keyword type="macro" name="GST_COLLECT_PADS_STREAM_UNLOCK()" link="GstCollectPads.html#GST-COLLECT-PADS-STREAM-UNLOCK:CAPS" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_new ()" link="GstCollectPads.html#gst-collect-pads-new" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_add_pad ()" link="GstCollectPads.html#gst-collect-pads-add-pad" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_add_pad_full ()" link="GstCollectPads.html#gst-collect-pads-add-pad-full" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_remove_pad ()" link="GstCollectPads.html#gst-collect-pads-remove-pad" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_start ()" link="GstCollectPads.html#gst-collect-pads-start" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_stop ()" link="GstCollectPads.html#gst-collect-pads-stop" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_available ()" link="GstCollectPads.html#gst-collect-pads-available" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_is_active ()" link="GstCollectPads.html#gst-collect-pads-is-active" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_collect ()" link="GstCollectPads.html#gst-collect-pads-collect" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_collect_range ()" link="GstCollectPads.html#gst-collect-pads-collect-range" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_flush ()" link="GstCollectPads.html#gst-collect-pads-flush" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_peek ()" link="GstCollectPads.html#gst-collect-pads-peek" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_pop ()" link="GstCollectPads.html#gst-collect-pads-pop" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_read_buffer ()" link="GstCollectPads.html#gst-collect-pads-read-buffer" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_take_buffer ()" link="GstCollectPads.html#gst-collect-pads-take-buffer" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_buffer_function ()" link="GstCollectPads.html#gst-collect-pads-set-buffer-function" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_compare_function ()" link="GstCollectPads.html#gst-collect-pads-set-compare-function" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_event_function ()" link="GstCollectPads.html#gst-collect-pads-set-event-function" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_clip_function ()" link="GstCollectPads.html#gst-collect-pads-set-clip-function" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_flushing ()" link="GstCollectPads.html#gst-collect-pads-set-flushing" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_function ()" link="GstCollectPads.html#gst-collect-pads-set-function" since="0.10.36"/>
-    <keyword type="function" name="gst_collect_pads_set_waiting ()" link="GstCollectPads.html#gst-collect-pads-set-waiting" since="0.10.36"/>
+    <keyword type="struct" name="struct GstCollectData" link="GstCollectPads.html#GstCollectData"/>
+    <keyword type="function" name="GstCollectDataDestroyNotify ()" link="GstCollectPads.html#GstCollectDataDestroyNotify"/>
+    <keyword type="function" name="GstCollectPadsBufferFunction ()" link="GstCollectPads.html#GstCollectPadsBufferFunction"/>
+    <keyword type="function" name="GstCollectPadsCompareFunction ()" link="GstCollectPads.html#GstCollectPadsCompareFunction"/>
+    <keyword type="function" name="GstCollectPadsEventFunction ()" link="GstCollectPads.html#GstCollectPadsEventFunction"/>
+    <keyword type="function" name="GstCollectPadsClipFunction ()" link="GstCollectPads.html#GstCollectPadsClipFunction"/>
+    <keyword type="function" name="GstCollectPadsFunction ()" link="GstCollectPads.html#GstCollectPadsFunction"/>
+    <keyword type="enum" name="enum GstCollectPadsStateFlags" link="GstCollectPads.html#GstCollectPadsStateFlags"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_STATE()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE:CAPS"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_STATE_IS_SET()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE-IS-SET:CAPS"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_STATE_SET()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE-SET:CAPS"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_STATE_UNSET()" link="GstCollectPads.html#GST-COLLECT-PADS-STATE-UNSET:CAPS"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_GET_STREAM_LOCK()" link="GstCollectPads.html#GST-COLLECT-PADS-GET-STREAM-LOCK:CAPS"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_STREAM_LOCK()" link="GstCollectPads.html#GST-COLLECT-PADS-STREAM-LOCK:CAPS"/>
+    <keyword type="macro" name="GST_COLLECT_PADS_STREAM_UNLOCK()" link="GstCollectPads.html#GST-COLLECT-PADS-STREAM-UNLOCK:CAPS"/>
+    <keyword type="function" name="gst_collect_pads_new ()" link="GstCollectPads.html#gst-collect-pads-new"/>
+    <keyword type="function" name="gst_collect_pads_add_pad ()" link="GstCollectPads.html#gst-collect-pads-add-pad"/>
+    <keyword type="function" name="gst_collect_pads_add_pad_full ()" link="GstCollectPads.html#gst-collect-pads-add-pad-full"/>
+    <keyword type="function" name="gst_collect_pads_remove_pad ()" link="GstCollectPads.html#gst-collect-pads-remove-pad"/>
+    <keyword type="function" name="gst_collect_pads_start ()" link="GstCollectPads.html#gst-collect-pads-start"/>
+    <keyword type="function" name="gst_collect_pads_stop ()" link="GstCollectPads.html#gst-collect-pads-stop"/>
+    <keyword type="function" name="gst_collect_pads_available ()" link="GstCollectPads.html#gst-collect-pads-available"/>
+    <keyword type="function" name="gst_collect_pads_flush ()" link="GstCollectPads.html#gst-collect-pads-flush"/>
+    <keyword type="function" name="gst_collect_pads_peek ()" link="GstCollectPads.html#gst-collect-pads-peek"/>
+    <keyword type="function" name="gst_collect_pads_pop ()" link="GstCollectPads.html#gst-collect-pads-pop"/>
+    <keyword type="function" name="gst_collect_pads_read_buffer ()" link="GstCollectPads.html#gst-collect-pads-read-buffer"/>
+    <keyword type="function" name="gst_collect_pads_take_buffer ()" link="GstCollectPads.html#gst-collect-pads-take-buffer"/>
+    <keyword type="function" name="gst_collect_pads_set_buffer_function ()" link="GstCollectPads.html#gst-collect-pads-set-buffer-function"/>
+    <keyword type="function" name="gst_collect_pads_set_compare_function ()" link="GstCollectPads.html#gst-collect-pads-set-compare-function"/>
+    <keyword type="function" name="gst_collect_pads_set_event_function ()" link="GstCollectPads.html#gst-collect-pads-set-event-function"/>
+    <keyword type="function" name="gst_collect_pads_set_clip_function ()" link="GstCollectPads.html#gst-collect-pads-set-clip-function"/>
+    <keyword type="function" name="gst_collect_pads_set_flushing ()" link="GstCollectPads.html#gst-collect-pads-set-flushing"/>
+    <keyword type="function" name="gst_collect_pads_set_function ()" link="GstCollectPads.html#gst-collect-pads-set-function"/>
+    <keyword type="function" name="gst_collect_pads_set_waiting ()" link="GstCollectPads.html#gst-collect-pads-set-waiting"/>
     <keyword type="function" name="gst_type_find_helper ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper"/>
     <keyword type="function" name="gst_type_find_helper_for_buffer ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-buffer"/>
-    <keyword type="function" name="gst_type_find_helper_for_extension ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension" since="0.10.23"/>
+    <keyword type="function" name="gst_type_find_helper_for_extension ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-extension"/>
     <keyword type="function" name="gst_type_find_helper_for_data ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-for-data"/>
     <keyword type="function" name="GstTypeFindHelperGetRangeFunction ()" link="gstreamer-libs-GstTypeFindHelper.html#GstTypeFindHelperGetRangeFunction"/>
-    <keyword type="function" name="gst_type_find_helper_get_range ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range" since="0.10.26"/>
+    <keyword type="function" name="gst_type_find_helper_get_range ()" link="gstreamer-libs-GstTypeFindHelper.html#gst-type-find-helper-get-range"/>
     <keyword type="struct" name="struct GstTimedValueControlSource" link="GstTimedValueControlSource.html#GstTimedValueControlSource-struct"/>
     <keyword type="function" name="gst_timed_value_control_source_find_control_point_iter ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-find-control-point-iter"/>
     <keyword type="function" name="gst_timed_value_control_source_set ()" link="GstTimedValueControlSource.html#gst-timed-value-control-source-set"/>
@@ -477,13 +473,13 @@
     <keyword type="macro" name="ASSERT_OBJECT_REFCOUNT_BETWEEN()" link="gstreamer-libs-GstCheck.html#ASSERT-OBJECT-REFCOUNT-BETWEEN:CAPS"/>
     <keyword type="macro" name="ASSERT_SET_STATE()" link="gstreamer-libs-GstCheck.html#ASSERT-SET-STATE:CAPS"/>
     <keyword type="macro" name="fail_unless_equals_int()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-int"/>
-    <keyword type="macro" name="fail_unless_equals_float()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-float" since="0.10.14"/>
+    <keyword type="macro" name="fail_unless_equals_float()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-float"/>
     <keyword type="macro" name="fail_unless_equals_string()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-string"/>
     <keyword type="macro" name="fail_unless_equals_uint64()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-uint64"/>
     <keyword type="macro" name="fail_unless_equals_int64()" link="gstreamer-libs-GstCheck.html#fail-unless-equals-int64"/>
     <keyword type="macro" name="fail_unless_message_error()" link="gstreamer-libs-GstCheck.html#fail-unless-message-error"/>
     <keyword type="macro" name="assert_equals_int()" link="gstreamer-libs-GstCheck.html#assert-equals-int"/>
-    <keyword type="macro" name="assert_equals_float()" link="gstreamer-libs-GstCheck.html#assert-equals-float" since="0.10.14"/>
+    <keyword type="macro" name="assert_equals_float()" link="gstreamer-libs-GstCheck.html#assert-equals-float"/>
     <keyword type="macro" name="assert_equals_string()" link="gstreamer-libs-GstCheck.html#assert-equals-string"/>
     <keyword type="macro" name="assert_equals_uint64()" link="gstreamer-libs-GstCheck.html#assert-equals-uint64"/>
     <keyword type="macro" name="assert_equals_int64()" link="gstreamer-libs-GstCheck.html#assert-equals-int64"/>
@@ -499,19 +495,19 @@
     <keyword type="function" name="gst_check_teardown_element ()" link="gstreamer-libs-GstCheck.html#gst-check-teardown-element"/>
     <keyword type="function" name="gst_check_teardown_sink_pad ()" link="gstreamer-libs-GstCheck.html#gst-check-teardown-sink-pad"/>
     <keyword type="function" name="gst_check_teardown_src_pad ()" link="gstreamer-libs-GstCheck.html#gst-check-teardown-src-pad"/>
-    <keyword type="function" name="gst_check_drop_buffers ()" link="gstreamer-libs-GstCheck.html#gst-check-drop-buffers" since="0.10.18"/>
+    <keyword type="function" name="gst_check_drop_buffers ()" link="gstreamer-libs-GstCheck.html#gst-check-drop-buffers"/>
     <keyword type="function" name="gst_check_buffer_data ()" link="gstreamer-libs-GstCheck.html#gst-check-buffer-data"/>
-    <keyword type="function" name="gst_check_caps_equal ()" link="gstreamer-libs-GstCheck.html#gst-check-caps-equal" since="0.10.18"/>
-    <keyword type="function" name="gst_check_element_push_buffer_list ()" link="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list" since="0.10.18"/>
-    <keyword type="function" name="gst_check_element_push_buffer ()" link="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer" since="0.10.18"/>
+    <keyword type="function" name="gst_check_caps_equal ()" link="gstreamer-libs-GstCheck.html#gst-check-caps-equal"/>
+    <keyword type="function" name="gst_check_element_push_buffer_list ()" link="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer-list"/>
+    <keyword type="function" name="gst_check_element_push_buffer ()" link="gstreamer-libs-GstCheck.html#gst-check-element-push-buffer"/>
     <keyword type="function" name="gst_check_run_suite ()" link="gstreamer-libs-GstCheck.html#gst-check-run-suite"/>
     <keyword type="function" name="gst_buffer_straw_start_pipeline ()" link="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-start-pipeline"/>
     <keyword type="function" name="gst_buffer_straw_get_buffer ()" link="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-get-buffer"/>
     <keyword type="function" name="gst_buffer_straw_stop_pipeline ()" link="gstreamer-libs-GstBufferStraw.html#gst-buffer-straw-stop-pipeline"/>
-    <keyword type="struct" name="GstStreamConsistency" link="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency" since="0.10.24"/>
-    <keyword type="function" name="gst_consistency_checker_new ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new" since="0.10.24"/>
-    <keyword type="function" name="gst_consistency_checker_reset ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset" since="0.10.24"/>
-    <keyword type="function" name="gst_consistency_checker_free ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free" since="0.10.24"/>
+    <keyword type="struct" name="GstStreamConsistency" link="gstreamer-libs-GstStreamConsistency.html#GstStreamConsistency"/>
+    <keyword type="function" name="gst_consistency_checker_new ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-new"/>
+    <keyword type="function" name="gst_consistency_checker_reset ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-reset"/>
+    <keyword type="function" name="gst_consistency_checker_free ()" link="gstreamer-libs-GstStreamConsistency.html#gst-consistency-checker-free"/>
     <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_NONE" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NONE:CAPS"/>
     <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_NEW_FRAME" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NEW-FRAME:CAPS"/>
     <keyword type="constant" name="GST_BASE_PARSE_FRAME_FLAG_NO_FRAME" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-FRAME-FLAG-NO-FRAME:CAPS"/>
diff --git a/docs/libs/html/gstreamer-libs.html b/docs/libs/html/gstreamer-libs.html
index 0f61876..809bddf 100644
--- a/docs/libs/html/gstreamer-libs.html
+++ b/docs/libs/html/gstreamer-libs.html
@@ -34,7 +34,7 @@
 <span class="refentrytitle"><a href="GstBaseSrc.html">GstBaseSrc</a></span><span class="refpurpose"> — Base class for getrange based source elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstBaseSink.html">GstBaseSink</a></span><span class="refpurpose"> — Base class for sink elements</span>
+<span class="refentrytitle"><a href="GstBaseSink.html">GstBaseSink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstBaseTransform.html">GstBaseTransform</a></span><span class="refpurpose"> — Base class for simple transform filters</span>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index bf26df4..a5a8116 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Library 1.0 (0.11.91.1)
+      for GStreamer Library 1.0 (0.11.93)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/</a>.
     </p></div>
@@ -34,7 +34,7 @@
 <span class="refentrytitle"><a href="GstBaseSrc.html">GstBaseSrc</a></span><span class="refpurpose"> — Base class for getrange based source elements</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GstBaseSink.html">GstBaseSink</a></span><span class="refpurpose"> — Base class for sink elements</span>
+<span class="refentrytitle"><a href="GstBaseSink.html">GstBaseSink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GstBaseTransform.html">GstBaseTransform</a></span><span class="refpurpose"> — Base class for simple transform filters</span>
diff --git a/docs/libs/html/index.sgml b/docs/libs/html/index.sgml
index 13940c0..941bdb6 100644
--- a/docs/libs/html/index.sgml
+++ b/docs/libs/html/index.sgml
@@ -79,7 +79,6 @@
 <ANCHOR id="gst-base-sink-do-preroll" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-do-preroll">
 <ANCHOR id="gst-base-sink-wait-preroll" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-wait-preroll">
 <ANCHOR id="gst-base-sink-wait-clock" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-wait-clock">
-<ANCHOR id="gst-base-sink-wait-eos" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-wait-eos">
 <ANCHOR id="gst-base-sink-set-sync" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-sync">
 <ANCHOR id="gst-base-sink-get-sync" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-get-sync">
 <ANCHOR id="gst-base-sink-set-max-lateness" href="gstreamer-libs-1.0/GstBaseSink.html#gst-base-sink-set-max-lateness">
@@ -117,7 +116,6 @@
 <ANCHOR id="GstBaseSink--sync" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--sync">
 <ANCHOR id="GstBaseSink--throttle-time" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--throttle-time">
 <ANCHOR id="GstBaseSink--ts-offset" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--ts-offset">
-<ANCHOR id="GstBaseSink.see-also" href="gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink.see-also">
 <ANCHOR id="GstBaseTransform" href="gstreamer-libs-1.0/GstBaseTransform.html">
 <ANCHOR id="GstBaseTransform.synopsis" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.synopsis">
 <ANCHOR id="GstBaseTransform.object-hierarchy" href="gstreamer-libs-1.0/GstBaseTransform.html#GstBaseTransform.object-hierarchy">
@@ -433,9 +431,6 @@
 <ANCHOR id="gst-collect-pads-start" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-start">
 <ANCHOR id="gst-collect-pads-stop" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-stop">
 <ANCHOR id="gst-collect-pads-available" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-available">
-<ANCHOR id="gst-collect-pads-is-active" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-is-active">
-<ANCHOR id="gst-collect-pads-collect" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-collect">
-<ANCHOR id="gst-collect-pads-collect-range" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-collect-range">
 <ANCHOR id="gst-collect-pads-flush" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-flush">
 <ANCHOR id="gst-collect-pads-peek" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-peek">
 <ANCHOR id="gst-collect-pads-pop" href="gstreamer-libs-1.0/GstCollectPads.html#gst-collect-pads-pop">
diff --git a/docs/manual/Makefile.in b/docs/manual/Makefile.in
index 87fcbf8..ef9dd93 100644
--- a/docs/manual/Makefile.in
+++ b/docs/manual/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -221,7 +221,9 @@
 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@
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 611fd09..5d60f4d 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -186,7 +186,9 @@
 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@
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 2d6be16..bf8b32c 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp3396736"></a>gstreamer Elements</h2></div></div></div>
+<a name="idp2939968"></a>gstreamer Elements</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-capsfilter.html">capsfilter</a></span><span class="refpurpose"> — Pass data without modification, limiting formats</span>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 71508b0..bac70cc 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp235456"></a>gstreamer Plugins</h2></div></div></div>
+<a name="idp282304"></a>gstreamer Plugins</h2></div></div></div>
 <div class="toc"><dl><dt>
 <span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose"> — <a name="plugin-coreelements"></a>standard GStreamer elements</span>
 </dt></dl></div>
diff --git a/docs/plugins/html/gstreamer-plugins-capsfilter.html b/docs/plugins/html/gstreamer-plugins-capsfilter.html
index c3e8f2c..b1767e8 100644
--- a/docs/plugins/html/gstreamer-plugins-capsfilter.html
+++ b/docs/plugins/html/gstreamer-plugins-capsfilter.html
@@ -49,16 +49,16 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseTransform.html">GstBaseTransform</a>
                            +----GstCapsFilter
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-capsfilter.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps" title='The "caps" property'>caps</a>"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
+  "<a class="link" href="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps" title='The "caps" property'>caps</a>"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -70,7 +70,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp7212656"></a><h3>Example launch line</h3>
+<a name="idp8444528"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -88,7 +88,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7705936"></a><h3>Element Information</h3>
+<a name="idp7503952"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -111,7 +111,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp135056"></a><h3>Element Pads</h3>
+<a name="idp81264"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -173,7 +173,7 @@
 <a name="gstreamer-plugins-capsfilter.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstCapsFilter--caps"></a><h3>The <code class="literal">"caps"</code> property</h3>
-<pre class="programlisting">  "caps"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
+<pre class="programlisting">  "caps"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
 <p>Restrict the possible allowed capabilities (NULL means ANY). Setting this property takes a reference to the supplied GstCaps object.</p>
 </div>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesink.html b/docs/plugins/html/gstreamer-plugins-fakesink.html
index c45b9e0..454cbb5 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesink.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesink.html
@@ -52,9 +52,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSink.html">GstBaseSink</a>
                            +----GstFakeSink
 </pre>
 </div>
@@ -86,7 +86,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6480224"></a><h3>Example launch line</h3>
+<a name="idp6365968"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6482832"></a><h3>Element Information</h3>
+<a name="idp10164512"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -127,7 +127,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10479328"></a><h3>Element Pads</h3>
+<a name="idp10172048"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -285,8 +285,8 @@
 <div class="refsect2">
 <a name="GstFakeSink-handoff"></a><h3>The <code class="literal">"handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink"><span class="type">GstFakeSink</span></a> *fakesink,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>      *pad,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>      *pad,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before unreffing the buffer.
@@ -317,8 +317,8 @@
 <div class="refsect2">
 <a name="GstFakeSink-preroll-handoff"></a><h3>The <code class="literal">"preroll-handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-fakesink.html#GstFakeSink"><span class="type">GstFakeSink</span></a> *fakesink,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>      *pad,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>      *pad,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before unreffing the buffer.
@@ -344,7 +344,6 @@
 </tr>
 </tbody>
 </table></div>
-<p class="since">Since 0.10.7</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-fakesrc.html b/docs/plugins/html/gstreamer-plugins-fakesrc.html
index bdd5b83..9083b56 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesrc.html
@@ -55,9 +55,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSrc.html">GstBaseSrc</a>
                            +----GstFakeSrc
 </pre>
 </div>
@@ -80,7 +80,7 @@
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--sizemin" title='The "sizemin" property'>sizemin</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--sizetype" title='The "sizetype" property'>sizetype</a>"                 <a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrcSizeType" title="enum GstFakeSrcSizeType"><span class="type">GstFakeSrcSizeType</span></a>    : Read / Write
   "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--sync" title='The "sync" property'>sync</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--format" title='The "format" property'>format</a>"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
+  "<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc--format" title='The "format" property'>format</a>"                   <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -102,7 +102,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp5917840"></a><h3>Example launch line</h3>
+<a name="idp9613184"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -124,7 +124,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp5921024"></a><h3>Element Information</h3>
+<a name="idp9616368"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -147,7 +147,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp5928432"></a><h3>Element Pads</h3>
+<a name="idp9623776"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -472,12 +472,11 @@
 <hr>
 <div class="refsect2">
 <a name="GstFakeSrc--format"></a><h3>The <code class="literal">"format"</code> property</h3>
-<pre class="programlisting">  "format"                   <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write</pre>
+<pre class="programlisting">  "format"                   <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>             : Read / Write</pre>
 <p>
 Set the format of the newsegment events to produce.
 </p>
 <p>Default value: GST_FORMAT_BYTES</p>
-<p class="since">Since 0.10.20</p>
 </div>
 </div>
 <div class="refsect1">
@@ -485,8 +484,8 @@
 <div class="refsect2">
 <a name="GstFakeSrc-handoff"></a><h3>The <code class="literal">"handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-fakesrc.html#GstFakeSrc"><span class="type">GstFakeSrc</span></a> *fakesrc,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>  *buffer,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>     *pad,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>  *buffer,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>     *pad,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before sending the buffer.
diff --git a/docs/plugins/html/gstreamer-plugins-fdsink.html b/docs/plugins/html/gstreamer-plugins-fdsink.html
index 1c74c3a..ce70f3c 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsink.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsink.html
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSink.html">GstBaseSink</a>
                            +----GstFdSink
 </pre>
 </div>
@@ -61,7 +61,7 @@
 <a name="gstreamer-plugins-fdsink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFdSink implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-fdsink.properties"></a><h2>Properties</h2>
@@ -77,7 +77,7 @@
 <p>
 This element will synchronize on the clock before writing the data on the
 socket. For file descriptors where this does not make sense (files, ...) the
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html#GstBaseSink--sync"><span class="type">"sync"</span></a> property can be used to disable synchronisation.
+<a href="../gstreamer-libs-1.0/GstBaseSink.html#GstBaseSink--sync"><span class="type">"sync"</span></a> property can be used to disable synchronisation.
 </p>
 <p>
 Last reviewed on 2006-04-28 (0.10.6)
@@ -85,7 +85,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9141056"></a><h3>Element Information</h3>
+<a name="idp7949392"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -108,7 +108,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6713600"></a><h3>Element Pads</h3>
+<a name="idp9532496"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsrc.html b/docs/plugins/html/gstreamer-plugins-fdsrc.html
index e0519c8..87d3151 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsrc.html
@@ -51,10 +51,10 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
-                           +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSrc.html">GstBaseSrc</a>
+                           +----<a href="../gstreamer-libs-1.0/GstPushSrc.html">GstPushSrc</a>
                                  +----GstFdSrc
 </pre>
 </div>
@@ -62,7 +62,7 @@
 <a name="gstreamer-plugins-fdsrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFdSrc implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-fdsrc.properties"></a><h2>Properties</h2>
@@ -97,7 +97,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp8708016"></a><h3>Example launch line</h3>
+<a name="idp10131984"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -119,7 +119,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp8711168"></a><h3>Element Information</h3>
+<a name="idp10135088"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -142,7 +142,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp8718624"></a><h3>Element Pads</h3>
+<a name="idp10306288"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,7 +196,6 @@
 Post a message after timeout microseconds
 </p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.21</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-filesink.html b/docs/plugins/html/gstreamer-plugins-filesink.html
index 8797496..07b2875 100644
--- a/docs/plugins/html/gstreamer-plugins-filesink.html
+++ b/docs/plugins/html/gstreamer-plugins-filesink.html
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">GstBaseSink</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSink.html">GstBaseSink</a>
                            +----GstFileSink
 </pre>
 </div>
@@ -61,7 +61,7 @@
 <a name="gstreamer-plugins-filesink.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFileSink implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-filesink.properties"></a><h2>Properties</h2>
@@ -80,7 +80,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6187584"></a><h3>Example launch line</h3>
+<a name="idp6556784"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,7 +98,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6190144"></a><h3>Element Information</h3>
+<a name="idp6559344"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -121,7 +121,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6197552"></a><h3>Element Pads</h3>
+<a name="idp6566752"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -188,7 +188,6 @@
 Append to an already existing file.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.25</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-filesrc.html b/docs/plugins/html/gstreamer-plugins-filesrc.html
index 5c8c3f0..4cf1571 100644
--- a/docs/plugins/html/gstreamer-plugins-filesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-filesrc.html
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseSrc.html">GstBaseSrc</a>
                            +----GstFileSrc
 </pre>
 </div>
@@ -61,7 +61,7 @@
 <a name="gstreamer-plugins-filesrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstFileSrc implements
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
+ <a href="../gstreamer-1.0/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-filesrc.properties"></a><h2>Properties</h2>
@@ -82,7 +82,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp10794768"></a><h3>Example launch line</h3>
+<a name="idp9009152"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -100,7 +100,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10797376"></a><h3>Element Information</h3>
+<a name="idp9011760"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -123,7 +123,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10848016"></a><h3>Element Pads</h3>
+<a name="idp10528064"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-funnel.html b/docs/plugins/html/gstreamer-plugins-funnel.html
index 4a58439..649586d 100644
--- a/docs/plugins/html/gstreamer-plugins-funnel.html
+++ b/docs/plugins/html/gstreamer-plugins-funnel.html
@@ -47,8 +47,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstFunnel
 </pre>
 </div>
@@ -59,7 +59,7 @@
 </p>
 <p>
 funnel always outputs a single, open ended segment from
-0 with in <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><code class="literal">GST_FORMAT_TIME</code></a> and outputs the buffers of the
+0 with in <a href="../gstreamer-1.0/gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><code class="literal">GST_FORMAT_TIME</code></a> and outputs the buffers of the
 different sinkpads with timestamps that are set to the
 running time for that stream. funnel does not synchronize
 the different input streams but simply forwards all buffers
@@ -68,7 +68,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp9944992"></a><h3>Element Information</h3>
+<a name="idp8107120"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -91,7 +91,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp9858432"></a><h3>Element Pads</h3>
+<a name="idp6236656"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-identity.html b/docs/plugins/html/gstreamer-plugins-identity.html
index 6f7cbfe..e670800 100644
--- a/docs/plugins/html/gstreamer-plugins-identity.html
+++ b/docs/plugins/html/gstreamer-plugins-identity.html
@@ -51,9 +51,9 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
+                     +----<a href="../gstreamer-libs-1.0/GstBaseTransform.html">GstBaseTransform</a>
                            +----GstIdentity
 </pre>
 </div>
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11113760"></a><h3>Element Information</h3>
+<a name="idp10684224"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11121216"></a><h3>Element Pads</h3>
+<a name="idp10691680"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -267,7 +267,6 @@
 When set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, no signal will be emited, which might improve performance.
 </p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.16</p>
 </div>
 </div>
 <div class="refsect1">
@@ -275,7 +274,7 @@
 <div class="refsect2">
 <a name="GstIdentity-handoff"></a><h3>The <code class="literal">"handoff"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-identity.html#GstIdentity"><span class="type">GstIdentity</span></a> *identity,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>   *buffer,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>     user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
 <p>
 This signal gets emitted before passing the buffer downstream.
diff --git a/docs/plugins/html/gstreamer-plugins-input-selector.html b/docs/plugins/html/gstreamer-plugins-input-selector.html
index 84070e4..a2a6710 100644
--- a/docs/plugins/html/gstreamer-plugins-input-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-input-selector.html
@@ -51,15 +51,15 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstInputSelector
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-input-selector.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads" title='The "n-pads" property'>n-pads</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--select-all" title='The "select-all" property'>select-all</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams" title='The "sync-streams" property'>sync-streams</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
@@ -90,14 +90,14 @@
 "running-time": Running time of stream on pad (<span class="type">gint64</span>)
 </li>
 <li class="listitem">
-"tags": The currently active tags on the pad (<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>, boxed type)
+"tags": The currently active tags on the pad (<a href="../gstreamer-1.0/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>, boxed type)
 </li>
 <li class="listitem">
 "active": If the pad is currently active (<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>)
 </li>
 <li class="listitem">
-"always-ok" : Make an inactive pads return <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> instead of
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GST-FLOW-NOT-LINKED:CAPS"><span class="type">GST_FLOW_NOT_LINKED</span></a>
+"always-ok" : Make an inactive pads return <a href="../gstreamer-1.0/GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> instead of
+<a href="../gstreamer-1.0/GstPad.html#GST-FLOW-NOT-LINKED:CAPS"><span class="type">GST_FLOW_NOT_LINKED</span></a>
 </li>
 </ul></div>
 <p>
@@ -105,7 +105,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11337552"></a><h3>Element Information</h3>
+<a name="idp11010592"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -128,7 +128,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11345088"></a><h3>Element Pads</h3>
+<a name="idp11018128"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -189,7 +189,7 @@
 <a name="gstreamer-plugins-input-selector.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstInputSelector--active-pad"></a><h3>The <code class="literal">"active-pad"</code> property</h3>
-<pre class="programlisting">  "active-pad"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "active-pad"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
 <p>The currently active sink pad.</p>
 </div>
 <hr>
@@ -220,7 +220,6 @@
 sync-mode should be set to "clock" and cache-buffers to TRUE.
 </p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.36</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -253,7 +252,6 @@
 which may cause delays and some missing buffers.
 </p>
 <p>Default value: Sync using the current active segment</p>
-<p class="since">Since 0.10.36</p>
 </div>
 </div>
 <div class="refsect1">
@@ -286,7 +284,7 @@
 <div class="refsect2">
 <a name="GstInputSelector-switch"></a><h3>The <code class="literal">"switch"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector"><span class="type">GstInputSelector</span></a> *gstinputselector,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>           *arg1,
+                                                        <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>           *arg1,
                                                         <span class="type">gint64</span>            arg2,
                                                         <span class="type">gint64</span>            arg3,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>          user_data)             : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
diff --git a/docs/plugins/html/gstreamer-plugins-multiqueue.html b/docs/plugins/html/gstreamer-plugins-multiqueue.html
index 9c9ab07..f3cfa8d 100644
--- a/docs/plugins/html/gstreamer-plugins-multiqueue.html
+++ b/docs/plugins/html/gstreamer-plugins-multiqueue.html
@@ -51,8 +51,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstMultiQueue
 </pre>
 </div>
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp11098736"></a><p>
+<a name="idp10353504"></a><p>
 Multiqueue is similar to a normal <a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a> with the following additional
 features:
 </p>
@@ -97,7 +97,7 @@
     'sometimes' src pads (src%d).
   </p>
 <p>
-    When requesting a given sinkpad with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-get-request-pad"><code class="function">gst_element_get_request_pad()</code></a>,
+    When requesting a given sinkpad with <a href="../gstreamer-1.0/GstElement.html#gst-element-get-request-pad"><code class="function">gst_element_get_request_pad()</code></a>,
     the associated srcpad for that stream will be created.
     Example: requesting sink1 will generate src1.
   </p>
@@ -173,7 +173,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11562752"></a><h3>Element Information</h3>
+<a name="idp11141504"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -196,7 +196,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11570208"></a><h3>Element Pads</h3>
+<a name="idp11148960"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -306,7 +306,6 @@
 </p>
 <p>Allowed values: [0,100]</p>
 <p>Default value: 99</p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -317,7 +316,6 @@
 </p>
 <p>Allowed values: [0,100]</p>
 <p>Default value: 10</p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -328,7 +326,6 @@
 emited based on low-/high-percent thresholds.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -342,7 +339,6 @@
 to active and linked streams.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.36</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-output-selector.html b/docs/plugins/html/gstreamer-plugins-output-selector.html
index 8eee32f..8822b6c 100644
--- a/docs/plugins/html/gstreamer-plugins-output-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-output-selector.html
@@ -49,15 +49,15 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstOutputSelector
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-output-selector.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad" title='The "active-pad" property'>active-pad</a>"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
   "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest" title='The "resend-latest" property'>resend-latest</a>"            <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode" title='The "pad-negotiation-mode" property'>pad-negotiation-mode</a>"     <span class="type">GstOutputSelectorPadNegotiationMode</span>  : Read / Write
 </pre>
@@ -70,7 +70,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp10403120"></a><h3>Element Information</h3>
+<a name="idp8727536"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp10615680"></a><h3>Element Pads</h3>
+<a name="idp10868576"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -154,7 +154,7 @@
 <a name="gstreamer-plugins-output-selector.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstOutputSelector--active-pad"></a><h3>The <code class="literal">"active-pad"</code> property</h3>
-<pre class="programlisting">  "active-pad"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "active-pad"               <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
 <p>Currently active src pad.</p>
 </div>
 <hr>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index f1919dc..1aeddb6 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -28,7 +28,7 @@
 <td valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="idp7200880"></a><h2>Plugin Information</h2>
+<a name="idp9857792"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -56,7 +56,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="idp6375472"></a><h2>Elements</h2>
+<a name="idp7434400"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-queue.html b/docs/plugins/html/gstreamer-plugins-queue.html
index 68445d8..892b551 100644
--- a/docs/plugins/html/gstreamer-plugins-queue.html
+++ b/docs/plugins/html/gstreamer-plugins-queue.html
@@ -52,8 +52,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstQueue
 </pre>
 </div>
@@ -122,7 +122,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11696976"></a><h3>Element Information</h3>
+<a name="idp5812192"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -145,7 +145,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11704432"></a><h3>Element Pads</h3>
+<a name="idp5819648"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -316,7 +316,6 @@
 needed.
 </p>
 <p>Default value: FALSE</p>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins-queue2.html b/docs/plugins/html/gstreamer-plugins-queue2.html
index 4daac17..86735e9 100644
--- a/docs/plugins/html/gstreamer-plugins-queue2.html
+++ b/docs/plugins/html/gstreamer-plugins-queue2.html
@@ -49,8 +49,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstQueue2
 </pre>
 </div>
@@ -101,10 +101,8 @@
 of the queue size limits, they will only be used for buffering statistics.
 </p>
 <p>
-Since 0.10.24, setting the temp-location property with a filename is deprecated
-because it's impossible to securely open a temporary file in this way. The
-property will still be used to notify the application of the allocated
-filename, though.
+The temp-location property will be used to notify the application of the
+allocated filename.
 </p>
 <p>
 Last reviewed on 2009-07-10 (0.10.24)
@@ -112,7 +110,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11966144"></a><h3>Element Information</h3>
+<a name="idp11916944"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -135,7 +133,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11973552"></a><h3>Element Pads</h3>
+<a name="idp11924352"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -287,7 +285,6 @@
 When temp-template is set, remove the temporary file when going to READY.
 </p>
 <p>Default value: TRUE</p>
-<p class="since">Since 0.10.26</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -298,7 +295,6 @@
 buffer is disabled. Default 0.
 </p>
 <p>Default value: 0</p>
-<p class="since">Since 0.10.31</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-tee.html b/docs/plugins/html/gstreamer-plugins-tee.html
index 5725672..738f865 100644
--- a/docs/plugins/html/gstreamer-plugins-tee.html
+++ b/docs/plugins/html/gstreamer-plugins-tee.html
@@ -50,8 +50,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstTee
 </pre>
 </div>
@@ -64,7 +64,7 @@
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--num-src-pads" title='The "num-src-pads" property'>num-src-pads</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--silent" title='The "silent" property'>silent</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write / Construct
   "<a class="link" href="gstreamer-plugins-tee.html#GstTee--pull-mode" title='The "pull-mode" property'>pull-mode</a>"                <a class="link" href="gstreamer-plugins-tee.html#GstTeePullMode" title="enum GstTeePullMode"><span class="type">GstTeePullMode</span></a>        : Read / Write / Construct
-  "<a class="link" href="gstreamer-plugins-tee.html#GstTee--alloc-pad" title='The "alloc-pad" property'>alloc-pad</a>"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
+  "<a class="link" href="gstreamer-plugins-tee.html#GstTee--alloc-pad" title='The "alloc-pad" property'>alloc-pad</a>"                <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -83,7 +83,7 @@
 <p>
 </p>
 <div class="refsect2">
-<a name="idp6936944"></a><h3>Example launch line</h3>
+<a name="idp8955360"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,7 +102,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp6939664"></a><h3>Element Information</h3>
+<a name="idp8958080"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -125,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp12121888"></a><h3>Element Pads</h3>
+<a name="idp5756432"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -258,7 +258,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTee--alloc-pad"></a><h3>The <code class="literal">"alloc-pad"</code> property</h3>
-<pre class="programlisting">  "alloc-pad"                <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
+<pre class="programlisting">  "alloc-pad"                <a href="../gstreamer-1.0/GstPad.html"><span class="type">GstPad</span></a>*               : Read / Write</pre>
 <p>The pad used for gst_pad_alloc_buffer.</p>
 </div>
 </div>
diff --git a/docs/plugins/html/gstreamer-plugins-typefind.html b/docs/plugins/html/gstreamer-plugins-typefind.html
index 1711b17..868ea5e 100644
--- a/docs/plugins/html/gstreamer-plugins-typefind.html
+++ b/docs/plugins/html/gstreamer-plugins-typefind.html
@@ -51,18 +51,18 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstTypeFindElement
 </pre>
 </div>
 <div class="refsect1">
 <a name="gstreamer-plugins-typefind.properties"></a><h2>Properties</h2>
 <pre class="synopsis">
-  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--caps" title='The "caps" property'>caps</a>"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read
+  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--caps" title='The "caps" property'>caps</a>"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read
   "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--maximum" title='The "maximum" property'>maximum</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
   "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum" title='The "minimum" property'>minimum</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
-  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps" title='The "force-caps" property'>force-caps</a>"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
+  "<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps" title='The "force-caps" property'>force-caps</a>"               <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -85,12 +85,12 @@
 state change function).
 </p>
 <p>
-Plugins can register custom typefinders by using <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTypeFindFactory.html"><span class="type">GstTypeFindFactory</span></a>.
+Plugins can register custom typefinders by using <a href="../gstreamer-1.0/GstTypeFindFactory.html"><span class="type">GstTypeFindFactory</span></a>.
 </p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp11522416"></a><h3>Element Information</h3>
+<a name="idp10821296"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -113,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp11529824"></a><h3>Element Pads</h3>
+<a name="idp10828704"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -175,7 +175,7 @@
 <a name="gstreamer-plugins-typefind.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstTypeFindElement--caps"></a><h3>The <code class="literal">"caps"</code> property</h3>
-<pre class="programlisting">  "caps"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read</pre>
+<pre class="programlisting">  "caps"                     <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read</pre>
 <p>detected capabilities in stream.</p>
 </div>
 <hr>
@@ -197,7 +197,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTypeFindElement--force-caps"></a><h3>The <code class="literal">"force-caps"</code> property</h3>
-<pre class="programlisting">  "force-caps"               <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
+<pre class="programlisting">  "force-caps"               <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>*              : Read / Write</pre>
 <p>force caps without doing a typefind.</p>
 </div>
 </div>
@@ -207,7 +207,7 @@
 <a name="GstTypeFindElement-have-type"></a><h3>The <code class="literal">"have-type"</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="gstreamer-plugins-typefind.html#GstTypeFindElement"><span class="type">GstTypeFindElement</span></a> *typefind,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>               probability,
-                                                        <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>            *caps,
+                                                        <a href="../gstreamer-1.0/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>            *caps,
                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
 <p>
 This signal gets emitted when the type and its probability has
diff --git a/docs/plugins/html/gstreamer-plugins-valve.html b/docs/plugins/html/gstreamer-plugins-valve.html
index 41d9808..d6f4b69 100644
--- a/docs/plugins/html/gstreamer-plugins-valve.html
+++ b/docs/plugins/html/gstreamer-plugins-valve.html
@@ -49,8 +49,8 @@
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
    +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
-         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
-               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+         +----<a href="../gstreamer-1.0/GstObject.html">GstObject</a>
+               +----<a href="../gstreamer-1.0/GstElement.html">GstElement</a>
                      +----GstValve
 </pre>
 </div>
@@ -68,7 +68,7 @@
 </p>
 <p>
 Any downstream error received while the <a class="link" href="gstreamer-plugins-valve.html#GstValve--drop" title='The "drop" property'><span class="type">"drop"</span></a> property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-is ignored. So downstream element can be set to  <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> and removed,
+is ignored. So downstream element can be set to  <a href="../gstreamer-1.0/GstElement.html#GST-STATE-NULL:CAPS"><code class="literal">GST_STATE_NULL</code></a> and removed,
 without using pad blocking.
 </p>
 <p>
@@ -81,7 +81,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="idp7276800"></a><h3>Element Information</h3>
+<a name="idp8474768"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -104,7 +104,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="idp6954256"></a><h3>Element Pads</h3>
+<a name="idp11699792"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody>
@@ -160,7 +160,6 @@
 <p>
 The private valve structure
 </p>
-<p class="since">Since 0.10.32</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gstreamer-plugins.devhelp2 b/docs/plugins/html/gstreamer-plugins.devhelp2
index 5b4e071..1c411ef 100644
--- a/docs/plugins/html/gstreamer-plugins.devhelp2
+++ b/docs/plugins/html/gstreamer-plugins.devhelp2
@@ -26,14 +26,14 @@
     </sub>
   </chapters>
   <functions>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7212656"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp7705936"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp135056"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp8444528"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp7503952"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp81264"/>
     <keyword type="struct" name="struct GstCapsFilter" link="gstreamer-plugins-capsfilter.html#GstCapsFilter-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp5917840"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp5921024"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp5928432"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp9613184"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp9616368"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp9623776"/>
     <keyword type="struct" name="struct GstFakeSrc" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-struct"/>
     <keyword type="enum" name="enum GstFakeSrcDataType" link="gstreamer-plugins-fakesrc.html#GstFakeSrcDataType"/>
     <keyword type="enum" name="enum GstFakeSrcFillType" link="gstreamer-plugins-fakesrc.html#GstFakeSrcFillType"/>
@@ -57,9 +57,9 @@
     <keyword type="property" name="The &quot;sync&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--sync"/>
     <keyword type="property" name="The &quot;format&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--format"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-handoff"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp6480224"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp6482832"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp10479328"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp6365968"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp10164512"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp10172048"/>
     <keyword type="struct" name="struct GstFakeSink" link="gstreamer-plugins-fakesink.html#GstFakeSink-struct"/>
     <keyword type="enum" name="enum GstFakeSinkStateError" link="gstreamer-plugins-fakesink.html#GstFakeSinkStateError"/>
     <keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-pull"/>
@@ -72,19 +72,19 @@
     <keyword type="property" name="The &quot;num-buffers&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-handoff"/>
     <keyword type="signal" name="The &quot;preroll-handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-preroll-handoff"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp9141056"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp6713600"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp7949392"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp9532496"/>
     <keyword type="struct" name="struct GstFdSink" link="gstreamer-plugins-fdsink.html#GstFdSink-struct"/>
     <keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-fdsink.html#GstFdSink--fd"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp8708016"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp8711168"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp8718624"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp10131984"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp10135088"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp10306288"/>
     <keyword type="struct" name="struct GstFdSrc" link="gstreamer-plugins-fdsrc.html#GstFdSrc-struct"/>
     <keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--fd"/>
     <keyword type="property" name="The &quot;timeout&quot; property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp10794768"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp10797376"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10848016"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp9009152"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp9011760"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10528064"/>
     <keyword type="struct" name="struct GstFileSrc" link="gstreamer-plugins-filesrc.html#GstFileSrc-struct"/>
     <keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--fd"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--location"/>
@@ -92,19 +92,19 @@
     <keyword type="property" name="The &quot;touch&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--touch"/>
     <keyword type="property" name="The &quot;use-mmap&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--use-mmap"/>
     <keyword type="property" name="The &quot;sequential&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--sequential"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp6187584"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp6190144"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp6197552"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp6556784"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp6559344"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp6566752"/>
     <keyword type="struct" name="struct GstFileSink" link="gstreamer-plugins-filesink.html#GstFileSink-struct"/>
     <keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--location"/>
     <keyword type="property" name="The &quot;buffer-mode&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-mode"/>
     <keyword type="property" name="The &quot;buffer-size&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-size"/>
     <keyword type="property" name="The &quot;append&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--append"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp9944992"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp9858432"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp8107120"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp6236656"/>
     <keyword type="struct" name="struct GstFunnel" link="gstreamer-plugins-funnel.html#GstFunnel-struct"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp11113760"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp11121216"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp10684224"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp10691680"/>
     <keyword type="struct" name="struct GstIdentity" link="gstreamer-plugins-identity.html#GstIdentity-struct"/>
     <keyword type="property" name="The &quot;check-perfect&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-perfect"/>
     <keyword type="property" name="The &quot;datarate&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--datarate"/>
@@ -120,8 +120,8 @@
     <keyword type="property" name="The &quot;check-imperfect-timestamp&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-imperfect-timestamp"/>
     <keyword type="property" name="The &quot;signal-handoffs&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--signal-handoffs"/>
     <keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-identity.html#GstIdentity-handoff"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp11337552"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp11345088"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp11010592"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp11018128"/>
     <keyword type="struct" name="struct GstInputSelector" link="gstreamer-plugins-input-selector.html#GstInputSelector-struct"/>
     <keyword type="property" name="The &quot;active-pad&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad"/>
     <keyword type="property" name="The &quot;n-pads&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads"/>
@@ -131,9 +131,9 @@
     <keyword type="property" name="The &quot;sync-mode&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode"/>
     <keyword type="signal" name="The &quot;block&quot; signal" link="gstreamer-plugins-input-selector.html#GstInputSelector-block"/>
     <keyword type="signal" name="The &quot;switch&quot; signal" link="gstreamer-plugins-input-selector.html#GstInputSelector-switch"/>
-    <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp11098736"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp11562752"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp11570208"/>
+    <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp10353504"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp11141504"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp11148960"/>
     <keyword type="struct" name="struct GstMultiQueue" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-struct"/>
     <keyword type="property" name="The &quot;extra-size-buffers&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers"/>
     <keyword type="property" name="The &quot;extra-size-bytes&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes"/>
@@ -147,14 +147,14 @@
     <keyword type="property" name="The &quot;sync-by-running-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time"/>
     <keyword type="signal" name="The &quot;overrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun"/>
     <keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp10403120"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10615680"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp8727536"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10868576"/>
     <keyword type="struct" name="struct GstOutputSelector" link="gstreamer-plugins-output-selector.html#GstOutputSelector-struct"/>
     <keyword type="property" name="The &quot;active-pad&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad"/>
     <keyword type="property" name="The &quot;resend-latest&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest"/>
     <keyword type="property" name="The &quot;pad-negotiation-mode&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp11696976"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp11704432"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp5812192"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp5819648"/>
     <keyword type="struct" name="struct GstQueue" link="gstreamer-plugins-queue.html#GstQueue-struct"/>
     <keyword type="enum" name="enum GstQueueLeaky" link="gstreamer-plugins-queue.html#GstQueueLeaky"/>
     <keyword type="property" name="The &quot;current-level-buffers&quot; property" link="gstreamer-plugins-queue.html#GstQueue--current-level-buffers"/>
@@ -172,8 +172,8 @@
     <keyword type="signal" name="The &quot;running&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-running"/>
     <keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-underrun"/>
     <keyword type="signal" name="The &quot;pushing&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-pushing"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp11966144"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11973552"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp11916944"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11924352"/>
     <keyword type="struct" name="struct GstQueue2" link="gstreamer-plugins-queue2.html#GstQueue2-struct"/>
     <keyword type="property" name="The &quot;current-level-buffers&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers"/>
     <keyword type="property" name="The &quot;current-level-bytes&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes"/>
@@ -189,9 +189,9 @@
     <keyword type="property" name="The &quot;use-rate-estimate&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate"/>
     <keyword type="property" name="The &quot;temp-remove&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-remove"/>
     <keyword type="property" name="The &quot;ring-buffer-max-size&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size"/>
-    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp6936944"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp6939664"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp12121888"/>
+    <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp8955360"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp8958080"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp5756432"/>
     <keyword type="struct" name="struct GstTee" link="gstreamer-plugins-tee.html#GstTee-struct"/>
     <keyword type="enum" name="enum GstTeePullMode" link="gstreamer-plugins-tee.html#GstTeePullMode"/>
     <keyword type="property" name="The &quot;has-chain&quot; property" link="gstreamer-plugins-tee.html#GstTee--has-chain"/>
@@ -201,16 +201,16 @@
     <keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-tee.html#GstTee--silent"/>
     <keyword type="property" name="The &quot;pull-mode&quot; property" link="gstreamer-plugins-tee.html#GstTee--pull-mode"/>
     <keyword type="property" name="The &quot;alloc-pad&quot; property" link="gstreamer-plugins-tee.html#GstTee--alloc-pad"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp11522416"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp11529824"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp10821296"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp10828704"/>
     <keyword type="struct" name="struct GstTypeFindElement" link="gstreamer-plugins-typefind.html#GstTypeFindElement-struct"/>
     <keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--caps"/>
     <keyword type="property" name="The &quot;maximum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--maximum"/>
     <keyword type="property" name="The &quot;minimum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum"/>
     <keyword type="property" name="The &quot;force-caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps"/>
     <keyword type="signal" name="The &quot;have-type&quot; signal" link="gstreamer-plugins-typefind.html#GstTypeFindElement-have-type"/>
-    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp7276800"/>
-    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp6954256"/>
+    <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp8474768"/>
+    <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp11699792"/>
     <keyword type="struct" name="struct GstValve" link="gstreamer-plugins-valve.html#GstValve-struct"/>
     <keyword type="property" name="The &quot;drop&quot; property" link="gstreamer-plugins-valve.html#GstValve--drop"/>
     <keyword type="constant" name="FAKE_SRC_DATA_ALLOCATE" link="gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-ALLOCATE:CAPS"/>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 00593f5..ce76cd4 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Core Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Core Plugins 1.0 (0.11.92)
+      for GStreamer Core Plugins 1.0 (0.11.93)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/</a>.
     </p></div>
diff --git a/docs/pwg/Makefile.in b/docs/pwg/Makefile.in
index e22b674..e273c65 100644
--- a/docs/pwg/Makefile.in
+++ b/docs/pwg/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -221,7 +221,9 @@
 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@
diff --git a/docs/slides/Makefile.in b/docs/slides/Makefile.in
index b244443..c30c7ad 100644
--- a/docs/slides/Makefile.in
+++ b/docs/slides/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -167,7 +167,9 @@
 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@
diff --git a/docs/xsl/Makefile.in b/docs/xsl/Makefile.in
index e1a64f5..8f3a6ce 100644
--- a/docs/xsl/Makefile.in
+++ b/docs/xsl/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -167,7 +167,9 @@
 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@
diff --git a/gst/Makefile.am b/gst/Makefile.am
index 542f45d..b6bb664 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -48,6 +48,7 @@
 libgstreamer_@GST_API_VERSION@_la_SOURCES = \
 	gst.c			\
 	gstobject.c		\
+	gstallocator.c		\
 	gstbin.c		\
 	gstbuffer.c		\
 	gstbufferlist.c		\
@@ -142,6 +143,7 @@
 	gst.h			\
 	glib-compat.h		\
 	gstobject.h		\
+	gstallocator.h		\
 	gstbin.h		\
 	gstbuffer.h		\
 	gstbufferlist.h		\
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 2e6f45d..1cf9946 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -139,24 +139,26 @@
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
 	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_2)
 am__libgstreamer_@GST_API_VERSION@_la_SOURCES_DIST = gst.c gstobject.c \
-	gstbin.c gstbuffer.c gstbufferlist.c gstbufferpool.c gstbus.c \
-	gstcaps.c gstchildproxy.c gstclock.c gstcontrolbinding.c \
-	gstcontrolsource.c gstdatetime.c gstdebugutils.c gstelement.c \
-	gstelementfactory.c gsterror.c gstevent.c gstformat.c \
-	gstghostpad.c gstinfo.c gstiterator.c gstatomicqueue.c \
-	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
+	gstallocator.c gstbin.c gstbuffer.c gstbufferlist.c \
+	gstbufferpool.c gstbus.c gstcaps.c gstchildproxy.c gstclock.c \
+	gstcontrolbinding.c gstcontrolsource.c gstdatetime.c \
+	gstdebugutils.c gstelement.c gstelementfactory.c gsterror.c \
+	gstevent.c gstformat.c gstghostpad.c gstinfo.c gstiterator.c \
+	gstatomicqueue.c 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
 @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 =  \
 	libgstreamer_@GST_API_VERSION@_la-gst.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstobject.lo \
+	libgstreamer_@GST_API_VERSION@_la-gstallocator.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstbin.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstbuffer.lo \
 	libgstreamer_@GST_API_VERSION@_la-gstbufferlist.lo \
@@ -362,7 +364,9 @@
 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@
@@ -606,6 +610,7 @@
 libgstreamer_@GST_API_VERSION@_la_SOURCES = \
 	gst.c			\
 	gstobject.c		\
+	gstallocator.c		\
 	gstbin.c		\
 	gstbuffer.c		\
 	gstbufferlist.c		\
@@ -702,6 +707,7 @@
 	gst.h			\
 	glib-compat.h		\
 	gstobject.h		\
+	gstallocator.h		\
 	gstbin.h		\
 	gstbuffer.h		\
 	gstbufferlist.h		\
@@ -865,6 +871,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gst.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstallocator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstatomicqueue.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbuffer.Plo@am__quote@
@@ -959,6 +966,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-gstobject.lo `test -f 'gstobject.c' || echo '$(srcdir)/'`gstobject.c
 
+libgstreamer_@GST_API_VERSION@_la-gstallocator.lo: gstallocator.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-gstallocator.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstallocator.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstallocator.lo `test -f 'gstallocator.c' || echo '$(srcdir)/'`gstallocator.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstallocator.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstallocator.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstallocator.c' object='libgstreamer_@GST_API_VERSION@_la-gstallocator.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-gstallocator.lo `test -f 'gstallocator.c' || echo '$(srcdir)/'`gstallocator.c
+
 libgstreamer_@GST_API_VERSION@_la-gstbin.lo: gstbin.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-gstbin.lo -MD -MP -MF $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Tpo -c -o libgstreamer_@GST_API_VERSION@_la-gstbin.lo `test -f 'gstbin.c' || echo '$(srcdir)/'`gstbin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Tpo $(DEPDIR)/libgstreamer_@GST_API_VERSION@_la-gstbin.Plo
diff --git a/gst/gst.c b/gst/gst.c
index 96c20b5..b19bac0 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -483,8 +483,6 @@
  * or gst_init_check().
  *
  * Returns: TRUE if initialization has been done, FALSE otherwise.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_is_initialized (void)
@@ -713,6 +711,7 @@
   g_type_class_ref (gst_structure_change_type_get_type ());
   g_type_class_ref (gst_tag_merge_mode_get_type ());
   g_type_class_ref (gst_tag_flag_get_type ());
+  g_type_class_ref (gst_tag_scope_get_type ());
   g_type_class_ref (gst_task_pool_get_type ());
   g_type_class_ref (gst_task_state_get_type ());
   g_type_class_ref (gst_toc_entry_type_get_type ());
@@ -733,9 +732,11 @@
   g_type_class_ref (gst_scheduling_flags_get_type ());
   g_type_class_ref (gst_meta_flags_get_type ());
   g_type_class_ref (gst_toc_entry_type_get_type ());
-
+  g_type_class_ref (gst_toc_scope_get_type ());
   g_type_class_ref (gst_control_binding_get_type ());
   g_type_class_ref (gst_control_source_get_type ());
+  g_type_class_ref (gst_lock_flags_get_type ());
+  g_type_class_ref (gst_allocator_flags_get_type ());
 
   _priv_gst_event_initialize ();
   _priv_gst_buffer_initialize ();
@@ -1082,8 +1083,10 @@
   g_type_class_unref (g_type_class_peek (gst_buffering_mode_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_tag_merge_mode_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_tag_flag_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_tag_scope_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_task_state_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_toc_entry_type_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_toc_scope_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_type_find_probability_get_type
           ()));
   g_type_class_unref (g_type_class_peek (gst_uri_type_get_type ()));
@@ -1104,6 +1107,9 @@
   g_type_class_unref (g_type_class_peek (gst_control_binding_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_control_source_get_type ()));
   g_type_class_unref (g_type_class_peek (gst_toc_entry_type_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_lock_flags_get_type ()));
+  g_type_class_unref (g_type_class_peek (gst_allocator_flags_get_type ()));
+
 
   gst_deinitialized = TRUE;
   GST_INFO ("deinitialized GStreamer");
@@ -1169,8 +1175,6 @@
  * wants to install its own handler without GStreamer interfering.
  *
  * Returns: %TRUE if GStreamer is allowed to install a custom SIGSEGV handler.
- *
- * Since: 0.10.10
  */
 gboolean
 gst_segtrap_is_enabled (void)
@@ -1185,8 +1189,6 @@
  *
  * Applications might want to disable/enable the SIGSEGV handling of
  * the GStreamer core. See gst_segtrap_is_enabled() for more information.
- *
- * Since: 0.10.10
  */
 void
 gst_segtrap_set_enabled (gboolean enabled)
diff --git a/gst/gst_private.h b/gst/gst_private.h
index c15c8fa..6b9f3c9 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -57,6 +57,8 @@
 /* for GstToc */
 #include "gsttoc.h"
 
+#include "gstdatetime.h"
+
 G_BEGIN_DECLS
 
 /* used by gstparse.c and grammar.y */
@@ -83,67 +85,69 @@
 };
 
 /* FIXME: could rename all priv_gst_* functions to __gst_* now */
-gboolean priv_gst_plugin_loading_have_whitelist (void);
+G_GNUC_INTERNAL  gboolean priv_gst_plugin_loading_have_whitelist (void);
 
-guint32  priv_gst_plugin_loading_get_whitelist_hash (void);
+G_GNUC_INTERNAL  guint32  priv_gst_plugin_loading_get_whitelist_hash (void);
 
-gboolean priv_gst_plugin_desc_is_whitelisted (GstPluginDesc * desc,
-                                              const gchar   * filename);
+G_GNUC_INTERNAL  gboolean priv_gst_plugin_desc_is_whitelisted (GstPluginDesc * desc,
+                                                               const gchar   * filename);
 
-gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin);
-gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin);
+G_GNUC_INTERNAL  gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin);
 
-gboolean _priv_gst_in_valgrind (void);
+G_GNUC_INTERNAL  gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin);
+
+G_GNUC_INTERNAL  gboolean _priv_gst_in_valgrind (void);
 
 /* init functions called from gst_init(). */
-void  _priv_gst_quarks_initialize (void);
-void  _priv_gst_mini_object_initialize (void);
-void  _priv_gst_buffer_initialize (void);
-void  _priv_gst_buffer_list_initialize (void);
-void  _priv_gst_structure_initialize (void);
-void  _priv_gst_caps_initialize (void);
-void  _priv_gst_event_initialize (void);
-void  _priv_gst_format_initialize (void);
-void  _priv_gst_message_initialize (void);
-void  _priv_gst_memory_initialize (void);
-void  _priv_gst_meta_initialize (void);
-void  _priv_gst_plugin_initialize (void);
-void  _priv_gst_query_initialize (void);
-void  _priv_gst_sample_initialize (void);
-void  _priv_gst_tag_initialize (void);
-void  _priv_gst_value_initialize (void);
-void  _priv_gst_debug_init (void);
-
-/* TOC functions */
-/* These functions are used to parse TOC messages, events and queries */
-GstToc*        __gst_toc_from_structure (const GstStructure *toc);
-GstStructure*  __gst_toc_to_structure (const GstToc *toc);
-gboolean       __gst_toc_structure_get_updated (const GstStructure * toc);
-void           __gst_toc_structure_set_updated (GstStructure * toc, gboolean updated);
-gchar*         __gst_toc_structure_get_extend_uid (const GstStructure * toc);
-void           __gst_toc_structure_set_extend_uid (GstStructure * toc, const gchar * extend_uid);
+G_GNUC_INTERNAL  void  _priv_gst_quarks_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_mini_object_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_buffer_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_buffer_list_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_structure_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_caps_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_event_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_format_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_message_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_memory_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_meta_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_plugin_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_query_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_sample_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_tag_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_value_initialize (void);
+G_GNUC_INTERNAL  void  _priv_gst_debug_init (void);
 
 /* Private registry functions */
+G_GNUC_INTERNAL
 gboolean _priv_gst_registry_remove_cache_plugins (GstRegistry *registry);
-void _priv_gst_registry_cleanup (void);
+
+G_GNUC_INTERNAL  void _priv_gst_registry_cleanup (void);
+
 gboolean _gst_plugin_loader_client_run (void);
 
 /* Used in GstBin for manual state handling */
-void _priv_gst_element_state_changed (GstElement *element, GstState oldstate,
-    GstState newstate, GstState pending);
+G_GNUC_INTERNAL  void _priv_gst_element_state_changed (GstElement *element,
+                      GstState oldstate, GstState newstate, GstState pending);
 
 /* used in both gststructure.c and gstcaps.c; numbers are completely made up */
 #define STRUCTURE_ESTIMATED_STRING_LEN(s) (16 + gst_structure_n_fields(s) * 22)
 
+G_GNUC_INTERNAL
 gboolean  priv_gst_structure_append_to_gstring (const GstStructure * structure,
                                                 GString            * s);
 /* registry cache backends */
+G_GNUC_INTERNAL
 gboolean		priv_gst_registry_binary_read_cache	(GstRegistry * registry, const char *location);
+
+G_GNUC_INTERNAL
 gboolean		priv_gst_registry_binary_write_cache	(GstRegistry * registry, GList * plugins, const char *location);
 
+
+G_GNUC_INTERNAL
 void      __gst_element_factory_add_static_pad_template (GstElementFactory    * elementfactory,
                                                          GstStaticPadTemplate * templ);
 
+G_GNUC_INTERNAL
 void      __gst_element_factory_add_interface           (GstElementFactory    * elementfactory,
                                                          const gchar          * interfacename);
 
@@ -153,7 +157,11 @@
     ((c) == '.'))
 
 /* This is only meant for internal uses */
-gint priv_gst_date_time_compare (gconstpointer dt1, gconstpointer dt2);
+G_GNUC_INTERNAL
+gint __gst_date_time_compare (const GstDateTime * dt1, const GstDateTime * dt2);
+
+G_GNUC_INTERNAL
+gchar * __gst_date_time_serialize (GstDateTime * datetime, gboolean with_usecs);
 
 #ifndef GST_DISABLE_REGISTRY
 /* Secret variable to initialise gst without registry cache */
@@ -211,6 +219,7 @@
 GST_EXPORT GstDebugCategory *GST_CAT_REGISTRY;
 GST_EXPORT GstDebugCategory *GST_CAT_QOS;
 GST_EXPORT GstDebugCategory *GST_CAT_META;
+GST_EXPORT GstDebugCategory *GST_CAT_LOCKING;
 
 /* Categories that should be completely private to
  * libgstreamer should be done like this: */
@@ -252,6 +261,7 @@
 #define GST_CAT_TYPES            NULL
 #define GST_CAT_POLL             NULL
 #define GST_CAT_META             NULL
+#define GST_CAT_LOCKING          NULL
 
 #endif
 
diff --git a/gst/gstallocator.c b/gst/gstallocator.c
new file mode 100644
index 0000000..fea534b
--- /dev/null
+++ b/gst/gstallocator.c
@@ -0,0 +1,626 @@
+/* GStreamer
+ * Copyright (C) 2011 Wim Taymans <wim.taymans@gmail.be>
+ *
+ * gstallocator.c: memory block allocator
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:gstallocator
+ * @short_description: allocate memory blocks
+ * @see_also: #GstMemory
+ *
+ * Memory is usually created by allocators with a gst_allocator_alloc()
+ * method call. When NULL is used as the allocator, the default allocator will
+ * be used.
+ *
+ * New allocators can be registered with gst_allocator_register().
+ * Allocators are identified by name and can be retrieved with
+ * gst_allocator_find(). gst_allocator_set_default() can be used to change the
+ * default allocator.
+ *
+ * New memory can be created with gst_memory_new_wrapped() that wraps the memory
+ * allocated elsewhere.
+ *
+ * Last reviewed on 2012-07-09 (0.11.3)
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gst_private.h"
+#include "gstmemory.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_allocator_debug);
+#define GST_CAT_DEFAULT gst_allocator_debug
+
+#define GST_ALLOCATOR_GET_PRIVATE(obj)  \
+     (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_ALLOCATOR, GstAllocatorPrivate))
+
+struct _GstAllocatorPrivate
+{
+  gpointer dummy;
+};
+
+#if defined(MEMORY_ALIGNMENT_MALLOC)
+size_t gst_memory_alignment = 7;
+#elif defined(MEMORY_ALIGNMENT_PAGESIZE)
+/* we fill this in in the _init method */
+size_t gst_memory_alignment = 0;
+#elif defined(MEMORY_ALIGNMENT)
+size_t gst_memory_alignment = MEMORY_ALIGNMENT - 1;
+#else
+#error "No memory alignment configured"
+size_t gst_memory_alignment = 0;
+#endif
+
+/* the default allocator */
+static GstAllocator *_default_allocator;
+
+static GstAllocator *_sysmem_allocator;
+
+/* registered allocators */
+static GRWLock lock;
+static GHashTable *allocators;
+
+G_DEFINE_ABSTRACT_TYPE (GstAllocator, gst_allocator, GST_TYPE_OBJECT);
+
+static void
+gst_allocator_class_init (GstAllocatorClass * klass)
+{
+  g_type_class_add_private (klass, sizeof (GstAllocatorPrivate));
+
+  GST_DEBUG_CATEGORY_INIT (gst_allocator_debug, "allocator", 0,
+      "allocator debug");
+}
+
+static GstMemory *
+_fallback_mem_copy (GstMemory * mem, gssize offset, gssize size)
+{
+  GstMemory *copy;
+  GstMapInfo sinfo, dinfo;
+  GstAllocationParams params = { 0, 0, 0, mem->align, };
+
+  if (!gst_memory_map (mem, &sinfo, GST_MAP_READ))
+    return NULL;
+
+  if (size == -1)
+    size = sinfo.size > offset ? sinfo.size - offset : 0;
+
+  /* use the same allocator as the memory we copy  */
+  copy = gst_allocator_alloc (mem->allocator, size, &params);
+  if (!gst_memory_map (copy, &dinfo, GST_MAP_WRITE)) {
+    GST_CAT_WARNING (GST_CAT_MEMORY, "could not write map memory %p", copy);
+    gst_memory_unmap (mem, &sinfo);
+    return NULL;
+  }
+
+  GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
+      "memcpy %" G_GSSIZE_FORMAT " memory %p -> %p", size, mem, copy);
+  memcpy (dinfo.data, sinfo.data + offset, size);
+  gst_memory_unmap (copy, &dinfo);
+  gst_memory_unmap (mem, &sinfo);
+
+  return copy;
+}
+
+static gboolean
+_fallback_mem_is_span (GstMemory * mem1, GstMemory * mem2, gsize * offset)
+{
+  return FALSE;
+}
+
+static void
+gst_allocator_init (GstAllocator * allocator)
+{
+  allocator->priv = GST_ALLOCATOR_GET_PRIVATE (allocator);
+
+  allocator->mem_copy = _fallback_mem_copy;
+  allocator->mem_is_span = _fallback_mem_is_span;
+}
+
+G_DEFINE_BOXED_TYPE (GstAllocationParams, gst_allocation_params,
+    (GBoxedCopyFunc) gst_allocation_params_copy,
+    (GBoxedFreeFunc) gst_allocation_params_free);
+
+/**
+ * gst_allocation_params_init:
+ * @params: a #GstAllocationParams
+ *
+ * Initialize @params to its default values
+ */
+void
+gst_allocation_params_init (GstAllocationParams * params)
+{
+  g_return_if_fail (params != NULL);
+
+  memset (params, 0, sizeof (GstAllocationParams));
+}
+
+/**
+ * gst_allocation_params_copy:
+ * @params: (transfer none): a #GstAllocationParams
+ *
+ * Create a copy of @params.
+ *
+ * Free-function: gst_allocation_params_free
+ *
+ * Returns: (transfer full): a new ##GstAllocationParams, free with
+ * gst_allocation_params_free().
+ */
+GstAllocationParams *
+gst_allocation_params_copy (const GstAllocationParams * params)
+{
+  GstAllocationParams *result = NULL;
+
+  if (params) {
+    result =
+        (GstAllocationParams *) g_slice_copy (sizeof (GstAllocationParams),
+        params);
+  }
+  return result;
+}
+
+/**
+ * gst_allocation_params_free:
+ * @params: (in) (transfer full): a #GstAllocationParams
+ *
+ * Free @params
+ */
+void
+gst_allocation_params_free (GstAllocationParams * params)
+{
+  g_slice_free (GstAllocationParams, params);
+}
+
+/**
+ * gst_allocator_register:
+ * @name: the name of the allocator
+ * @allocator: (transfer full): #GstAllocator
+ *
+ * Registers the memory @allocator with @name. This function takes ownership of
+ * @allocator.
+ */
+void
+gst_allocator_register (const gchar * name, GstAllocator * allocator)
+{
+  g_return_if_fail (name != NULL);
+  g_return_if_fail (allocator != NULL);
+
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "registering allocator %p with name \"%s\"",
+      allocator, name);
+
+  g_rw_lock_writer_lock (&lock);
+  g_hash_table_insert (allocators, (gpointer) name, (gpointer) allocator);
+  g_rw_lock_writer_unlock (&lock);
+}
+
+/**
+ * gst_allocator_find:
+ * @name: the name of the allocator
+ *
+ * Find a previously registered allocator with @name. When @name is NULL, the
+ * default allocator will be returned.
+ *
+ * Returns: (transfer full): a #GstAllocator or NULL when the allocator with @name was not
+ * registered. Use gst_object_unref() to release the allocator after usage.
+ */
+GstAllocator *
+gst_allocator_find (const gchar * name)
+{
+  GstAllocator *allocator;
+
+  g_rw_lock_reader_lock (&lock);
+  if (name) {
+    allocator = g_hash_table_lookup (allocators, (gconstpointer) name);
+  } else {
+    allocator = _default_allocator;
+  }
+  if (allocator)
+    gst_object_ref (allocator);
+  g_rw_lock_reader_unlock (&lock);
+
+  return allocator;
+}
+
+/**
+ * gst_allocator_set_default:
+ * @allocator: (transfer full): a #GstAllocator
+ *
+ * Set the default allocator. This function takes ownership of @allocator.
+ */
+void
+gst_allocator_set_default (GstAllocator * allocator)
+{
+  GstAllocator *old;
+
+  g_return_if_fail (GST_IS_ALLOCATOR (allocator));
+
+  g_rw_lock_writer_lock (&lock);
+  old = _default_allocator;
+  _default_allocator = allocator;
+  g_rw_lock_writer_unlock (&lock);
+
+  if (old)
+    gst_object_unref (old);
+}
+
+/**
+ * gst_allocator_alloc:
+ * @allocator: (transfer none) (allow-none): a #GstAllocator to use
+ * @size: size of the visible memory area
+ * @params: (transfer none) (allow-none): optional parameters
+ *
+ * Use @allocator to allocate a new memory block with memory that is at least
+ * @size big.
+ *
+ * The optional @params can specify the prefix and padding for the memory. If
+ * NULL is passed, no flags, no extra prefix/padding and a default alignment is
+ * used.
+ *
+ * The prefix/padding will be filled with 0 if flags contains
+ * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
+ *
+ * When @allocator is NULL, the default allocator will be used.
+ *
+ * The alignment in @params is given as a bitmask so that @align + 1 equals
+ * the amount of bytes to align to. For example, to align to 8 bytes,
+ * use an alignment of 7.
+ *
+ * Returns: (transfer full): a new #GstMemory.
+ */
+GstMemory *
+gst_allocator_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
+{
+  GstMemory *mem;
+  static GstAllocationParams defparams = { 0, 0, 0, 0, };
+  GstAllocatorClass *aclass;
+
+  if (params) {
+    g_return_val_if_fail (((params->align + 1) & params->align) == 0, NULL);
+  } else {
+    params = &defparams;
+  }
+
+  if (allocator == NULL)
+    allocator = _default_allocator;
+
+  aclass = GST_ALLOCATOR_GET_CLASS (allocator);
+  if (aclass->alloc)
+    mem = aclass->alloc (allocator, size, params);
+  else
+    mem = NULL;
+
+  return mem;
+}
+
+/**
+ * gst_allocator_free:
+ * @allocator: (transfer none): a #GstAllocator to use
+ * @memory: (transfer full): the memory to free
+ *
+ * Free @memory that was previously allocated with gst_allocator_alloc().
+ */
+void
+gst_allocator_free (GstAllocator * allocator, GstMemory * memory)
+{
+  GstAllocatorClass *aclass;
+
+  g_return_if_fail (GST_IS_ALLOCATOR (allocator));
+  g_return_if_fail (memory != NULL);
+  g_return_if_fail (memory->allocator == allocator);
+
+  aclass = GST_ALLOCATOR_GET_CLASS (allocator);
+  if (aclass->free)
+    aclass->free (allocator, memory);
+}
+
+/* default memory implementation */
+typedef struct
+{
+  GstMemory mem;
+
+  gsize slice_size;
+  guint8 *data;
+
+  gpointer user_data;
+  GDestroyNotify notify;
+} GstMemoryDefault;
+
+typedef struct
+{
+  GstAllocator parent;
+} GstDefaultAllocator;
+
+typedef struct
+{
+  GstAllocatorClass parent_class;
+} GstDefaultAllocatorClass;
+
+GType gst_default_allocator_get_type (void);
+G_DEFINE_TYPE (GstDefaultAllocator, gst_default_allocator, GST_TYPE_ALLOCATOR);
+
+/* initialize the fields */
+static inline void
+_default_mem_init (GstMemoryDefault * mem, GstMemoryFlags flags,
+    GstMemory * parent, gsize slice_size,
+    gpointer data, gsize maxsize, gsize align, gsize offset, gsize size,
+    gpointer user_data, GDestroyNotify notify)
+{
+  gst_memory_init (GST_MEMORY_CAST (mem),
+      flags, _sysmem_allocator, parent, maxsize, align, offset, size);
+
+  mem->slice_size = slice_size;
+  mem->data = data;
+  mem->user_data = user_data;
+  mem->notify = notify;
+}
+
+/* create a new memory block that manages the given memory */
+static inline GstMemoryDefault *
+_default_mem_new (GstMemoryFlags flags,
+    GstMemory * parent, gpointer data, gsize maxsize, gsize align, gsize offset,
+    gsize size, gpointer user_data, GDestroyNotify notify)
+{
+  GstMemoryDefault *mem;
+  gsize slice_size;
+
+  slice_size = sizeof (GstMemoryDefault);
+
+  mem = g_slice_alloc (slice_size);
+  _default_mem_init (mem, flags, parent, slice_size,
+      data, maxsize, align, offset, size, user_data, notify);
+
+  return mem;
+}
+
+/* allocate the memory and structure in one block */
+static GstMemoryDefault *
+_default_mem_new_block (GstMemoryFlags flags,
+    gsize maxsize, gsize align, gsize offset, gsize size)
+{
+  GstMemoryDefault *mem;
+  gsize aoffset, slice_size, padding;
+  guint8 *data;
+
+  /* ensure configured alignment */
+  align |= gst_memory_alignment;
+  /* allocate more to compensate for alignment */
+  maxsize += align;
+  /* alloc header and data in one block */
+  slice_size = sizeof (GstMemoryDefault) + maxsize;
+
+  mem = g_slice_alloc (slice_size);
+  if (mem == NULL)
+    return NULL;
+
+  data = (guint8 *) mem + sizeof (GstMemoryDefault);
+
+  /* do alignment */
+  if ((aoffset = ((guintptr) data & align))) {
+    aoffset = (align + 1) - aoffset;
+    data += aoffset;
+    maxsize -= aoffset;
+  }
+
+  if (offset && (flags & GST_MEMORY_FLAG_ZERO_PREFIXED))
+    memset (data, 0, offset);
+
+  padding = maxsize - (offset + size);
+  if (padding && (flags & GST_MEMORY_FLAG_ZERO_PADDED))
+    memset (data + offset + size, 0, padding);
+
+  _default_mem_init (mem, flags, NULL, slice_size, data, maxsize,
+      align, offset, size, NULL, NULL);
+
+  return mem;
+}
+
+static gpointer
+_default_mem_map (GstMemoryDefault * mem, gsize maxsize, GstMapFlags flags)
+{
+  return mem->data;
+}
+
+static gboolean
+_default_mem_unmap (GstMemoryDefault * mem)
+{
+  return TRUE;
+}
+
+static GstMemoryDefault *
+_default_mem_copy (GstMemoryDefault * mem, gssize offset, gsize size)
+{
+  GstMemoryDefault *copy;
+
+  if (size == -1)
+    size = mem->mem.size > offset ? mem->mem.size - offset : 0;
+
+  copy =
+      _default_mem_new_block (0, mem->mem.maxsize, 0, mem->mem.offset + offset,
+      size);
+  GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
+      "memcpy %" G_GSIZE_FORMAT " memory %p -> %p", mem->mem.maxsize, mem,
+      copy);
+  memcpy (copy->data, mem->data, mem->mem.maxsize);
+
+  return copy;
+}
+
+static GstMemoryDefault *
+_default_mem_share (GstMemoryDefault * mem, gssize offset, gsize size)
+{
+  GstMemoryDefault *sub;
+  GstMemory *parent;
+
+  /* find the real parent */
+  if ((parent = mem->mem.parent) == NULL)
+    parent = (GstMemory *) mem;
+
+  if (size == -1)
+    size = mem->mem.size - offset;
+
+  /* the shared memory is always readonly */
+  sub =
+      _default_mem_new (GST_MINI_OBJECT_FLAGS (parent) |
+      GST_MINI_OBJECT_FLAG_LOCK_READONLY, parent, mem->data, mem->mem.maxsize,
+      mem->mem.align, mem->mem.offset + offset, size, NULL, NULL);
+
+  return sub;
+}
+
+static gboolean
+_default_mem_is_span (GstMemoryDefault * mem1, GstMemoryDefault * mem2,
+    gsize * offset)
+{
+
+  if (offset) {
+    GstMemoryDefault *parent;
+
+    parent = (GstMemoryDefault *) mem1->mem.parent;
+
+    *offset = mem1->mem.offset - parent->mem.offset;
+  }
+
+  /* and memory is contiguous */
+  return mem1->data + mem1->mem.offset + mem1->mem.size ==
+      mem2->data + mem2->mem.offset;
+}
+
+static GstMemory *
+default_alloc (GstAllocator * allocator, gsize size,
+    GstAllocationParams * params)
+{
+  gsize maxsize = size + params->prefix + params->padding;
+
+  return (GstMemory *) _default_mem_new_block (params->flags,
+      maxsize, params->align, params->prefix, size);
+}
+
+static void
+default_free (GstAllocator * allocator, GstMemory * mem)
+{
+  GstMemoryDefault *dmem = (GstMemoryDefault *) mem;
+  gsize slice_size;
+
+  if (dmem->notify)
+    dmem->notify (dmem->user_data);
+
+  slice_size = dmem->slice_size;
+
+#ifdef USE_POISONING
+  /* just poison the structs, not all the data */
+  memset (mem, 0xff, sizeof (GstMemoryDefault));
+#endif
+
+  g_slice_free1 (slice_size, mem);
+}
+
+static void
+gst_default_allocator_finalize (GObject * obj)
+{
+  g_warning ("The default memory allocator was freed!");
+}
+
+static void
+gst_default_allocator_class_init (GstDefaultAllocatorClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstAllocatorClass *allocator_class;
+
+  gobject_class = (GObjectClass *) klass;
+  allocator_class = (GstAllocatorClass *) klass;
+
+  gobject_class->finalize = gst_default_allocator_finalize;
+
+  allocator_class->alloc = default_alloc;
+  allocator_class->free = default_free;
+}
+
+static void
+gst_default_allocator_init (GstDefaultAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "init allocator %p", allocator);
+
+  alloc->mem_type = GST_ALLOCATOR_SYSMEM;
+  alloc->mem_map = (GstMemoryMapFunction) _default_mem_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) _default_mem_unmap;
+  alloc->mem_copy = (GstMemoryCopyFunction) _default_mem_copy;
+  alloc->mem_share = (GstMemoryShareFunction) _default_mem_share;
+  alloc->mem_is_span = (GstMemoryIsSpanFunction) _default_mem_is_span;
+}
+
+void
+_priv_gst_memory_initialize (void)
+{
+  g_rw_lock_init (&lock);
+  allocators = g_hash_table_new (g_str_hash, g_str_equal);
+
+#ifdef HAVE_GETPAGESIZE
+#ifdef MEMORY_ALIGNMENT_PAGESIZE
+  gst_memory_alignment = getpagesize () - 1;
+#endif
+#endif
+
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "memory alignment: %" G_GSIZE_FORMAT,
+      gst_memory_alignment);
+
+  _sysmem_allocator = g_object_new (gst_default_allocator_get_type (), NULL);
+
+  gst_allocator_register (GST_ALLOCATOR_SYSMEM,
+      gst_object_ref (_sysmem_allocator));
+
+  _default_allocator = gst_object_ref (_sysmem_allocator);
+}
+
+/**
+ * gst_memory_new_wrapped:
+ * @flags: #GstMemoryFlags
+ * @data: data to wrap
+ * @maxsize: allocated size of @data
+ * @offset: offset in @data
+ * @size: size of valid data
+ * @user_data: user_data
+ * @notify: called with @user_data when the memory is freed
+ *
+ * Allocate a new memory block that wraps the given @data.
+ *
+ * The prefix/padding must be filled with 0 if @flags contains
+ * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
+ *
+ * Returns: a new #GstMemory.
+ */
+GstMemory *
+gst_memory_new_wrapped (GstMemoryFlags flags, gpointer data,
+    gsize maxsize, gsize offset, gsize size, gpointer user_data,
+    GDestroyNotify notify)
+{
+  GstMemoryDefault *mem;
+
+  g_return_val_if_fail (data != NULL, NULL);
+  g_return_val_if_fail (offset + size <= maxsize, NULL);
+
+  mem =
+      _default_mem_new (flags, NULL, data, maxsize, 0, offset, size, user_data,
+      notify);
+
+  return (GstMemory *) mem;
+}
diff --git a/gst/gstallocator.h b/gst/gstallocator.h
new file mode 100644
index 0000000..f9edd50
--- /dev/null
+++ b/gst/gstallocator.h
@@ -0,0 +1,159 @@
+/* GStreamer
+ * Copyright (C) 2009 Wim Taymans <wim.taymans@gmail.be>
+ *
+ * gstallocator.h: Header for memory allocation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+#ifndef __GST_ALLOCATOR_H__
+#define __GST_ALLOCATOR_H__
+
+#include <gst/gstmemory.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstAllocatorPrivate GstAllocatorPrivate;
+typedef struct _GstAllocatorClass GstAllocatorClass;
+
+#define GST_TYPE_ALLOCATOR                 (gst_allocator_get_type())
+#define GST_IS_ALLOCATOR(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_ALLOCATOR))
+#define GST_IS_ALLOCATOR_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_ALLOCATOR))
+#define GST_ALLOCATOR_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_ALLOCATOR, GstAllocatorClass))
+#define GST_ALLOCATOR(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ALLOCATOR, GstAllocator))
+#define GST_ALLOCATOR_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_ALLOCATOR, GstAllocatorClass))
+#define GST_ALLOCATOR_CAST(obj)            ((GstAllocator *)(obj))
+
+#define GST_TYPE_ALLOCATION_PARAMS (gst_allocation_params_get_type())
+GType gst_allocation_params_get_type(void);
+
+typedef struct _GstAllocationParams GstAllocationParams;
+
+/**
+ * gst_memory_alignment:
+ *
+ * The default memory alignment in bytes - 1
+ * an alignment of 7 would be the same as what malloc() guarantees.
+ */
+GST_EXPORT gsize gst_memory_alignment;
+
+/**
+ * GST_ALLOCATOR_SYSMEM:
+ *
+ * The allocator name for the default system memory allocator
+ */
+#define GST_ALLOCATOR_SYSMEM   "SystemMemory"
+
+/**
+ * GstAllocationParams:
+ * @flags: flags to control allocation
+ * @align: the desired alignment of the memory
+ * @prefix: the desired prefix
+ * @padding: the desired padding
+ *
+ * Parameters to control the allocation of memory
+ */
+struct _GstAllocationParams {
+  GstMemoryFlags flags;
+  gsize          align;
+  gsize          prefix;
+  gsize          padding;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstAllocatorFlags:
+ * @GST_ALLOCATOR_FLAG_CUSTOM_ALLOC: The allocator has a custom alloc function.
+ * @GST_ALLOCATOR_FLAG_LAST: first flag that can be used for custom purposes
+ *
+ * Flags for allocators.
+ */
+typedef enum {
+  GST_ALLOCATOR_FLAG_CUSTOM_ALLOC  = (GST_OBJECT_FLAG_LAST << 0),
+
+  GST_ALLOCATOR_FLAG_LAST          = (GST_OBJECT_FLAG_LAST << 16)
+} GstAllocatorFlags;
+
+/**
+ * GstAllocator:
+ * @object: parent structure
+ * @mem_type: the memory type this allocator provides
+ * @mem_map: the implementation of the GstMemoryMapFunction
+ * @mem_unmap: the implementation of the GstMemoryUnmapFunction
+ * @mem_copy: the implementation of the GstMemoryCopyFunction
+ * @mem_share: the implementation of the GstMemoryShareFunction
+ * @mem_is_span: the implementation of the GstMemoryIsSpanFunction
+ *
+ * The #GstAllocator is used to create new memory.
+ */
+struct _GstAllocator
+{
+  GstObject  object;
+
+  const gchar              *mem_type;
+
+  GstMemoryMapFunction      mem_map;
+  GstMemoryUnmapFunction    mem_unmap;
+
+  GstMemoryCopyFunction     mem_copy;
+  GstMemoryShareFunction    mem_share;
+  GstMemoryIsSpanFunction   mem_is_span;
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+
+  GstAllocatorPrivate *priv;
+};
+
+struct _GstAllocatorClass {
+  GstObjectClass object_class;
+
+  GstMemory *  (*alloc)      (GstAllocator *allocator, gsize size,
+                              GstAllocationParams *params);
+  void         (*free)       (GstAllocator *allocator, GstMemory *memory);
+
+  /*< private >*/
+  gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_allocator_get_type(void);
+
+/* allocators */
+void           gst_allocator_register        (const gchar *name, GstAllocator *allocator);
+GstAllocator * gst_allocator_find            (const gchar *name);
+void           gst_allocator_set_default     (GstAllocator * allocator);
+
+/* allocation parameters */
+void           gst_allocation_params_init    (GstAllocationParams *params);
+GstAllocationParams *
+               gst_allocation_params_copy    (const GstAllocationParams *params) G_GNUC_MALLOC;
+void           gst_allocation_params_free    (GstAllocationParams *params);
+
+/* allocating memory blocks */
+GstMemory *    gst_allocator_alloc           (GstAllocator * allocator, gsize size,
+                                              GstAllocationParams *params);
+void           gst_allocator_free            (GstAllocator * allocator, GstMemory *memory);
+
+GstMemory *    gst_memory_new_wrapped  (GstMemoryFlags flags, gpointer data, gsize maxsize,
+                                        gsize offset, gsize size, gpointer user_data,
+                                        GDestroyNotify notify);
+
+G_END_DECLS
+
+#endif /* __GST_ALLOCATOR_H__ */
diff --git a/gst/gstatomicqueue.c b/gst/gstatomicqueue.c
index 812970a..473092b 100644
--- a/gst/gstatomicqueue.c
+++ b/gst/gstatomicqueue.c
@@ -35,10 +35,12 @@
  *
  * The #GstAtomicQueue object implements a queue that can be used from multiple
  * threads without performing any blocking operations.
- *
- * Since: 0.10.33
  */
 
+G_DEFINE_BOXED_TYPE (GstAtomicQueue, gst_atomic_queue,
+    (GBoxedCopyFunc) gst_atomic_queue_ref,
+    (GBoxedFreeFunc) gst_atomic_queue_unref);
+
 /* By default the queue uses 2 * sizeof(gpointer) * clp2 (max_items) of
  * memory. clp2(x) is the next power of two >= than x.
  *
@@ -149,8 +151,6 @@
  * nearest power of 2 and used as the initial size of the queue.
  *
  * Returns: a new #GstAtomicQueue
- *
- * Since: 0.10.33
  */
 GstAtomicQueue *
 gst_atomic_queue_new (guint initial_size)
@@ -174,8 +174,6 @@
  * @queue: a #GstAtomicQueue
  *
  * Increase the refcount of @queue.
- *
- * Since: 0.10.33
  */
 void
 gst_atomic_queue_ref (GstAtomicQueue * queue)
@@ -200,8 +198,6 @@
  * @queue: a #GstAtomicQueue
  *
  * Unref @queue and free the memory when the refcount reaches 0.
- *
- * Since: 0.10.33
  */
 void
 gst_atomic_queue_unref (GstAtomicQueue * queue)
@@ -218,9 +214,8 @@
  *
  * Peek the head element of the queue without removing it from the queue.
  *
- * Returns: the head element of @queue or NULL when the queue is empty.
- *
- * Since: 0.10.33
+ * Returns: (transfer none): the head element of @queue or NULL when
+ * the queue is empty.
  */
 gpointer
 gst_atomic_queue_peek (GstAtomicQueue * queue)
@@ -269,9 +264,8 @@
  *
  * Get the head element of the queue.
  *
- * Returns: the head element of @queue or NULL when the queue is empty.
- *
- * Since: 0.10.33
+ * Returns: (transfer full): the head element of @queue or NULL when
+ * the queue is empty.
  */
 gpointer
 gst_atomic_queue_pop (GstAtomicQueue * queue)
@@ -339,8 +333,6 @@
  * @data: the data
  *
  * Append @data to the tail of the queue.
- *
- * Since: 0.10.33
  */
 void
 gst_atomic_queue_push (GstAtomicQueue * queue, gpointer data)
@@ -403,8 +395,6 @@
  * Get the amount of items in the queue.
  *
  * Returns: the number of elements in the queue.
- *
- * Since: 0.10.33
  */
 guint
 gst_atomic_queue_length (GstAtomicQueue * queue)
diff --git a/gst/gstatomicqueue.h b/gst/gstatomicqueue.h
index e38e9b4..af6d693 100644
--- a/gst/gstatomicqueue.h
+++ b/gst/gstatomicqueue.h
@@ -27,18 +27,20 @@
 
 G_BEGIN_DECLS
 
+#define GST_TYPE_ATOMIC_QUEUE (gst_atomic_queue_get_type())
+
 /**
  * GstAtomicQueue:
  *
  * Opaque atomic data queue.
  *
  * Use the acessor functions to get the stored values.
- *
- * Since: 0.10.33
  */
 typedef struct _GstAtomicQueue GstAtomicQueue;
 
 
+GType              gst_atomic_queue_get_type    (void);
+
 GstAtomicQueue *   gst_atomic_queue_new         (guint initial_size) G_GNUC_MALLOC;
 
 void               gst_atomic_queue_ref         (GstAtomicQueue * queue);
diff --git a/gst/gstbin.c b/gst/gstbin.c
index d5ce5f6..b1e05bf 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -221,7 +221,7 @@
 static GstStateChangeReturn gst_bin_get_state_func (GstElement * element,
     GstState * state, GstState * pending, GstClockTime timeout);
 static void bin_handle_async_done (GstBin * bin, GstStateChangeReturn ret,
-    gboolean flag_pending, gboolean reset_time);
+    gboolean flag_pending, GstClockTime running_time);
 static void bin_handle_async_start (GstBin * bin);
 static void bin_push_state_continue (BinContinueData * data);
 static void bin_do_eos (GstBin * bin);
@@ -367,13 +367,11 @@
   gobject_class->get_property = gst_bin_get_property;
 
   /**
-   * GstBin:async-handling
+   * GstBin:async-handling:
    *
    * If set to #TRUE, the bin will handle asynchronous state changes.
    * This should be used only if the bin subclass is modifying the state
    * of its children on its own.
-   *
-   * Since: 0.10.13
    */
   g_object_class_install_property (gobject_class, PROP_ASYNC_HANDLING,
       g_param_spec_boolean ("async-handling", "Async Handling",
@@ -417,8 +415,6 @@
    * Connect to this signal if the default latency calculations are not
    * sufficient, like when you need different latencies for different sinks in
    * the same pipeline.
-   *
-   * Since: 0.10.22
    */
   gst_bin_signals[DO_LATENCY] =
       g_signal_new ("do-latency", G_TYPE_FROM_CLASS (klass),
@@ -427,7 +423,7 @@
       G_TYPE_BOOLEAN, 0, G_TYPE_NONE);
 
   /**
-   * GstBin:message-forward
+   * GstBin:message-forward:
    *
    * Forward all children messages, even those that would normally be filtered by
    * the bin. This can be interesting when one wants to be notified of the EOS
@@ -437,8 +433,6 @@
    * source. The structure of the message is named 'GstBinForwarded' and contains
    * a field named 'message' of type GST_TYPE_MESSAGE that contains the original
    * forwarded message.
-   *
-   * Since: 0.10.31
    */
   g_object_class_install_property (gobject_class, PROP_MESSAGE_FORWARD,
       g_param_spec_boolean ("message-forward", "Message Forward",
@@ -500,7 +494,8 @@
   bin->child_bus = bus;
   GST_DEBUG_OBJECT (bin, "using bus %" GST_PTR_FORMAT " to listen to children",
       bus);
-  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bin_bus_handler, bin);
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bin_bus_handler, bin,
+      NULL);
 
   bin->priv = GST_BIN_GET_PRIVATE (bin);
   bin->priv->asynchandling = DEFAULT_ASYNC_HANDLING;
@@ -1008,6 +1003,43 @@
   return result && n_eos > 0;
 }
 
+
+/* Check if the bin is STREAM_START. We do this by scanning all sinks and
+ * checking if they posted an STREAM_START message.
+ *
+ * call with bin LOCK */
+static gboolean
+is_stream_start (GstBin * bin, guint32 * seqnum)
+{
+  gboolean result;
+  gint n_stream_start = 0;
+  GList *walk, *msgs;
+
+  result = TRUE;
+  for (walk = bin->children; walk; walk = g_list_next (walk)) {
+    GstElement *element;
+
+    element = GST_ELEMENT_CAST (walk->data);
+    if (bin_element_is_sink (element, bin) == 0) {
+      /* check if element posted STREAM_START */
+      if ((msgs =
+              find_message (bin, GST_OBJECT_CAST (element),
+                  GST_MESSAGE_STREAM_START))) {
+        GST_DEBUG ("sink '%s' posted STREAM_START", GST_ELEMENT_NAME (element));
+        *seqnum = gst_message_get_seqnum (GST_MESSAGE_CAST (msgs->data));
+        n_stream_start++;
+      } else {
+        GST_DEBUG ("sink '%s' did not post STREAM_START yet",
+            GST_ELEMENT_NAME (element));
+        result = FALSE;
+        break;
+      }
+    }
+  }
+
+  return result;
+}
+
 static void
 unlink_pads (const GValue * item, gpointer user_data)
 {
@@ -1134,7 +1166,7 @@
     }
     case GST_STATE_CHANGE_NO_PREROLL:
       /* ignore all async elements we might have and commit our state */
-      bin_handle_async_done (bin, ret, FALSE, FALSE);
+      bin_handle_async_done (bin, ret, FALSE, GST_CLOCK_TIME_NONE);
       break;
     case GST_STATE_CHANGE_FAILURE:
       break;
@@ -1162,7 +1194,8 @@
       elem_name);
 
   g_signal_emit (bin, gst_bin_signals[ELEMENT_ADDED], 0, element);
-  gst_child_proxy_child_added ((GObject *) bin, (GObject *) element, elem_name);
+  gst_child_proxy_child_added ((GstChildProxy *) bin, (GObject *) element,
+      elem_name);
 
   g_free (elem_name);
 
@@ -1268,16 +1301,18 @@
 
   GST_DEBUG_OBJECT (bin, "element :%s", GST_ELEMENT_NAME (element));
 
-  GST_OBJECT_LOCK (element);
-  /* Check if the element is already being removed and immediately
-   * return */
-  if (G_UNLIKELY (GST_OBJECT_FLAG_IS_SET (element,
-              GST_ELEMENT_FLAG_UNPARENTING)))
-    goto already_removing;
+  GST_OBJECT_LOCK (bin);
 
-  GST_OBJECT_FLAG_SET (element, GST_ELEMENT_FLAG_UNPARENTING);
-  /* grab element name so we can print it */
+  GST_OBJECT_LOCK (element);
   elem_name = g_strdup (GST_ELEMENT_NAME (element));
+
+  if (GST_OBJECT_PARENT (element) != GST_OBJECT_CAST (bin))
+    goto not_in_bin;
+
+  /* remove the parent ref */
+  GST_OBJECT_PARENT (element) = NULL;
+
+  /* grab element name so we can print it */
   is_sink = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SINK);
   is_source = GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_SOURCE);
   provides_clock =
@@ -1286,12 +1321,6 @@
       GST_OBJECT_FLAG_IS_SET (element, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
   GST_OBJECT_UNLOCK (element);
 
-  /* unlink all linked pads */
-  it = gst_element_iterate_pads (element);
-  gst_iterator_foreach (it, (GstIteratorForeachFunction) unlink_pads, NULL);
-  gst_iterator_free (it);
-
-  GST_OBJECT_LOCK (bin);
   found = FALSE;
   othersink = FALSE;
   othersource = FALSE;
@@ -1454,7 +1483,7 @@
     else
       ret = GST_STATE_CHANGE_SUCCESS;
 
-    bin_handle_async_done (bin, ret, FALSE, FALSE);
+    bin_handle_async_done (bin, ret, FALSE, GST_CLOCK_TIME_NONE);
   } else {
     GST_DEBUG_OBJECT (bin,
         "recalc state preroll: %d, other async: %d, this async %d",
@@ -1474,30 +1503,25 @@
     GST_STATE_RETURN (bin) = ret;
   }
 no_state_recalc:
+  /* clear bus */
+  gst_element_set_bus (element, NULL);
+  /* Clear the clock we provided to the element */
+  gst_element_set_clock (element, NULL);
   GST_OBJECT_UNLOCK (bin);
 
   if (clock_message)
     gst_element_post_message (GST_ELEMENT_CAST (bin), clock_message);
 
+  /* unlink all linked pads */
+  it = gst_element_iterate_pads (element);
+  gst_iterator_foreach (it, (GstIteratorForeachFunction) unlink_pads, NULL);
+  gst_iterator_free (it);
+
   GST_CAT_INFO_OBJECT (GST_CAT_PARENTAGE, bin, "removed child \"%s\"",
       elem_name);
 
-  gst_element_set_bus (element, NULL);
-
-  /* Clear the clock we provided to the element */
-  gst_element_set_clock (element, NULL);
-
-  /* we ref here because after the _unparent() the element can be disposed
-   * and we still need it to reset the UNPARENTING flag and fire a signal. */
-  gst_object_ref (element);
-  gst_object_unparent (GST_OBJECT_CAST (element));
-
-  GST_OBJECT_LOCK (element);
-  GST_OBJECT_FLAG_UNSET (element, GST_ELEMENT_FLAG_UNPARENTING);
-  GST_OBJECT_UNLOCK (element);
-
   g_signal_emit (bin, gst_bin_signals[ELEMENT_REMOVED], 0, element);
-  gst_child_proxy_child_removed ((GObject *) bin, (GObject *) element,
+  gst_child_proxy_child_removed ((GstChildProxy *) bin, (GObject *) element,
       elem_name);
 
   g_free (elem_name);
@@ -1511,16 +1535,11 @@
   {
     g_warning ("Element '%s' is not in bin '%s'", elem_name,
         GST_ELEMENT_NAME (bin));
+    GST_OBJECT_UNLOCK (element);
     GST_OBJECT_UNLOCK (bin);
     g_free (elem_name);
     return FALSE;
   }
-already_removing:
-  {
-    GST_CAT_INFO_OBJECT (GST_CAT_PARENTAGE, bin, "already removing child");
-    GST_OBJECT_UNLOCK (element);
-    return FALSE;
-  }
 }
 
 /**
@@ -2188,6 +2207,10 @@
       gst_element_state_get_name (child_pending),
       gst_element_state_get_name (next));
 
+  /* always recurse into bins so that we can set the base time */
+  if (GST_IS_BIN (element))
+    goto do_state;
+
   /* Try not to change the state of elements that are already in the state we're
    * going to */
   if (child_current == next && child_pending == GST_STATE_VOID_PENDING) {
@@ -2251,6 +2274,7 @@
     }
   }
 
+do_state:
   GST_OBJECT_LOCK (bin);
   /* the element was busy with an upwards async state change, we must wait for
    * an ASYNC_DONE message before we attemp to change the state. */
@@ -2369,7 +2393,7 @@
   GstIterator *iter;
   gboolean fold_ok;
 
-  GST_DEBUG_OBJECT (bin, "src_pads_activate with active %d", active);
+  GST_DEBUG_OBJECT (bin, "%s pads", active ? "activate" : "deactivate");
 
   iter = gst_element_iterate_src_pads ((GstElement *) bin);
   fold_ok = iterator_activate_fold_with_resync (iter, &active);
@@ -2377,14 +2401,14 @@
   if (G_UNLIKELY (!fold_ok))
     goto failed;
 
-  GST_DEBUG_OBJECT (bin, "pads_activate successful");
+  GST_DEBUG_OBJECT (bin, "pad %sactivation successful", active ? "" : "de");
 
   return TRUE;
 
   /* ERRORS */
 failed:
   {
-    GST_DEBUG_OBJECT (bin, "source pads_activate failed");
+    GST_DEBUG_OBJECT (bin, "pad %sactivation failed", active ? "" : "de");
     return FALSE;
   }
 }
@@ -2403,8 +2427,6 @@
  * calculations will be performed.
  *
  * Returns: %TRUE if the latency could be queried and reconfigured.
- *
- * Since: 0.10.22.
  */
 gboolean
 gst_bin_recalculate_latency (GstBin * bin)
@@ -2525,6 +2547,8 @@
       GST_DEBUG_OBJECT (element, "clearing EOS elements");
       bin_remove_messages (bin, NULL, GST_MESSAGE_EOS);
       bin->priv->posted_eos = FALSE;
+      if (current == GST_STATE_READY)
+        bin_remove_messages (bin, NULL, GST_MESSAGE_STREAM_START);
       GST_OBJECT_UNLOCK (bin);
       if (current == GST_STATE_READY)
         if (!(gst_bin_src_pads_activate (bin, TRUE)))
@@ -2704,7 +2728,8 @@
     bin_remove_messages (bin, NULL, GST_MESSAGE_ASYNC_DONE);
 
     GST_DEBUG_OBJECT (bin, "async elements commited");
-    bin_handle_async_done (bin, GST_STATE_CHANGE_SUCCESS, FALSE, FALSE);
+    bin_handle_async_done (bin, GST_STATE_CHANGE_SUCCESS, FALSE,
+        GST_CLOCK_TIME_NONE);
   }
 
 state_end:
@@ -2963,7 +2988,7 @@
  */
 static void
 bin_handle_async_done (GstBin * bin, GstStateChangeReturn ret,
-    gboolean flag_pending, gboolean reset_time)
+    gboolean flag_pending, GstClockTime running_time)
 {
   GstState current, pending, target;
   GstStateChangeReturn old_ret;
@@ -2991,7 +3016,7 @@
   target = GST_STATE_TARGET (bin);
   pending = GST_STATE_PENDING (bin) = target;
 
-  amessage = gst_message_new_async_done (GST_OBJECT_CAST (bin), reset_time);
+  amessage = gst_message_new_async_done (GST_OBJECT_CAST (bin), running_time);
 
   old_state = GST_STATE (bin);
   /* this is the state we should go to next */
@@ -3132,6 +3157,35 @@
   }
 }
 
+static void
+bin_do_stream_start (GstBin * bin)
+{
+  guint32 seqnum = 0;
+  gboolean stream_start;
+
+  GST_OBJECT_LOCK (bin);
+  /* If all sinks are STREAM_START we forward the STREAM_START message
+   * to the parent bin or application
+   */
+  stream_start = is_stream_start (bin, &seqnum);
+  GST_OBJECT_UNLOCK (bin);
+
+  if (stream_start) {
+    GstMessage *tmessage;
+
+    GST_OBJECT_LOCK (bin);
+    bin_remove_messages (bin, NULL, GST_MESSAGE_STREAM_START);
+    GST_OBJECT_UNLOCK (bin);
+
+    tmessage = gst_message_new_stream_start (GST_OBJECT_CAST (bin));
+    gst_message_set_seqnum (tmessage, seqnum);
+    GST_DEBUG_OBJECT (bin,
+        "all sinks posted STREAM_START, posting seqnum #%" G_GUINT32_FORMAT,
+        seqnum);
+    gst_element_post_message (GST_ELEMENT_CAST (bin), tmessage);
+  }
+}
+
 /* must be called with the object lock. This function releases the lock to post
  * the message. */
 static void
@@ -3251,6 +3305,18 @@
       bin_do_eos (bin);
       break;
     }
+    case GST_MESSAGE_STREAM_START:
+    {
+
+      /* collect all stream_start messages from the children */
+      GST_OBJECT_LOCK (bin);
+      /* ref message for future use  */
+      bin_replace_message (bin, message, GST_MESSAGE_STREAM_START);
+      GST_OBJECT_UNLOCK (bin);
+
+      bin_do_stream_start (bin);
+      break;
+    }
     case GST_MESSAGE_STATE_DIRTY:
     {
       GST_WARNING_OBJECT (bin, "received deprecated STATE_DIRTY message");
@@ -3421,13 +3487,13 @@
     }
     case GST_MESSAGE_ASYNC_DONE:
     {
-      gboolean reset_time;
+      GstClockTime running_time;
       GstState target;
 
       GST_DEBUG_OBJECT (bin, "ASYNC_DONE message %p, %s", message,
           src ? GST_OBJECT_NAME (src) : "(NULL)");
 
-      gst_message_parse_async_done (message, &reset_time);
+      gst_message_parse_async_done (message, &running_time);
 
       GST_OBJECT_LOCK (bin);
       bin_do_message_forward (bin, message);
@@ -3449,7 +3515,8 @@
          * need to set the pending_done flag so that at the end of the state
          * change we can see if we need to verify pending async elements, hence
          * the TRUE argument here. */
-        bin_handle_async_done (bin, GST_STATE_CHANGE_SUCCESS, TRUE, reset_time);
+        bin_handle_async_done (bin, GST_STATE_CHANGE_SUCCESS, TRUE,
+            running_time);
       } else {
         GST_DEBUG_OBJECT (bin, "there are more async elements pending");
       }
@@ -3543,6 +3610,12 @@
 
     GST_DEBUG_OBJECT (item, "got duration %" G_GINT64_FORMAT, duration);
 
+    if (duration == -1) {
+      /* duration query succeeded, but duration is unknown */
+      fold->max = -1;
+      return FALSE;
+    }
+
     if (duration > fold->max)
       fold->max = duration;
   }
diff --git a/gst/gstbin.h b/gst/gstbin.h
index 19c7634..6ae7404 100644
--- a/gst/gstbin.h
+++ b/gst/gstbin.h
@@ -81,10 +81,10 @@
 /**
  * GstBin:
  * @numchildren: the number of children in this bin
- * @children: the list of children in this bin
+ * @children: (element-type Gst.Element): the list of children in this bin
  * @children_cookie: updated whenever @children changes
  * @child_bus: internal bus for handling child messages
- * @messages: queued and cached messages
+ * @messages: (element-type Gst.Message): queued and cached messages
  * @polling: the bin is currently calculating its state
  * @state_dirty: the bin needs to recalculate its state (deprecated)
  * @clock_dirty: the bin needs to select a new clock
@@ -152,7 +152,7 @@
   void		(*handle_message)	(GstBin *bin, GstMessage *message);
 
   /*< private >*/
-  /* signal added 0.10.22 */
+  /* signal */
   gboolean	(*do_latency)           (GstBin *bin);
 
   /*< private >*/
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c
index b9783c5..385dde6 100644
--- a/gst/gstbuffer.c
+++ b/gst/gstbuffer.c
@@ -138,6 +138,7 @@
 
 #define GST_BUFFER_MEM_MAX         16
 
+#define GST_BUFFER_SLICE_SIZE(b)   (((GstBufferImpl *)(b))->slice_size)
 #define GST_BUFFER_MEM_LEN(b)      (((GstBufferImpl *)(b))->len)
 #define GST_BUFFER_MEM_ARRAY(b)    (((GstBufferImpl *)(b))->mem)
 #define GST_BUFFER_MEM_PTR(b,i)    (((GstBufferImpl *)(b))->mem[i])
@@ -148,6 +149,8 @@
 {
   GstBuffer buffer;
 
+  gsize slice_size;
+
   /* the memory blocks */
   guint len;
   GstMemory *mem[GST_BUFFER_MEM_MAX];
@@ -200,6 +203,9 @@
 {
   GstMemory **mem, *result;
 
+  GST_CAT_LOG (GST_CAT_BUFFER, "buffer %p, idx %u, length %u", buffer, idx,
+      length);
+
   mem = GST_BUFFER_MEM_ARRAY (buffer);
 
   if (G_UNLIKELY (length == 0)) {
@@ -213,8 +219,7 @@
     size = gst_buffer_get_size (buffer);
 
     if (G_UNLIKELY (_is_span (mem + idx, length, &poffset, &parent))) {
-
-      if (parent->flags & GST_MEMORY_FLAG_NO_SHARE) {
+      if (GST_MEMORY_IS_NO_SHARE (parent)) {
         GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy for merge %p", parent);
         result = gst_memory_copy (parent, poffset, size);
       } else {
@@ -255,15 +260,22 @@
   gsize end, i;
 
   end = idx + length;
-  GST_LOG ("buffer %p replace %u-%" G_GSIZE_FORMAT " with memory %p", buffer,
-      idx, end, mem);
+
+  GST_CAT_LOG (GST_CAT_BUFFER,
+      "buffer %p replace %u-%" G_GSIZE_FORMAT " with memory %p", buffer, idx,
+      end, mem);
 
   /* unref old memory */
-  for (i = idx; i < end; i++)
-    gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
+  for (i = idx; i < end; i++) {
+    GstMemory *old = GST_BUFFER_MEM_PTR (buffer, i);
+
+    gst_memory_unlock (old, GST_LOCK_FLAG_EXCLUSIVE);
+    gst_memory_unref (old);
+  }
 
   if (mem != NULL) {
     /* replace with single memory */
+    gst_memory_lock (mem, GST_LOCK_FLAG_EXCLUSIVE);
     GST_BUFFER_MEM_PTR (buffer, idx) = mem;
     idx++;
     length--;
@@ -277,10 +289,13 @@
 }
 
 static inline void
-_memory_add (GstBuffer * buffer, guint idx, GstMemory * mem)
+_memory_add (GstBuffer * buffer, gint idx, GstMemory * mem, gboolean lock)
 {
   guint i, len = GST_BUFFER_MEM_LEN (buffer);
 
+  GST_CAT_LOG (GST_CAT_BUFFER, "buffer %p, idx %d, mem %p, lock %d", buffer,
+      idx, mem, lock);
+
   if (G_UNLIKELY (len >= GST_BUFFER_MEM_MAX)) {
     /* too many buffer, span them. */
     /* FIXME, there is room for improvement here: We could only try to merge
@@ -301,6 +316,8 @@
     GST_BUFFER_MEM_PTR (buffer, i) = GST_BUFFER_MEM_PTR (buffer, i - 1);
   }
   /* and insert the new buffer */
+  if (lock)
+    gst_memory_lock (mem, GST_LOCK_FLAG_EXCLUSIVE);
   GST_BUFFER_MEM_PTR (buffer, idx) = mem;
   GST_BUFFER_MEM_LEN (buffer) = len + 1;
 }
@@ -402,7 +419,7 @@
         gsize tocopy;
 
         tocopy = MIN (bsize - skip, left);
-        if (mem->flags & GST_MEMORY_FLAG_NO_SHARE) {
+        if (GST_MEMORY_IS_NO_SHARE (mem)) {
           /* no share, always copy then */
           mem = gst_memory_copy (mem, skip, tocopy);
           skip = 0;
@@ -413,7 +430,7 @@
         } else {
           mem = gst_memory_ref (mem);
         }
-        _memory_add (dest, -1, mem);
+        _memory_add (dest, -1, mem, TRUE);
         left -= tocopy;
       }
     }
@@ -505,31 +522,35 @@
 
   /* get the size, when unreffing the memory, we could also unref the buffer
    * itself */
-  msize = GST_MINI_OBJECT_SIZE (buffer);
+  msize = GST_BUFFER_SLICE_SIZE (buffer);
 
   /* free our memory */
   len = GST_BUFFER_MEM_LEN (buffer);
-  for (i = 0; i < len; i++)
+  for (i = 0; i < len; i++) {
+    gst_memory_unlock (GST_BUFFER_MEM_PTR (buffer, i), GST_LOCK_FLAG_EXCLUSIVE);
     gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i));
+  }
 
   /* we set msize to 0 when the buffer is part of the memory block */
-  if (msize)
+  if (msize) {
+#ifdef USE_POISONING
+    memset (buffer, 0xff, msize);
+#endif
     g_slice_free1 (msize, buffer);
-  else
+  } else {
     gst_memory_unref (GST_BUFFER_BUFMEM (buffer));
+  }
 }
 
 static void
 gst_buffer_init (GstBufferImpl * buffer, gsize size)
 {
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (buffer), _gst_buffer_type, size);
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (buffer), 0, _gst_buffer_type,
+      (GstMiniObjectCopyFunction) _gst_buffer_copy,
+      (GstMiniObjectDisposeFunction) _gst_buffer_dispose,
+      (GstMiniObjectFreeFunction) _gst_buffer_free);
 
-  buffer->buffer.mini_object.copy =
-      (GstMiniObjectCopyFunction) _gst_buffer_copy;
-  buffer->buffer.mini_object.dispose =
-      (GstMiniObjectDisposeFunction) _gst_buffer_dispose;
-  buffer->buffer.mini_object.free =
-      (GstMiniObjectFreeFunction) _gst_buffer_free;
+  GST_BUFFER_SLICE_SIZE (buffer) = size;
 
   GST_BUFFER (buffer)->pool = NULL;
   GST_BUFFER_PTS (buffer) = GST_CLOCK_TIME_NONE;
@@ -607,7 +628,7 @@
   newbuf = gst_buffer_new ();
 
   if (mem != NULL)
-    _memory_add (newbuf, -1, mem);
+    _memory_add (newbuf, -1, mem, TRUE);
 
   GST_CAT_LOG (GST_CAT_BUFFER,
       "new buffer %p of size %" G_GSIZE_FORMAT " from allocator %p", newbuf,
@@ -626,7 +647,7 @@
   if (size > 0) {
     mem = gst_memory_new_wrapped (0, data + sizeof (GstBufferImpl), NULL,
         size, 0, size);
-    _memory_add (newbuf, -1, mem);
+    _memory_add (newbuf, -1, mem, TRUE);
   }
 #endif
 
@@ -653,7 +674,7 @@
   GST_BUFFER_BUFMEM (newbuf) = mem;
 
   if (size > 0)
-    _memory_add (newbuf, -1, gst_memory_ref (mem));
+    _memory_add (newbuf, -1, gst_memory_ref (mem), TRUE);
 #endif
 
   return newbuf;
@@ -738,6 +759,22 @@
 }
 
 /**
+ * gst_buffer_prepend_memory:
+ * @b: a #GstBuffer.
+ * @m: (transfer full): a #GstMemory.
+ *
+ * Prepend the memory block @m to @b. This function takes ownership
+ * of @m and thus doesn't increase its refcount.
+ */
+/**
+ * gst_buffer_append_memory:
+ * @b: a #GstBuffer.
+ * @m: (transfer full): a #GstMemory.
+ *
+ * Append the memory block @m to @b. This function takes ownership
+ * of @m and thus doesn't increase its refcount.
+ */
+/**
  * gst_buffer_insert_memory:
  * @buffer: a #GstBuffer.
  * @idx: the index to add the memory at, or -1 to append it to the end
@@ -755,7 +792,7 @@
   g_return_if_fail (idx == -1 ||
       (idx >= 0 && idx <= GST_BUFFER_MEM_LEN (buffer)));
 
-  _memory_add (buffer, idx, mem);
+  _memory_add (buffer, idx, mem, TRUE);
 }
 
 static GstMemory *
@@ -764,18 +801,20 @@
 {
   GstMemory *mem, *mapped;
 
-  mem = GST_BUFFER_MEM_PTR (buffer, idx);
+  mem = gst_memory_ref (GST_BUFFER_MEM_PTR (buffer, idx));
 
   mapped = gst_memory_make_mapped (mem, info, flags);
-  if (!mapped)
-    return NULL;
 
   if (mapped != mem) {
+    /* memory changed, lock new memory */
+    gst_memory_lock (mapped, GST_LOCK_FLAG_EXCLUSIVE);
     GST_BUFFER_MEM_PTR (buffer, idx) = mapped;
-    gst_memory_unref (mem);
-    mem = mapped;
+    /* unlock old memory */
+    gst_memory_unlock (mem, GST_LOCK_FLAG_EXCLUSIVE);
   }
-  return mem;
+  gst_memory_unref (mem);
+
+  return mapped;
 }
 
 /**
@@ -788,7 +827,7 @@
  * any call that modifies the memory in @buffer.
  *
  * Since this call does not influence the refcount of the memory,
- * gst_memory_is_exclusive() can be used to check if @buffer is the sole owner
+ * gst_memory_is_writable() can be used to check if @buffer is the sole owner
  * of the returned memory.
  *
  * Returns: (transfer none): the #GstMemory at @idx.
@@ -806,6 +845,26 @@
 }
 
 /**
+ * gst_buffer_get_memory:
+ * @b: a #GstBuffer.
+ * @i: an index
+ *
+ * Get the memory block at index @i in @buffer.
+ *
+ * Returns: (transfer full): a #GstMemory that contains the data of the
+ * memory block at @idx. Use gst_memory_unref () after usage.
+ */
+/**
+ * gst_buffer_get_all_memory:
+ * @b: a #GstBuffer.
+ *
+ * Get all the memory block in @buffer. The memory blocks will be merged
+ * into one large #GstMemory.
+ *
+ * Returns: (transfer full): a #GstMemory that contains the merged memory.
+ * Use gst_memory_unref () after usage.
+ */
+/**
  * gst_buffer_get_memory_range:
  * @buffer: a #GstBuffer.
  * @idx: an index
@@ -824,7 +883,7 @@
 {
   guint len;
 
-  GST_DEBUG ("idx %u, length %d", idx, length);
+  GST_CAT_DEBUG (GST_CAT_BUFFER, "idx %u, length %d", idx, length);
 
   g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
   len = GST_BUFFER_MEM_LEN (buffer);
@@ -838,6 +897,21 @@
 }
 
 /**
+ * gst_buffer_replace_memory:
+ * @b: a #GstBuffer.
+ * @i: an index
+ * @m: (transfer full): a #GstMemory
+ *
+ * Replaces the memory block at index @i in @b with @m.
+ */
+/**
+ * gst_buffer_replace_all_memory:
+ * @b: a #GstBuffer.
+ * @m: (transfer full): a #GstMemory
+ *
+ * Replaces all memory in @b with @m.
+ */
+/**
  * gst_buffer_replace_memory_range:
  * @buffer: a #GstBuffer.
  * @idx: an index
@@ -859,6 +933,9 @@
 
   g_return_if_fail (GST_IS_BUFFER (buffer));
   g_return_if_fail (gst_buffer_is_writable (buffer));
+
+  GST_CAT_DEBUG (GST_CAT_BUFFER, "idx %u, length %d, %p", idx, length, mem);
+
   len = GST_BUFFER_MEM_LEN (buffer);
   g_return_if_fail ((len == 0 && idx == 0 && length == -1) ||
       (length == -1 && idx < len) || (length > 0 && length + idx <= len));
@@ -870,6 +947,19 @@
 }
 
 /**
+ * gst_buffer_remove_memory:
+ * @b: a #GstBuffer.
+ * @i: an index
+ *
+ * Remove the memory block in @b at index @i.
+ */
+/**
+ * gst_buffer_remove_all_memory:
+ * @b: a #GstBuffer.
+ *
+ * Remove all the memory blocks in @b.
+ */
+/**
  * gst_buffer_remove_memory_range:
  * @buffer: a #GstBuffer.
  * @idx: an index
@@ -887,6 +977,8 @@
   g_return_if_fail (GST_IS_BUFFER (buffer));
   g_return_if_fail (gst_buffer_is_writable (buffer));
 
+  GST_CAT_DEBUG (GST_CAT_BUFFER, "idx %u, length %d", idx, length);
+
   len = GST_BUFFER_MEM_LEN (buffer);
   g_return_if_fail ((len == 0 && idx == 0 && length == -1) ||
       (length == -1 && idx < len) || length + idx <= len);
@@ -971,12 +1063,36 @@
 }
 
 /**
+ * gst_buffer_get_sizes:
+ * @b: a #GstBuffer.
+ * @of: (out): a pointer to the offset
+ * @ms: (out): a pointer to the maxsize
+ *
+ * Get the total size of the memory blocks in @b.
+ *
+ * When not %NULL, @of will contain the offset of the data in the first
+ * memory block in @buffer and @maxsize will contain the sum of the size
+ * and @of and the amount of extra padding on the last memory block.
+ * @of and @ms can be used to resize the buffer memory blocks with
+ * gst_buffer_resize().
+ *
+ * Returns: total size of the memory blocks in @b.
+ */
+/**
+ * gst_buffer_get_size:
+ * @b: a #GstBuffer.
+ *
+ * Get the total size of the memory blocks in @b.
+ *
+ * Returns: total size of the memory blocks in @b.
+ */
+/**
  * gst_buffer_get_sizes_range:
  * @buffer: a #GstBuffer.
  * @idx: an index
  * @length: a length
- * @offset: a pointer to the offset
- * @maxsize: a pointer to the maxsize
+ * @offset: (out): a pointer to the offset
+ * @maxsize: (out): a pointer to the maxsize
  *
  * Get the total size of @length memory blocks stating from @idx in @buffer.
  *
@@ -987,7 +1103,7 @@
  * @offset and @maxsize can be used to resize the buffer memory blocks with
  * gst_buffer_resize_range().
  *
- * Returns: total size @length memory blocks starting at @idx in @buffer.
+ * Returns: total size of @length memory blocks starting at @idx in @buffer.
  */
 gsize
 gst_buffer_get_sizes_range (GstBuffer * buffer, guint idx, gint length,
@@ -1043,6 +1159,21 @@
 }
 
 /**
+ * gst_buffer_resize:
+ * @b: a #GstBuffer.
+ * @of: the offset adjustement
+ * @s: the new size or -1 to just adjust the offset
+ *
+ * Set the offset and total size of the memory blocks in @b.
+ */
+/**
+ * gst_buffer_set_size:
+ * @b: a #GstBuffer.
+ * @s: the new size
+ *
+ * Set the total size of the memory blocks in @b.
+ */
+/**
  * gst_buffer_resize_range:
  * @buffer: a #GstBuffer.
  * @idx: an index
@@ -1059,7 +1190,6 @@
 {
   guint i, len, end;
   gsize bsize, bufsize, bufoffs, bufmax;
-  GstMemory *mem;
 
   g_return_if_fail (gst_buffer_is_writable (buffer));
   g_return_if_fail (size >= -1);
@@ -1093,6 +1223,7 @@
   end = idx + length;
   /* copy and trim */
   for (i = idx; i < end; i++) {
+    GstMemory *mem;
     gsize left, noffs;
 
     mem = GST_BUFFER_MEM_PTR (buffer, i);
@@ -1113,28 +1244,50 @@
       left = MIN (bsize - offset, size);
 
     if (offset != 0 || left != bsize) {
-      if (gst_memory_is_exclusive (mem)) {
+      if (gst_memory_is_writable (mem)) {
         gst_memory_resize (mem, offset, left);
       } else {
-        GstMemory *tmp;
+        GstMemory *newmem;
 
-        if (mem->flags & GST_MEMORY_FLAG_NO_SHARE)
-          tmp = gst_memory_copy (mem, offset, left);
+        if (GST_MEMORY_IS_NO_SHARE (mem))
+          newmem = gst_memory_copy (mem, offset, left);
         else
-          tmp = gst_memory_share (mem, offset, left);
+          newmem = gst_memory_share (mem, offset, left);
 
+        gst_memory_lock (newmem, GST_LOCK_FLAG_EXCLUSIVE);
+        GST_BUFFER_MEM_PTR (buffer, i) = newmem;
+        gst_memory_unlock (mem, GST_LOCK_FLAG_EXCLUSIVE);
         gst_memory_unref (mem);
-        mem = tmp;
       }
     }
+
     offset = noffs;
     size -= left;
-
-    GST_BUFFER_MEM_PTR (buffer, i) = mem;
   }
 }
 
 /**
+ * gst_buffer_map:
+ * @b: a #GstBuffer.
+ * @i: (out): info about the mapping
+ * @f: flags for the mapping
+ *
+ * This function fills @i with the #GstMapInfo of all merged memory blocks
+ * in @buffer.
+ *
+ * @flags describe the desired access of the memory. When @flags is
+ * #GST_MAP_WRITE, @buffer should be writable (as returned from
+ * gst_buffer_is_writable()).
+ *
+ * When @buffer is writable but the memory isn't, a writable copy will
+ * automatically be created and returned. The readonly copy of the buffer memory
+ * will then also be replaced with this writable copy.
+ *
+ * The memory in @i should be unmapped with gst_buffer_unmap() after usage.
+ *
+ * Returns: %TRUE if the map succeeded and @i contains valid data.
+ */
+/**
  * gst_buffer_map_range:
  * @buffer: a #GstBuffer.
  * @idx: an index
@@ -1145,6 +1298,7 @@
  * This function fills @info with the #GstMapInfo of @length merged memory blocks
  * starting at @idx in @buffer. When @length is -1, all memory blocks starting
  * from @idx are merged and mapped.
+ *
  * @flags describe the desired access of the memory. When @flags is
  * #GST_MAP_WRITE, @buffer should be writable (as returned from
  * gst_buffer_is_writable()).
@@ -1155,7 +1309,7 @@
  *
  * The memory in @info should be unmapped with gst_buffer_unmap() after usage.
  *
- * Returns: (transfer full): %TRUE if the map succeeded and @info contains valid
+ * Returns: %TRUE if the map succeeded and @info contains valid
  * data.
  */
 gboolean
@@ -1173,6 +1327,9 @@
       (length == -1 && idx < len) || (length > 0
           && length + idx <= len), FALSE);
 
+  GST_CAT_LOG (GST_CAT_BUFFER, "buffer %p, idx %u, length %d, flags %04x",
+      buffer, idx, length, flags);
+
   write = (flags & GST_MAP_WRITE) != 0;
   writable = gst_buffer_is_writable (buffer);
 
@@ -1275,6 +1432,10 @@
   g_return_val_if_fail (gst_buffer_is_writable (buffer), 0);
   g_return_val_if_fail (src != NULL, 0);
 
+  GST_CAT_LOG (GST_CAT_BUFFER,
+      "buffer %p, offset %" G_GSIZE_FORMAT ", size %" G_GSIZE_FORMAT, buffer,
+      offset, size);
+
   len = GST_BUFFER_MEM_LEN (buffer);
   left = size;
 
@@ -1321,6 +1482,10 @@
   g_return_val_if_fail (GST_IS_BUFFER (buffer), 0);
   g_return_val_if_fail (dest != NULL, 0);
 
+  GST_CAT_LOG (GST_CAT_BUFFER,
+      "buffer %p, offset %" G_GSIZE_FORMAT ", size %" G_GSIZE_FORMAT, buffer,
+      offset, size);
+
   len = GST_BUFFER_MEM_LEN (buffer);
   left = size;
 
@@ -1368,6 +1533,10 @@
   g_return_val_if_fail (GST_IS_BUFFER (buffer), 0);
   g_return_val_if_fail (mem != NULL, 0);
 
+  GST_CAT_LOG (GST_CAT_BUFFER,
+      "buffer %p, offset %" G_GSIZE_FORMAT ", size %" G_GSIZE_FORMAT, buffer,
+      offset, size);
+
   len = GST_BUFFER_MEM_LEN (buffer);
 
   for (i = 0; i < len && size > 0 && res == 0; i++) {
@@ -1412,6 +1581,10 @@
   g_return_val_if_fail (GST_IS_BUFFER (buffer), 0);
   g_return_val_if_fail (gst_buffer_is_writable (buffer), 0);
 
+  GST_CAT_LOG (GST_CAT_BUFFER,
+      "buffer %p, offset %" G_GSIZE_FORMAT ", val %02x, size %" G_GSIZE_FORMAT,
+      buffer, offset, val, size);
+
   len = GST_BUFFER_MEM_LEN (buffer);
   left = size;
 
@@ -1488,8 +1661,23 @@
  * Returns: (transfer full): the new #GstBuffer that contains the memory
  *     of the two source buffers.
  */
+/**
+ * gst_buffer_append_region:
+ * @buf1: (transfer full): the first source #GstBuffer to append.
+ * @buf2: (transfer full): the second source #GstBuffer to append.
+ * @offset: the offset in @buf2
+ * @size: the size or -1 of @buf2
+ *
+ * Append @size bytes at @offset from @buf2 to @buf1. The result buffer will
+ * contain a concatenation of the memory of @buf1 and the requested region of
+ * @buf2.
+ *
+ * Returns: (transfer full): the new #GstBuffer that contains the memory
+ *     of the two source buffers.
+ */
 GstBuffer *
-gst_buffer_append (GstBuffer * buf1, GstBuffer * buf2)
+gst_buffer_append_region (GstBuffer * buf1, GstBuffer * buf2, gssize offset,
+    gssize size)
 {
   gsize i, len;
 
@@ -1499,25 +1687,15 @@
   buf1 = gst_buffer_make_writable (buf1);
   buf2 = gst_buffer_make_writable (buf2);
 
+  gst_buffer_resize (buf2, offset, size);
+
   len = GST_BUFFER_MEM_LEN (buf2);
   for (i = 0; i < len; i++) {
     GstMemory *mem;
 
     mem = GST_BUFFER_MEM_PTR (buf2, i);
     GST_BUFFER_MEM_PTR (buf2, i) = NULL;
-    _memory_add (buf1, -1, mem);
-  }
-
-  /* we can calculate the duration too. Also make sure we're not messing
-   * with invalid DURATIONS */
-  if (GST_BUFFER_DURATION_IS_VALID (buf1) &&
-      GST_BUFFER_DURATION_IS_VALID (buf2)) {
-    /* add duration */
-    GST_BUFFER_DURATION (buf1) += GST_BUFFER_DURATION (buf2);
-  }
-  if (GST_BUFFER_OFFSET_END_IS_VALID (buf2)) {
-    /* set offset_end */
-    GST_BUFFER_OFFSET_END (buf1) = GST_BUFFER_OFFSET_END (buf2);
+    _memory_add (buf1, -1, mem, FALSE);
   }
 
   GST_BUFFER_MEM_LEN (buf2) = 0;
@@ -1534,7 +1712,7 @@
  * Get the metadata for @api on buffer. When there is no such
  * metadata, NULL is returned.
  *
- * Returns: the metadata for @api on @buffer.
+ * Returns: (transfer none): the metadata for @api on @buffer.
  */
 GstMeta *
 gst_buffer_get_meta (GstBuffer * buffer, GType api)
@@ -1663,7 +1841,8 @@
  *
  * @state will be updated with an opage state pointer 
  *
- * Returns: The next #GstMeta or %NULL when there are no more items.
+ * Returns: (transfer none): The next #GstMeta or %NULL when there are
+ * no more items.
  */
 GstMeta *
 gst_buffer_iterate_meta (GstBuffer * buffer, gpointer * state)
@@ -1698,21 +1877,23 @@
  * @func can modify the passed meta pointer or its contents. The return value
  * of @func define if this function returns or if the remaining metadata items
  * in the buffer should be skipped.
+ *
+ * Returns: %FALSE when @func returned %FALSE for one of the metadata.
  */
-void
+gboolean
 gst_buffer_foreach_meta (GstBuffer * buffer, GstBufferForeachMetaFunc func,
     gpointer user_data)
 {
   GstMetaItem *walk, *prev, *next;
+  gboolean res = TRUE;
 
-  g_return_if_fail (buffer != NULL);
-  g_return_if_fail (func != NULL);
+  g_return_val_if_fail (buffer != NULL, FALSE);
+  g_return_val_if_fail (func != NULL, FALSE);
 
   /* find the metadata and delete */
   prev = GST_BUFFER_META (buffer);
   for (walk = prev; walk; walk = next) {
     GstMeta *m, *new;
-    gboolean res;
 
     m = new = &walk->meta;
     next = walk->next;
@@ -1725,8 +1906,9 @@
       GST_CAT_DEBUG (GST_CAT_BUFFER, "remove metadata %p (%s)", m,
           g_type_name (info->type));
 
-      g_return_if_fail (gst_buffer_is_writable (buffer));
-      g_return_if_fail (!GST_META_FLAG_IS_SET (m, GST_META_FLAG_LOCKED));
+      g_return_val_if_fail (gst_buffer_is_writable (buffer), FALSE);
+      g_return_val_if_fail (!GST_META_FLAG_IS_SET (m, GST_META_FLAG_LOCKED),
+          FALSE);
 
       /* remove from list */
       if (GST_BUFFER_META (buffer) == walk)
@@ -1744,4 +1926,5 @@
     if (!res)
       break;
   }
+  return res;
 }
diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h
index 5b0a854..772e0a1 100644
--- a/gst/gstbuffer.h
+++ b/gst/gstbuffer.h
@@ -26,7 +26,7 @@
 
 #include <gst/gstminiobject.h>
 #include <gst/gstclock.h>
-#include <gst/gstmemory.h>
+#include <gst/gstallocator.h>
 
 G_BEGIN_DECLS
 
@@ -163,8 +163,6 @@
  * @buffer: a #GstBuffer
  *
  * Tests if the buffer marks a discontinuity in the stream.
- *
- * Since: 0.10.9
  */
 #define GST_BUFFER_IS_DISCONT(buffer)   (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))
 
@@ -276,16 +274,9 @@
 #define     gst_buffer_prepend_memory(b,m)     gst_buffer_insert_memory ((b), 0, (m))
 #define     gst_buffer_append_memory(b,m)      gst_buffer_insert_memory ((b), -1, (m))
 #define     gst_buffer_replace_memory(b,i,m)   gst_buffer_replace_memory_range ((b), (i), 1, (m))
-#define     gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory ((b), 0, -1, (m))
+#define     gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory_range ((b), 0, -1, (m))
 #define     gst_buffer_get_memory(b,i)         gst_buffer_get_memory_range ((b), (i), 1)
 #define     gst_buffer_get_all_memory(b)       gst_buffer_get_memory_range ((b), 0, -1)
-/**
- * gst_buffer_remove_memory:
- * @b: a #GstBuffer.
- * @i: an index
- *
- * Remove the memory block in @b at @i.
- */
 #define     gst_buffer_remove_memory(b,i)      gst_buffer_remove_memory_range ((b), (i), 1)
 #define     gst_buffer_remove_all_memory(b)    gst_buffer_remove_memory_range ((b), 0, -1)
 
@@ -307,22 +298,8 @@
                                             gssize offset, gssize size);
 
 #define     gst_buffer_get_sizes(b,of,ms)  gst_buffer_get_sizes_range ((b), 0, -1, (of), (ms))
-/**
- * gst_buffer_get_size:
- * @b: a #GstBuffer.
- *
- * Get the size of @b.
- */
 #define     gst_buffer_get_size(b)         gst_buffer_get_sizes_range ((b), 0, -1, NULL, NULL)
 #define     gst_buffer_resize(b,of,s)      gst_buffer_resize_range ((b), 0, -1, (of), (s))
-/**
- * gst_buffer_set_size:
- * @b: a #GstBuffer.
- * @s: a new size
- *
- * Set the size of @b to @s. This will remove or trim the memory blocks
- * in the buffer.
- */
 #define     gst_buffer_set_size(b,s)       gst_buffer_resize_range ((b), 0, -1, 0, (s))
 
 gboolean    gst_buffer_map_range           (GstBuffer *buffer, guint idx, gint length,
@@ -340,9 +317,8 @@
  * Increases the refcount of the given buffer by one.
  *
  * Note that the refcount affects the writeability
- * of @buf and its metadata, see gst_buffer_is_writable() and
- * gst_buffer_is_metadata_writable(). It is
- * important to note that keeping additional references to
+ * of @buf and its metadata, see gst_buffer_is_writable().
+ * It is important to note that keeping additional references to
  * GstBuffer instances can potentially increase the number
  * of memcpy operations in a pipeline.
  *
@@ -447,10 +423,9 @@
  * gst_buffer_is_writable:
  * @buf: a #GstBuffer
  *
- * Tests if you can safely write data into a buffer's data array or validly
- * modify the caps and timestamp metadata. Metadata in a GstBuffer is always
- * writable, but it is only safe to change it when there is only one owner
- * of the buffer - ie, the refcount is 1.
+ * Tests if you can safely write to a buffer's metadata or its memory array.
+ * It is only safe to change buffer metadata when the current reference is
+ * writable, i.e. nobody can see the modifications you will make.
  */
 #define         gst_buffer_is_writable(buf)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (buf))
 /**
@@ -497,7 +472,9 @@
                                                  gsize offset, gsize size);
 
 /* append two buffers */
-GstBuffer*      gst_buffer_append               (GstBuffer *buf1, GstBuffer *buf2);
+GstBuffer*      gst_buffer_append_region        (GstBuffer *buf1, GstBuffer *buf2,
+                                                 gssize offset, gssize size);
+#define         gst_buffer_append(b1,b2)        gst_buffer_append_region ((b1), (b2), 0, -1)
 
 /* metadata */
 #include <gst/gstmeta.h>
@@ -530,7 +507,7 @@
 
 GstMeta *       gst_buffer_iterate_meta         (GstBuffer *buffer, gpointer *state);
 
-void            gst_buffer_foreach_meta         (GstBuffer *buffer,
+gboolean        gst_buffer_foreach_meta         (GstBuffer *buffer,
                                                  GstBufferForeachMetaFunc func,
                                                  gpointer user_data);
 
diff --git a/gst/gstbufferlist.c b/gst/gstbufferlist.c
index f3e047e..e922e8a 100644
--- a/gst/gstbufferlist.c
+++ b/gst/gstbufferlist.c
@@ -47,8 +47,6 @@
  * GstBufferList:
  *
  * Opaque list of grouped buffers.
- *
- * Since: 0.10.24
  */
 struct _GstBufferList
 {
@@ -97,17 +95,15 @@
     gst_buffer_unref (g_array_index (list->array, GstBuffer *, i));
   g_array_free (list->array, TRUE);
 
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (list), list);
+  g_slice_free1 (sizeof (GstBufferList), list);
 }
 
 static void
-gst_buffer_list_init (GstBufferList * list, gsize size, guint asize)
+gst_buffer_list_init (GstBufferList * list, guint asize)
 {
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (list), _gst_buffer_list_type,
-      size);
-
-  list->mini_object.copy = (GstMiniObjectCopyFunction) _gst_buffer_list_copy;
-  list->mini_object.free = (GstMiniObjectFreeFunction) _gst_buffer_list_free;
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (list), 0, _gst_buffer_list_type,
+      (GstMiniObjectCopyFunction) _gst_buffer_list_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_buffer_list_free);
 
   list->array = g_array_sized_new (FALSE, FALSE, sizeof (GstBuffer *), asize);
 
@@ -126,8 +122,6 @@
  *
  * Returns: (transfer full): the new #GstBufferList. gst_buffer_list_unref()
  *     after usage.
- *
- * Since: 0.10.24
  */
 GstBufferList *
 gst_buffer_list_new_sized (guint size)
@@ -138,7 +132,7 @@
 
   GST_LOG ("new %p", list);
 
-  gst_buffer_list_init (list, sizeof (GstBufferList), size);
+  gst_buffer_list_init (list, size);
 
   return list;
 }
@@ -153,8 +147,6 @@
  *
  * Returns: (transfer full): the new #GstBufferList. gst_buffer_list_unref()
  *     after usage.
- *
- * Since: 0.10.24
  */
 GstBufferList *
 gst_buffer_list_new (void)
@@ -169,8 +161,6 @@
  * Returns the number of buffers in @list.
  *
  * Returns: the number of buffers in the buffer list
- *
- * Since: 0.10.24
  */
 guint
 gst_buffer_list_length (GstBufferList * list)
@@ -192,21 +182,22 @@
  * of @func define if this function returns or if the remaining buffers in
  * the list should be skipped.
  *
- * Since: 0.10.24
+ * Returns: %TRUE when @func returned %TRUE for each buffer in @list or when
+ * @list is empty.
  */
-void
+gboolean
 gst_buffer_list_foreach (GstBufferList * list, GstBufferListFunc func,
     gpointer user_data)
 {
   guint i, len;
+  gboolean ret = TRUE;
 
-  g_return_if_fail (GST_IS_BUFFER_LIST (list));
-  g_return_if_fail (func != NULL);
+  g_return_val_if_fail (GST_IS_BUFFER_LIST (list), FALSE);
+  g_return_val_if_fail (func != NULL, FALSE);
 
   len = list->array->len;
   for (i = 0; i < len;) {
     GstBuffer *buf, *buf_ret;
-    gboolean ret;
 
     buf = buf_ret = g_array_index (list->array, GstBuffer *, i);
     ret = func (&buf_ret, i, user_data);
@@ -228,6 +219,7 @@
     if (buf_ret != NULL)
       i++;
   }
+  return ret;
 }
 
 /**
@@ -239,8 +231,6 @@
  *
  * Returns: (transfer none): the buffer at @idx in @group or NULL when there
  *     is no buffer. The buffer remains valid as long as @list is valid.
- *
- * Since: 0.10.24
  */
 GstBuffer *
 gst_buffer_list_get (GstBufferList * list, guint idx)
@@ -256,10 +246,17 @@
 }
 
 /**
+ * gst_buffer_list_add:
+ * @l: a #GstBufferList
+ * @b: a #GstBuffer
+ *
+ * Append @b at the end of @l.
+ */
+/**
  * gst_buffer_list_insert:
  * @list: a #GstBufferList
  * @idx: the index
- * @buffer: a #GstBuffer
+ * @buffer: (transfer full): a #GstBuffer
  *
  * Insert @buffer at @idx in @list. Other buffers are moved to make room for
  * this new buffer.
@@ -267,7 +264,7 @@
  * A -1 value for @idx will append the buffer at the end.
  */
 void
-gst_buffer_list_insert (GstBufferList * list, guint idx, GstBuffer * buffer)
+gst_buffer_list_insert (GstBufferList * list, gint idx, GstBuffer * buffer)
 {
   g_return_if_fail (GST_IS_BUFFER_LIST (list));
   g_return_if_fail (buffer != NULL);
diff --git a/gst/gstbufferlist.h b/gst/gstbufferlist.h
index 4b0dfeb..eff9d9c 100644
--- a/gst/gstbufferlist.h
+++ b/gst/gstbufferlist.h
@@ -72,8 +72,6 @@
  * the number of memcpy operations in a pipeline.
  *
  * Returns: (transfer full): @list
- *
- * Since: 0.10.24
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC GstBufferList * gst_buffer_list_ref (GstBufferList * list);
@@ -92,8 +90,6 @@
  *
  * Decreases the refcount of the buffer list. If the refcount reaches 0, the
  * buffer list will be freed.
- *
- * Since: 0.10.24
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC void gst_buffer_list_unref (GstBufferList * list);
@@ -115,8 +111,6 @@
  * refcount of buffers pointed to will be increased by one.
  *
  * Returns: (transfer full): a new copy of @list.
- *
- * Since: 0.10.24
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC GstBufferList * gst_buffer_list_copy (const GstBufferList * list);
@@ -133,8 +127,6 @@
  * @list: a #GstBufferList
  *
  * Tests if you can safely add buffers and groups into a buffer list.
- *
- * Since: 0.10.24
  */
 #define gst_buffer_list_is_writable(list) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (list))
 
@@ -148,8 +140,6 @@
  *
  * Returns: (transfer full): a writable list, which may or may not be the
  *     same as @list
- *
- * Since: 0.10.24
  */
 #define gst_buffer_list_make_writable(list) GST_BUFFER_LIST_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (list)))
 
@@ -162,10 +152,10 @@
 guint                    gst_buffer_list_length                (GstBufferList *list);
 
 GstBuffer *              gst_buffer_list_get                   (GstBufferList *list, guint idx);
-void                     gst_buffer_list_insert                (GstBufferList *list, guint idx, GstBuffer *buffer);
+void                     gst_buffer_list_insert                (GstBufferList *list, gint idx, GstBuffer *buffer);
 void                     gst_buffer_list_remove                (GstBufferList *list, guint idx, guint length);
 
-void                     gst_buffer_list_foreach               (GstBufferList *list,
+gboolean                 gst_buffer_list_foreach               (GstBufferList *list,
                                                                 GstBufferListFunc func,
 								gpointer user_data);
 
diff --git a/gst/gstbufferpool.c b/gst/gstbufferpool.c
index d7a09d1..2aebd29 100644
--- a/gst/gstbufferpool.c
+++ b/gst/gstbufferpool.c
@@ -199,7 +199,7 @@
   gst_structure_free (priv->config);
   g_rec_mutex_clear (&priv->rec_lock);
   if (priv->allocator)
-    gst_allocator_unref (priv->allocator);
+    gst_object_unref (priv->allocator);
 
   G_OBJECT_CLASS (gst_buffer_pool_parent_class)->finalize (object);
 }
@@ -493,9 +493,9 @@
   priv->max_buffers = max_buffers;
 
   if (priv->allocator)
-    gst_allocator_unref (priv->allocator);
+    gst_object_unref (priv->allocator);
   if ((priv->allocator = allocator))
-    gst_allocator_ref (allocator);
+    gst_object_ref (allocator);
   priv->params = params;
 
   return TRUE;
@@ -520,6 +520,10 @@
  * the pool. A default and mandatory set of parameters can be configured with
  * gst_buffer_pool_config_set(). This function takes ownership of @config.
  *
+ * If the parameters in @config can not be set exactly, this function returns
+ * FALSE and will try to update as much state as possible. The new state can
+ * then be retrieved and refined with gst_buffer_pool_config_get().
+ *
  * Returns: TRUE when the configuration could be set.
  */
 gboolean
@@ -685,6 +689,7 @@
 {
   g_return_if_fail (config != NULL);
   g_return_if_fail (max_buffers == 0 || min_buffers <= max_buffers);
+  g_return_if_fail (caps == NULL || gst_caps_is_fixed (caps));
 
   gst_structure_id_set (config,
       GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
@@ -891,7 +896,7 @@
   g_return_val_if_fail (config != NULL, FALSE);
 
   if (allocator)
-    *allocator = g_value_get_boxed (gst_structure_id_get_value (config,
+    *allocator = g_value_get_object (gst_structure_id_get_value (config,
             GST_QUARK (ALLOCATOR)));
   if (params) {
     GstAllocationParams *p;
diff --git a/gst/gstbufferpool.h b/gst/gstbufferpool.h
index ed26bb5..e14855b 100644
--- a/gst/gstbufferpool.h
+++ b/gst/gstbufferpool.h
@@ -60,6 +60,8 @@
   GST_BUFFER_POOL_ACQUIRE_FLAG_LAST     = (1 << 16),
 } GstBufferPoolAcquireFlags;
 
+typedef struct _GstBufferPoolAcquireParams GstBufferPoolAcquireParams;
+
 /**
  * GstBufferPoolAcquireParams:
  * @format: the format of @start and @stop
@@ -74,7 +76,7 @@
  * implementations can use this extra information to decide what buffer to
  * return.
  */
-typedef struct _GstBufferPoolAcquireParams {
+struct _GstBufferPoolAcquireParams {
   GstFormat                 format;
   gint64                    start;
   gint64                    stop;
@@ -82,7 +84,7 @@
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
-} GstBufferPoolAcquireParams;
+};
 
 /**
  * GST_BUFFER_POOL_IS_FLUSHING:
@@ -179,7 +181,6 @@
 const gchar **   gst_buffer_pool_get_options     (GstBufferPool *pool);
 gboolean         gst_buffer_pool_has_option      (GstBufferPool *pool, const gchar *option);
 
-
 /* helpers for configuring the config structure */
 void             gst_buffer_pool_config_set_params    (GstStructure *config, GstCaps *caps,
                                                        guint size, guint min_buffers, guint max_buffers);
diff --git a/gst/gstbus.c b/gst/gstbus.c
index 5e663ca..bd1c209 100644
--- a/gst/gstbus.c
+++ b/gst/gstbus.c
@@ -100,6 +100,7 @@
 };
 
 static void gst_bus_dispose (GObject * object);
+static void gst_bus_finalize (GObject * object);
 
 static guint gst_bus_signals[LAST_SIGNAL] = { 0 };
 
@@ -110,6 +111,7 @@
 
   GstBusSyncHandler sync_handler;
   gpointer sync_handler_data;
+  GDestroyNotify sync_handler_notify;
 
   guint signal_watch_id;
   guint num_signal_watchers;
@@ -158,10 +160,12 @@
   GObjectClass *gobject_class = (GObjectClass *) klass;
 
   gobject_class->dispose = gst_bus_dispose;
+  gobject_class->finalize = gst_bus_finalize;
   gobject_class->set_property = gst_bus_set_property;
   gobject_class->constructed = gst_bus_constructed;
 
-  /* GstBus:enable-async:
+  /**
+   * GstBus::enable-async:
    *
    * Enable async message delivery support for bus watches,
    * gst_bus_pop() and similar API. Without this only the
@@ -169,8 +173,6 @@
    *
    * This property is used to create the child element buses
    * in #GstBin.
-   *
-   * Since: 0.10.33
    */
   g_object_class_install_property (gobject_class, PROP_ENABLE_ASYNC,
       g_param_spec_boolean ("enable-async", "Enable Async",
@@ -225,6 +227,9 @@
   g_mutex_init (&bus->priv->queue_lock);
   bus->priv->queue = gst_atomic_queue_new (32);
 
+  /* clear floating flag */
+  gst_object_ref_sink (bus);
+
   GST_DEBUG_OBJECT (bus, "created");
 }
 
@@ -255,6 +260,17 @@
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
+static void
+gst_bus_finalize (GObject * object)
+{
+  GstBus *bus = GST_BUS (object);
+
+  if (bus->priv->sync_handler_notify)
+    bus->priv->sync_handler_notify (bus->priv->sync_handler_data);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
 /**
  * gst_bus_new:
  *
@@ -463,8 +479,6 @@
  *     with gst_message_unref() after usage.
  *
  * MT safe.
- *
- * Since: 0.10.15
  */
 GstMessage *
 gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout,
@@ -561,8 +575,6 @@
  * gst_message_unref() after usage.
  *
  * MT safe.
- *
- * Since: 0.10.12
  */
 GstMessage *
 gst_bus_timed_pop (GstBus * bus, GstClockTime timeout)
@@ -588,8 +600,6 @@
  *     gst_message_unref() after usage.
  *
  * MT safe.
- *
- * Since: 0.10.15
  */
 GstMessage *
 gst_bus_pop_filtered (GstBus * bus, GstMessageType types)
@@ -654,8 +664,9 @@
 /**
  * gst_bus_set_sync_handler:
  * @bus: a #GstBus to install the handler on
- * @func: The handler function to install
- * @data: User data that will be sent to the handler function.
+ * @func: (allow-none): The handler function to install
+ * @user_data: User data that will be sent to the handler function.
+ * @notify: called when @user_data becomes unused
  *
  * Sets the synchronous handler on the bus. The function will be called
  * every time a new message is posted on the bus. Note that the function
@@ -668,19 +679,33 @@
  * function, which will clear the existing handler.
  */
 void
-gst_bus_set_sync_handler (GstBus * bus, GstBusSyncHandler func, gpointer data)
+gst_bus_set_sync_handler (GstBus * bus, GstBusSyncHandler func,
+    gpointer user_data, GDestroyNotify notify)
 {
+  GDestroyNotify old_notify;
+
   g_return_if_fail (GST_IS_BUS (bus));
 
   GST_OBJECT_LOCK (bus);
-
   /* Assert if the user attempts to replace an existing sync_handler,
    * other than to clear it */
   if (func != NULL && bus->priv->sync_handler != NULL)
     goto no_replace;
 
+  if ((old_notify = bus->priv->sync_handler_notify)) {
+    gpointer old_data = bus->priv->sync_handler_data;
+
+    bus->priv->sync_handler_data = NULL;
+    bus->priv->sync_handler_notify = NULL;
+    GST_OBJECT_UNLOCK (bus);
+
+    old_notify (old_data);
+
+    GST_OBJECT_LOCK (bus);
+  }
   bus->priv->sync_handler = func;
-  bus->priv->sync_handler_data = data;
+  bus->priv->sync_handler_data = user_data;
+  bus->priv->sync_handler_notify = notify;
   GST_OBJECT_UNLOCK (bus);
 
   return;
@@ -859,8 +884,8 @@
  * @notify: the function to call when the source is removed.
  *
  * Adds a bus watch to the default main context with the given @priority (e.g.
- * %G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a non-default
- * main context set up using g_main_context_push_thread_default() (before
+ * %G_PRIORITY_DEFAULT). It is also possible to use a non-default  main
+ * context set up using g_main_context_push_thread_default() (before
  * one had to create a bus watch source and attach it to the desired main
  * context 'manually').
  *
@@ -874,9 +899,10 @@
  * The watch can be removed using g_source_remove() or by returning FALSE
  * from @func.
  *
+ * MT safe.
+ *
  * Returns: The event source id.
  * Rename to: gst_bus_add_watch
- * MT safe.
  */
 guint
 gst_bus_add_watch_full (GstBus * bus, gint priority,
@@ -900,8 +926,8 @@
  * @user_data: user data passed to @func.
  *
  * Adds a bus watch to the default main context with the default priority
- * (%G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a non-default
- * main context set up using g_main_context_push_thread_default() (before
+ * (%G_PRIORITY_DEFAULT). It is also possible to use a non-default main
+ * context set up using g_main_context_push_thread_default() (before
  * one had to create a bus watch source and attach it to the desired main
  * context 'manually').
  *
@@ -1195,8 +1221,8 @@
  * @priority: The priority of the watch.
  *
  * Adds a bus signal watch to the default main context with the given @priority
- * (e.g. %G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a
- * non-default main context set up using g_main_context_push_thread_default()
+ * (e.g. %G_PRIORITY_DEFAULT). It is also possible to use a non-default main
+ * context set up using g_main_context_push_thread_default()
  * (before one had to create a bus watch source and attach it to the desired
  * main context 'manually').
  *
@@ -1254,7 +1280,7 @@
  * @bus: a #GstBus on which you want to receive the "message" signal
  *
  * Adds a bus signal watch to the default main context with the default priority
- * (%G_PRIORITY_DEFAULT). Since 0.10.33 it is also possible to use a non-default
+ * (%G_PRIORITY_DEFAULT). It is also possible to use a non-default
  * main context set up using g_main_context_push_thread_default() (before
  * one had to create a bus watch source and attach it to the desired main
  * context 'manually').
diff --git a/gst/gstbus.h b/gst/gstbus.h
index 2dbf0ce..ed05ddb 100644
--- a/gst/gstbus.h
+++ b/gst/gstbus.h
@@ -72,7 +72,7 @@
  * GstBusSyncHandler:
  * @bus: the #GstBus that sent the message
  * @message: the #GstMessage
- * @data: user data that has been given, when registering the handler
+ * @user_data: user data that has been given, when registering the handler
  *
  * Handler will be invoked synchronously, when a new message has been injected
  * into the bus. This function is mostly used internally. Only one sync handler
@@ -83,13 +83,13 @@
  *
  * Returns: #GstBusSyncReply stating what to do with the message
  */
-typedef GstBusSyncReply (*GstBusSyncHandler)    (GstBus * bus, GstMessage * message, gpointer data);
+typedef GstBusSyncReply (*GstBusSyncHandler)    (GstBus * bus, GstMessage * message, gpointer user_data);
 
 /**
  * GstBusFunc:
  * @bus: the #GstBus that sent the message
  * @message: the #GstMessage
- * @data: user data that has been given, when registering the handler
+ * @user_data: user data that has been given, when registering the handler
  *
  * Specifies the type of function passed to gst_bus_add_watch() or
  * gst_bus_add_watch_full(), which is called from the mainloop when a message
@@ -103,7 +103,7 @@
  *
  * Returns: %FALSE if the event source should be removed.
  */
-typedef gboolean        (*GstBusFunc)           (GstBus * bus, GstMessage * message, gpointer data);
+typedef gboolean        (*GstBusFunc)           (GstBus * bus, GstMessage * message, gpointer user_data);
 
 /**
  * GstBus:
@@ -148,7 +148,7 @@
 
 /* synchronous dispatching */
 void                    gst_bus_set_sync_handler        (GstBus * bus, GstBusSyncHandler func,
-                                                         gpointer data);
+                                                         gpointer user_data, GDestroyNotify notify);
 /* GSource based dispatching */
 GSource *               gst_bus_create_watch            (GstBus * bus);
 guint                   gst_bus_add_watch_full          (GstBus * bus,
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index ec95ed5..eba50a0 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -179,17 +179,15 @@
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_CAPS, "freeing caps %p", caps);
 #endif
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (caps), caps);
+  g_slice_free1 (sizeof (GstCapsImpl), caps);
 }
 
 static void
-gst_caps_init (GstCaps * caps, gsize size)
+gst_caps_init (GstCaps * caps)
 {
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (caps), _gst_caps_type, size);
-
-  caps->mini_object.copy = (GstMiniObjectCopyFunction) _gst_caps_copy;
-  caps->mini_object.dispose = NULL;
-  caps->mini_object.free = (GstMiniObjectFreeFunction) _gst_caps_free;
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (caps), 0, _gst_caps_type,
+      (GstMiniObjectCopyFunction) _gst_caps_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_caps_free);
 
   /* the 32 has been determined by logging caps sizes in _gst_caps_free
    * but g_ptr_array uses 16 anyway if it expands once, so this does not help
@@ -216,7 +214,7 @@
 
   caps = (GstCaps *) g_slice_new (GstCapsImpl);
 
-  gst_caps_init (caps, sizeof (GstCapsImpl));
+  gst_caps_init (caps);
 
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_CAPS, "created caps %p", caps);
@@ -448,8 +446,6 @@
  *
  * Returns: (transfer full): a pointer to the #GstStructure corresponding
  *     to @index.
- *
- * Since: 0.10.30
  */
 GstStructure *
 gst_caps_steal_structure (GstCaps * caps, guint index)
@@ -507,8 +503,6 @@
  * If either caps is ANY, the resulting caps will be ANY.
  *
  * Returns: (transfer full): the merged caps.
- *
- * Since: 0.10.10
  */
 GstCaps *
 gst_caps_merge (GstCaps * caps1, GstCaps * caps2)
@@ -743,8 +737,6 @@
  * Sets the given @field on all structures of @caps to the given @value.
  * This is a convenience function for calling gst_structure_set_value() on
  * all structures of @caps.
- *
- * Since: 0.10.26
  **/
 void
 gst_caps_set_value (GstCaps * caps, const char *field, const GValue * value)
@@ -771,10 +763,6 @@
  *
  * Sets fields in a #GstCaps.  The arguments must be passed in the same
  * manner as gst_structure_set(), and be NULL-terminated.
- * <note>Prior to GStreamer version 0.10.26, this function failed when
- * @caps was not simple. If your code needs to work with those versions
- * of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
- * is %TRUE for @caps.</note>
  */
 void
 gst_caps_set_simple_valist (GstCaps * caps, const char *field, va_list varargs)
@@ -812,10 +800,6 @@
  *
  * Sets fields in a #GstCaps.  The arguments must be passed in the same
  * manner as gst_structure_set(), and be NULL-terminated.
- * <note>Prior to GStreamer version 0.10.26, this function failed when
- * @caps was not simple. If your code needs to work with those versions
- * of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
- * is %TRUE for @caps.</note>
  */
 void
 gst_caps_set_simple (GstCaps * caps, const char *field, ...)
@@ -999,8 +983,6 @@
  * for more information.
  *
  * Returns: %TRUE if @structure is a subset of @caps
- *
- * Since: 0.10.36
  */
 gboolean
 gst_caps_is_subset_structure (const GstCaps * caps,
@@ -1061,11 +1043,7 @@
  *
  * Checks if the given caps are exactly the same set of caps.
  *
- * This function deals correctly with passing NULL for any of the caps.
- *
  * Returns: TRUE if both caps are strictly equal.
- *
- * Since: 0.10.36
  */
 gboolean
 gst_caps_is_strictly_equal (const GstCaps * caps1, const GstCaps * caps2)
@@ -1101,8 +1079,6 @@
  * be empty
  *
  * Returns: %TRUE if intersection would be not empty
- *
- * Since: 0.10.25
  */
 gboolean
 gst_caps_can_intersect (const GstCaps * caps1, const GstCaps * caps2)
@@ -1309,7 +1285,6 @@
  * used.
  *
  * Returns: the new #GstCaps
- * Since: 0.10.33
  */
 GstCaps *
 gst_caps_intersect_full (GstCaps * caps1, GstCaps * caps2,
diff --git a/gst/gstcaps.h b/gst/gstcaps.h
index f229742..923199b 100644
--- a/gst/gstcaps.h
+++ b/gst/gstcaps.h
@@ -71,8 +71,6 @@
  * another element's caps priority order when intersecting with its own caps.
  * Example: If caps1 is [A, B, C] and caps2 is [E, B, D, A], the result
  * would be [A, B], maintaining the first caps priority on the intersection.
- *
- * Since: 0.10.33
  */
 typedef enum {
   GST_CAPS_INTERSECT_ZIG_ZAG            =  0,
@@ -262,7 +260,7 @@
  * @caps: a #GstCaps
  *
  * Tests if you can safely modify @caps. It is only safe to modify caps when
- * there is only one owner of the caps - ie, the refcount is 1.
+ * there is only one owner of the caps - ie, the object is writable.
  */
 #define         gst_caps_is_writable(caps)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (caps))
 
diff --git a/gst/gstchildproxy.c b/gst/gstchildproxy.c
index 3e153f3..c2979e5 100644
--- a/gst/gstchildproxy.c
+++ b/gst/gstchildproxy.c
@@ -172,11 +172,11 @@
  *
  * Looks up which object and #GParamSpec would be effected by the given @name.
  *
+ * MT safe.
+ *
  * Returns: TRUE if @target and @pspec could be found. FALSE otherwise. In that
  * case the values for @pspec and @target are not modified. Unref @target after
- * usage.
- *
- * MT safe.
+ * usage. For plain GObjects @target is the same as @object.
  */
 gboolean
 gst_child_proxy_lookup (GObject * object, const gchar * name,
@@ -188,9 +188,10 @@
   g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
 
-  gst_object_ref (object);
+  g_object_ref (object);
 
   current = names = g_strsplit (name, "::", -1);
+  // find the owner of the property
   while (current[1]) {
     GObject *next;
 
@@ -206,10 +207,12 @@
       GST_INFO ("no such object %s", current[0]);
       break;
     }
-    gst_object_unref (object);
+    g_object_unref (object);
     object = next;
     current++;
   }
+
+  // look for psec
   if (current[1] == NULL) {
     GParamSpec *spec =
         g_object_class_find_property (G_OBJECT_GET_CLASS (object), current[0]);
@@ -219,13 +222,13 @@
       if (pspec)
         *pspec = spec;
       if (target) {
-        gst_object_ref (object);
+        g_object_ref (object);
         *target = object;
       }
       res = TRUE;
     }
   }
-  gst_object_unref (object);
+  g_object_unref (object);
   g_strfreev (names);
   return res;
 }
@@ -240,21 +243,21 @@
  * You are responsible for freeing it by calling g_value_unset()
  */
 void
-gst_child_proxy_get_property (GObject * object, const gchar * name,
+gst_child_proxy_get_property (GstChildProxy * object, const gchar * name,
     GValue * value)
 {
   GParamSpec *pspec;
   GObject *target;
 
-  g_return_if_fail (G_IS_OBJECT (object));
+  g_return_if_fail (GST_IS_CHILD_PROXY (object));
   g_return_if_fail (name != NULL);
   g_return_if_fail (G_IS_VALUE (value));
 
-  if (!gst_child_proxy_lookup (object, name, &target, &pspec))
+  if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec))
     goto not_found;
 
-  g_object_get_property (G_OBJECT (target), pspec->name, value);
-  gst_object_unref (target);
+  g_object_get_property (target, pspec->name, value);
+  g_object_unref (target);
 
   return;
 
@@ -275,7 +278,7 @@
  * Gets properties of the parent object and its children.
  */
 void
-gst_child_proxy_get_valist (GObject * object,
+gst_child_proxy_get_valist (GstChildProxy * object,
     const gchar * first_property_name, va_list var_args)
 {
   const gchar *name;
@@ -284,18 +287,18 @@
   GParamSpec *pspec;
   GObject *target;
 
-  g_return_if_fail (G_IS_OBJECT (object));
+  g_return_if_fail (GST_IS_CHILD_PROXY (object));
 
   name = first_property_name;
 
   /* iterate over pairs */
   while (name) {
-    if (!gst_child_proxy_lookup (object, name, &target, &pspec))
+    if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec))
       goto not_found;
 
     g_value_init (&value, pspec->value_type);
-    g_object_get_property (G_OBJECT (target), pspec->name, &value);
-    gst_object_unref (target);
+    g_object_get_property (target, pspec->name, &value);
+    g_object_unref (target);
 
     G_VALUE_LCOPY (&value, var_args, 0, &error);
     if (error)
@@ -329,11 +332,12 @@
  * Gets properties of the parent object and its children.
  */
 void
-gst_child_proxy_get (GObject * object, const gchar * first_property_name, ...)
+gst_child_proxy_get (GstChildProxy * object, const gchar * first_property_name,
+    ...)
 {
   va_list var_args;
 
-  g_return_if_fail (G_IS_OBJECT (object));
+  g_return_if_fail (GST_IS_CHILD_PROXY (object));
 
   va_start (var_args, first_property_name);
   gst_child_proxy_get_valist (object, first_property_name, var_args);
@@ -349,21 +353,21 @@
  * Sets a single property using the GstChildProxy mechanism.
  */
 void
-gst_child_proxy_set_property (GObject * object, const gchar * name,
+gst_child_proxy_set_property (GstChildProxy * object, const gchar * name,
     const GValue * value)
 {
   GParamSpec *pspec;
   GObject *target;
 
-  g_return_if_fail (G_IS_OBJECT (object));
+  g_return_if_fail (GST_IS_CHILD_PROXY (object));
   g_return_if_fail (name != NULL);
   g_return_if_fail (G_IS_VALUE (value));
 
-  if (!gst_child_proxy_lookup (object, name, &target, &pspec))
+  if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec))
     goto not_found;
 
-  g_object_set_property (G_OBJECT (target), pspec->name, value);
-  gst_object_unref (target);
+  g_object_set_property (target, pspec->name, value);
+  g_object_unref (target);
   return;
 
 not_found:
@@ -383,7 +387,7 @@
  * Sets properties of the parent object and its children.
  */
 void
-gst_child_proxy_set_valist (GObject * object,
+gst_child_proxy_set_valist (GstChildProxy * object,
     const gchar * first_property_name, va_list var_args)
 {
   const gchar *name;
@@ -392,13 +396,13 @@
   GParamSpec *pspec;
   GObject *target;
 
-  g_return_if_fail (G_IS_OBJECT (object));
+  g_return_if_fail (GST_IS_CHILD_PROXY (object));
 
   name = first_property_name;
 
   /* iterate over pairs */
   while (name) {
-    if (!gst_child_proxy_lookup (object, name, &target, &pspec))
+    if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec))
       goto not_found;
 
     G_VALUE_COLLECT_INIT (&value, pspec->value_type, var_args,
@@ -407,8 +411,8 @@
     if (error)
       goto cant_copy;
 
-    g_object_set_property (G_OBJECT (target), pspec->name, &value);
-    gst_object_unref (target);
+    g_object_set_property (target, pspec->name, &value);
+    g_object_unref (target);
 
     g_value_unset (&value);
     name = va_arg (var_args, gchar *);
@@ -426,7 +430,7 @@
     g_warning ("error copying value %s in object %s: %s", pspec->name,
         (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""), error);
     g_value_unset (&value);
-    gst_object_unref (target);
+    g_object_unref (target);
     return;
   }
 }
@@ -440,11 +444,12 @@
  * Sets properties of the parent object and its children.
  */
 void
-gst_child_proxy_set (GObject * object, const gchar * first_property_name, ...)
+gst_child_proxy_set (GstChildProxy * object, const gchar * first_property_name,
+    ...)
 {
   va_list var_args;
 
-  g_return_if_fail (G_IS_OBJECT (object));
+  g_return_if_fail (GST_IS_CHILD_PROXY (object));
 
   va_start (var_args, first_property_name);
   gst_child_proxy_set_valist (object, first_property_name, var_args);
@@ -453,32 +458,32 @@
 
 /**
  * gst_child_proxy_child_added:
- * @object: the parent object
+ * @parent: the parent object
  * @child: the newly added child
  * @name: the name of the new child
  *
  * Emits the "child-added" signal.
  */
 void
-gst_child_proxy_child_added (GObject * object, GObject * child,
+gst_child_proxy_child_added (GstChildProxy * parent, GObject * child,
     const gchar * name)
 {
-  g_signal_emit (G_OBJECT (object), signals[CHILD_ADDED], 0, child, name);
+  g_signal_emit (parent, signals[CHILD_ADDED], 0, child, name);
 }
 
 /**
  * gst_child_proxy_child_removed:
- * @object: the parent object
+ * @parent: the parent object
  * @child: the removed child
  * @name: the name of the old child
  *
  * Emits the "child-removed" signal.
  */
 void
-gst_child_proxy_child_removed (GObject * object, GObject * child,
+gst_child_proxy_child_removed (GstChildProxy * parent, GObject * child,
     const gchar * name)
 {
-  g_signal_emit (G_OBJECT (object), signals[CHILD_REMOVED], 0, child, name);
+  g_signal_emit (parent, signals[CHILD_REMOVED], 0, child, name);
 }
 
 /* gobject methods */
diff --git a/gst/gstchildproxy.h b/gst/gstchildproxy.h
index 94e2011..0943606 100644
--- a/gst/gstchildproxy.h
+++ b/gst/gstchildproxy.h
@@ -60,8 +60,8 @@
   guint     (*get_children_count) (GstChildProxy * parent);
   /*< private >*/
   /* signals */
-  void      (*child_added)        (GstChildProxy * parent, GObject * child);
-  void      (*child_removed)      (GstChildProxy * parent, GObject * child);
+  void      (*child_added)        (GstChildProxy * parent, GObject * child, const gchar * name);
+  void      (*child_removed)      (GstChildProxy * parent, GObject * child, const gchar * name);
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
@@ -77,27 +77,27 @@
 gboolean  gst_child_proxy_lookup             (GObject *object, const gchar *name,
                                               GObject **target, GParamSpec **pspec);
 
-void      gst_child_proxy_get_property       (GObject * object, const gchar *name,
+void      gst_child_proxy_get_property       (GstChildProxy * object, const gchar *name,
                                               GValue *value);
-void      gst_child_proxy_get_valist         (GObject * object,
+void      gst_child_proxy_get_valist         (GstChildProxy * object,
                                               const gchar * first_property_name,
                                               va_list var_args);
-void      gst_child_proxy_get                (GObject * object,
+void      gst_child_proxy_get                (GstChildProxy * object,
                                               const gchar * first_property_name,
                                               ...) G_GNUC_NULL_TERMINATED;
 
-void      gst_child_proxy_set_property       (GObject * object, const gchar *name,
+void      gst_child_proxy_set_property       (GstChildProxy * object, const gchar *name,
                                               const GValue *value);
-void      gst_child_proxy_set_valist         (GObject* object,
+void      gst_child_proxy_set_valist         (GstChildProxy* object,
                                               const gchar * first_property_name,
                                               va_list var_args);
-void      gst_child_proxy_set                (GObject * object,
+void      gst_child_proxy_set                (GstChildProxy * object,
                                               const gchar * first_property_name,
                                               ...) G_GNUC_NULL_TERMINATED;
 
-void      gst_child_proxy_child_added        (GObject * object, GObject * child,
+void      gst_child_proxy_child_added        (GstChildProxy * parent, GObject * child,
                                               const gchar *name);
-void      gst_child_proxy_child_removed      (GObject * object, GObject * child,
+void      gst_child_proxy_child_removed      (GstChildProxy * parent, GObject * child,
                                               const gchar *name);
 
 G_END_DECLS
diff --git a/gst/gstclock.c b/gst/gstclock.c
index fe789d7..5e91b58 100644
--- a/gst/gstclock.c
+++ b/gst/gstclock.c
@@ -261,8 +261,6 @@
  *
  * Returns: %TRUE if the GstClockID could be reinitialized to the provided
  * @time, else %FALSE.
- *
- * Since: 0.10.32
  */
 gboolean
 gst_clock_single_shot_id_reinit (GstClock * clock, GstClockID id,
@@ -284,9 +282,6 @@
  *
  * Returns: %TRUE if the GstClockID could be reinitialized to the provided
  * @time, else %FALSE.
- *
- * Since: 0.10.33
- *
  */
 gboolean
 gst_clock_periodic_id_reinit (GstClock * clock, GstClockID id,
@@ -413,7 +408,7 @@
 }
 
 /**
- * gst_clock_id_compare_func
+ * gst_clock_id_compare_func:
  * @id1: A #GstClockID
  * @id2: A #GstClockID to compare with
  *
@@ -442,7 +437,7 @@
 }
 
 /**
- * gst_clock_id_get_time
+ * gst_clock_id_get_time:
  * @id: The #GstClockID to query
  *
  * Get the time of the clock ID
@@ -460,7 +455,7 @@
 }
 
 /**
- * gst_clock_id_wait
+ * gst_clock_id_wait:
  * @id: The #GstClockID to wait on
  * @jitter: (out) (allow-none): a pointer that will contain the jitter,
  *     can be %NULL.
@@ -539,7 +534,7 @@
 }
 
 /**
- * gst_clock_id_wait_async_full:
+ * gst_clock_id_wait_async:
  * @id: a #GstClockID to wait on
  * @func: The callback function
  * @user_data: User data passed in the callback
@@ -557,11 +552,9 @@
  * Returns: the result of the non blocking wait.
  *
  * MT safe.
- *
- * Since: 0.10.30
  */
 GstClockReturn
-gst_clock_id_wait_async_full (GstClockID id,
+gst_clock_id_wait_async (GstClockID id,
     GstClockCallback func, gpointer user_data, GDestroyNotify destroy_data)
 {
   GstClockEntry *entry;
@@ -610,32 +603,6 @@
 }
 
 /**
- * gst_clock_id_wait_async:
- * @id: a #GstClockID to wait on
- * @func: The callback function
- * @user_data: User data passed in the callback
- *
- * Register a callback on the given #GstClockID @id with the given
- * function and user_data. When passing a #GstClockID with an invalid
- * time to this function, the callback will be called immediately
- * with  a time set to GST_CLOCK_TIME_NONE. The callback will
- * be called when the time of @id has been reached.
- *
- * The callback @func can be invoked from any thread, either provided by the
- * core or from a streaming thread. The application should be prepared for this.
- *
- * Returns: the result of the non blocking wait.
- *
- * MT safe.
- */
-GstClockReturn
-gst_clock_id_wait_async (GstClockID id,
-    GstClockCallback func, gpointer user_data)
-{
-  return gst_clock_id_wait_async_full (id, func, user_data, NULL);
-}
-
-/**
  * gst_clock_id_unschedule:
  * @id: The id to unschedule
  *
@@ -669,7 +636,7 @@
  * GstClock abstract base class implementation
  */
 #define gst_clock_parent_class parent_class
-G_DEFINE_TYPE (GstClock, gst_clock, GST_TYPE_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (GstClock, gst_clock, GST_TYPE_OBJECT);
 
 static void
 gst_clock_class_init (GstClockClass * klass)
@@ -725,6 +692,9 @@
   priv->time_index = 0;
   priv->timeout = DEFAULT_TIMEOUT;
   priv->times = g_new0 (GstClockTime, 4 * priv->window_size);
+
+  /* clear floating flag */
+  gst_object_ref_sink (clock);
 }
 
 static void
@@ -762,7 +732,7 @@
 }
 
 /**
- * gst_clock_set_resolution
+ * gst_clock_set_resolution:
  * @clock: a #GstClock
  * @resolution: The resolution to set
  *
@@ -794,7 +764,7 @@
 }
 
 /**
- * gst_clock_get_resolution
+ * gst_clock_get_resolution:
  * @clock: a #GstClock
  *
  * Get the accuracy of the clock. The accuracy of the clock is the granularity
@@ -820,7 +790,7 @@
 }
 
 /**
- * gst_clock_adjust_unlocked
+ * gst_clock_adjust_unlocked:
  * @clock: a #GstClock to use
  * @internal: a clock time
  *
@@ -876,7 +846,7 @@
 }
 
 /**
- * gst_clock_unadjust_unlocked
+ * gst_clock_unadjust_unlocked:
  * @clock: a #GstClock to use
  * @external: an external clock time
  *
@@ -888,8 +858,6 @@
  * This function is the reverse of gst_clock_adjust_unlocked().
  *
  * Returns: the internal time of the clock corresponding to @external.
- *
- * Since: 0.10.13
  */
 GstClockTime
 gst_clock_unadjust_unlocked (GstClock * clock, GstClockTime external)
@@ -924,7 +892,7 @@
 }
 
 /**
- * gst_clock_get_internal_time
+ * gst_clock_get_internal_time:
  * @clock: a #GstClock to query
  *
  * Gets the current internal time of the given clock. The time is returned
@@ -965,7 +933,7 @@
 }
 
 /**
- * gst_clock_get_time
+ * gst_clock_get_time:
  * @clock: a #GstClock to query
  *
  * Gets the current time of the given clock. The time is always
@@ -1002,7 +970,7 @@
 }
 
 /**
- * gst_clock_set_calibration
+ * gst_clock_set_calibration:
  * @clock: a #GstClock to calibrate
  * @internal: a reference internal time
  * @external: a reference external time
@@ -1061,7 +1029,7 @@
 }
 
 /**
- * gst_clock_get_calibration
+ * gst_clock_get_calibration:
  * @clock: a #GstClock 
  * @internal: (out) (allow-none): a location to store the internal time
  * @external: (out) (allow-none): a location to store the external time
@@ -1125,7 +1093,7 @@
 }
 
 /**
- * gst_clock_set_master
+ * gst_clock_set_master:
  * @clock: a #GstClock 
  * @master: (allow-none): a master #GstClock 
  *
@@ -1178,7 +1146,7 @@
      * clock calibration. */
     priv->clockid = gst_clock_new_periodic_id (master,
         gst_clock_get_time (master), priv->timeout);
-    gst_clock_id_wait_async_full (priv->clockid,
+    gst_clock_id_wait_async (priv->clockid,
         (GstClockCallback) gst_clock_slave_callback,
         gst_object_ref (clock), (GDestroyNotify) gst_object_unref);
   }
@@ -1358,7 +1326,7 @@
 }
 
 /**
- * gst_clock_add_observation
+ * gst_clock_add_observation:
  * @clock: a #GstClock 
  * @slave: a time on the slave
  * @master: a time on the master
diff --git a/gst/gstclock.h b/gst/gstclock.h
index 253fc09..5d42ce6 100644
--- a/gst/gstclock.h
+++ b/gst/gstclock.h
@@ -66,6 +66,9 @@
  * GST_CLOCK_TIME_NONE:
  *
  * Constant to define an undefined clock time.
+ *
+ * Value: 18446744073709551615
+ * Type: GstClockTime
  */
 #define GST_CLOCK_TIME_NONE             ((GstClockTime) -1)
 /**
@@ -83,7 +86,7 @@
  * Constant that defines one GStreamer second.
  *
  * Value: 1000000000
- *
+ * Type: GstClockTime
  */
 #define GST_SECOND  (G_USEC_PER_SEC * G_GINT64_CONSTANT (1000))
 /**
@@ -92,7 +95,7 @@
  * Constant that defines one GStreamer millisecond.
  *
  * Value: 1000000
- *
+ * Type: GstClockTime
  */
 #define GST_MSECOND (GST_SECOND / G_GINT64_CONSTANT (1000))
 /**
@@ -101,7 +104,7 @@
  * Constant that defines one GStreamer microsecond.
  *
  * Value: 1000
- *
+ * Type: GstClockTime
  */
 #define GST_USECOND (GST_SECOND / G_GINT64_CONSTANT (1000000))
 /**
@@ -110,7 +113,7 @@
  * Constant that defines one GStreamer nanosecond
  *
  * Value: 1
- *
+ * Type: GstClockTime
  */
 #define GST_NSECOND (GST_SECOND / G_GINT64_CONSTANT (1000000000))
 
@@ -120,8 +123,6 @@
  * @time: the time
  *
  * Convert a #GstClockTime to seconds.
- *
- * Since: 0.10.16
  */
 #define GST_TIME_AS_SECONDS(time)  ((time) / GST_SECOND)
 /**
@@ -129,8 +130,6 @@
  * @time: the time
  *
  * Convert a #GstClockTime to milliseconds (1/1000 of a second).
- *
- * Since: 0.10.16
  */
 #define GST_TIME_AS_MSECONDS(time) ((time) / G_GINT64_CONSTANT (1000000))
 /**
@@ -138,8 +137,6 @@
  * @time: the time
  *
  * Convert a #GstClockTime to microseconds (1/1000000 of a second).
- *
- * Since: 0.10.16
  */
 #define GST_TIME_AS_USECONDS(time) ((time) / G_GINT64_CONSTANT (1000))
 /**
@@ -147,8 +144,6 @@
  * @time: the time
  *
  * Convert a #GstClockTime to nanoseconds (1/1000000000 of a second).
- *
- * Since: 0.10.16
  */
 #define GST_TIME_AS_NSECONDS(time) (time)
 
@@ -183,10 +178,12 @@
  */
 #define GST_TIME_TO_TIMEVAL(t,tv)                               \
 G_STMT_START {                                                  \
-  (tv).tv_sec  = ((GstClockTime) (t)) / GST_SECOND;             \
-  (tv).tv_usec = (((GstClockTime) (t)) -                        \
+  g_assert ("Value of time " #t " is out of timeval's range" && \
+      ((t) / GST_SECOND) < G_MAXLONG);                          \
+  (tv).tv_sec  = (glong) (((GstClockTime) (t)) / GST_SECOND);   \
+  (tv).tv_usec = (glong) ((((GstClockTime) (t)) -               \
                   ((GstClockTime) (tv).tv_sec) * GST_SECOND)    \
-                 / GST_USECOND;                                 \
+                 / GST_USECOND);                                \
 } G_STMT_END
 
 /**
@@ -203,10 +200,12 @@
  *
  * Convert a #GstClockTime to a struct timespec (see man pselect)
  */
-#define GST_TIME_TO_TIMESPEC(t,ts)                      \
-G_STMT_START {                                          \
-  (ts).tv_sec  =  (t) / GST_SECOND;                     \
-  (ts).tv_nsec = ((t) - (ts).tv_sec * GST_SECOND) / GST_NSECOND;        \
+#define GST_TIME_TO_TIMESPEC(t,ts)                                \
+G_STMT_START {                                                    \
+  g_assert ("Value of time " #t " is out of timespec's range" &&  \
+      ((t) / GST_SECOND) < G_MAXLONG);                            \
+  (ts).tv_sec  =  (glong) ((t) / GST_SECOND);                     \
+  (ts).tv_nsec = (glong) (((t) - (ts).tv_sec * GST_SECOND) / GST_NSECOND);        \
 } G_STMT_END
 
 /* timestamp debugging macros */
@@ -268,7 +267,7 @@
  * @GST_CLOCK_BADTIME: A bad time was provided to a function.
  * @GST_CLOCK_ERROR: An error occurred
  * @GST_CLOCK_UNSUPPORTED: Operation is not supported
- * @GST_CLOCK_DONE: The ClockID is done waiting (Since: 0.10.32)
+ * @GST_CLOCK_DONE: The ClockID is done waiting
  *
  * The return value of a clock operation.
  */
@@ -362,6 +361,7 @@
   gboolean               unscheduled;
   gboolean               woken_up;
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -504,9 +504,6 @@
                                                          GstClockTimeDiff *jitter);
 GstClockReturn          gst_clock_id_wait_async         (GstClockID id,
                                                          GstClockCallback func,
-                                                         gpointer user_data);
-GstClockReturn          gst_clock_id_wait_async_full    (GstClockID id,
-                                                         GstClockCallback func,
                                                          gpointer user_data,
                                                          GDestroyNotify destroy_data);
 void                    gst_clock_id_unschedule         (GstClockID id);
diff --git a/gst/gstcompat.h b/gst/gstcompat.h
index 97728f4..62ee85d 100644
--- a/gst/gstcompat.h
+++ b/gst/gstcompat.h
@@ -58,6 +58,26 @@
 
 #define gst_tag_list_free(taglist)    gst_tag_list_unref(taglist)
 
+static inline gboolean
+gst_pad_set_caps (GstPad * pad, GstCaps * caps)
+{
+  GstEvent *event;
+  gboolean res = TRUE;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
+  g_return_val_if_fail (caps != NULL && gst_caps_is_fixed (caps), FALSE);
+
+  event = gst_event_new_caps (caps);
+
+  if (GST_PAD_IS_SRC (pad))
+    res = gst_pad_push_event (pad, event);
+  else
+    res = gst_pad_send_event (pad, event);
+
+  return res;
+}
+
+
 #ifndef GST_DISABLE_DEPRECATED
 
 #endif /* not GST_DISABLE_DEPRECATED */
diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in
index 31ea674..33aa728 100644
--- a/gst/gstconfig.h.in
+++ b/gst/gstconfig.h.in
@@ -127,8 +127,6 @@
  *
  * printf format type used to debug GStreamer segments.
  * This can only be used on pointers to GstSegment structures.
- *
- * Since: 0.10.10
  */
 @GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE@
 
diff --git a/gst/gstcontrolbinding.c b/gst/gstcontrolbinding.c
index b7cc8d5..e1da8c2 100644
--- a/gst/gstcontrolbinding.c
+++ b/gst/gstcontrolbinding.c
@@ -103,7 +103,7 @@
 }
 
 static void
-gst_control_binding_init (GstControlBinding * self)
+gst_control_binding_init (GstControlBinding * binding)
 {
 }
 
@@ -111,32 +111,33 @@
 gst_control_binding_constructor (GType type, guint n_construct_params,
     GObjectConstructParam * construct_params)
 {
-  GstControlBinding *self;
+  GstControlBinding *binding;
   GParamSpec *pspec;
 
-  self = GST_CONTROL_BINDING (G_OBJECT_CLASS (gst_control_binding_parent_class)
+  binding =
+      GST_CONTROL_BINDING (G_OBJECT_CLASS (gst_control_binding_parent_class)
       ->constructor (type, n_construct_params, construct_params));
 
-  GST_INFO_OBJECT (self->object, "trying to put property '%s' under control",
-      self->name);
+  GST_INFO_OBJECT (binding->object, "trying to put property '%s' under control",
+      binding->name);
 
   /* check if the object has a property of that name */
   if ((pspec =
-          g_object_class_find_property (G_OBJECT_GET_CLASS (self->object),
-              self->name))) {
-    GST_DEBUG_OBJECT (self->object, "  psec->flags : 0x%08x", pspec->flags);
+          g_object_class_find_property (G_OBJECT_GET_CLASS (binding->object),
+              binding->name))) {
+    GST_DEBUG_OBJECT (binding->object, "  psec->flags : 0x%08x", pspec->flags);
 
     /* check if this param is witable && controlable && !construct-only */
     if ((pspec->flags & (G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE |
                 G_PARAM_CONSTRUCT_ONLY)) ==
         (G_PARAM_WRITABLE | GST_PARAM_CONTROLLABLE)) {
-      self->pspec = pspec;
+      binding->pspec = pspec;
     }
   } else {
-    GST_WARNING_OBJECT (self->object, "class '%s' has no property '%s'",
-        G_OBJECT_TYPE_NAME (self->object), self->name);
+    GST_WARNING_OBJECT (binding->object, "class '%s' has no property '%s'",
+        G_OBJECT_TYPE_NAME (binding->object), binding->name);
   }
-  return (GObject *) self;
+  return (GObject *) binding;
 }
 
 static void
@@ -207,7 +208,7 @@
 
 /**
  * gst_control_binding_sync_values:
- * @self: the control binding
+ * @binding: the control binding
  * @object: the object that has controlled properties
  * @timestamp: the time that should be processed
  * @last_sync: the last time this was called
@@ -222,30 +223,30 @@
  * property, %FALSE otherwise
  */
 gboolean
-gst_control_binding_sync_values (GstControlBinding * self, GstObject * object,
-    GstClockTime timestamp, GstClockTime last_sync)
+gst_control_binding_sync_values (GstControlBinding * binding,
+    GstObject * object, GstClockTime timestamp, GstClockTime last_sync)
 {
   GstControlBindingClass *klass;
   gboolean ret = FALSE;
 
-  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), FALSE);
 
-  if (self->disabled)
+  if (binding->disabled)
     return TRUE;
 
-  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+  klass = GST_CONTROL_BINDING_GET_CLASS (binding);
 
   if (G_LIKELY (klass->sync_values != NULL)) {
-    ret = klass->sync_values (self, object, timestamp, last_sync);
+    ret = klass->sync_values (binding, object, timestamp, last_sync);
   } else {
-    GST_WARNING_OBJECT (self, "missing sync_values implementation");
+    GST_WARNING_OBJECT (binding, "missing sync_values implementation");
   }
   return ret;
 }
 
 /**
  * gst_control_binding_get_value:
- * @self: the control binding
+ * @binding: the control binding
  * @timestamp: the time the control-change should be read from
  *
  * Gets the value for the given controlled property at the requested time.
@@ -254,27 +255,28 @@
  * property isn't controlled.
  */
 GValue *
-gst_control_binding_get_value (GstControlBinding * self, GstClockTime timestamp)
+gst_control_binding_get_value (GstControlBinding * binding,
+    GstClockTime timestamp)
 {
   GstControlBindingClass *klass;
   GValue *ret = NULL;
 
-  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), NULL);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), NULL);
   g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), NULL);
 
-  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+  klass = GST_CONTROL_BINDING_GET_CLASS (binding);
 
   if (G_LIKELY (klass->get_value != NULL)) {
-    ret = klass->get_value (self, timestamp);
+    ret = klass->get_value (binding, timestamp);
   } else {
-    GST_WARNING_OBJECT (self, "missing get_value implementation");
+    GST_WARNING_OBJECT (binding, "missing get_value implementation");
   }
   return ret;
 }
 
 /**
  * gst_control_binding_get_value_array:
- * @self: the control binding
+ * @binding: the control binding
  * @timestamp: the time that should be processed
  * @interval: the time spacing between subsequent values
  * @n_values: the number of values
@@ -294,24 +296,25 @@
  * Returns: %TRUE if the given array could be filled, %FALSE otherwise
  */
 gboolean
-gst_control_binding_get_value_array (GstControlBinding * self,
+gst_control_binding_get_value_array (GstControlBinding * binding,
     GstClockTime timestamp, GstClockTime interval, guint n_values,
     gpointer values)
 {
   GstControlBindingClass *klass;
   gboolean ret = FALSE;
 
-  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), FALSE);
   g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
   g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (interval), FALSE);
   g_return_val_if_fail (values, FALSE);
 
-  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+  klass = GST_CONTROL_BINDING_GET_CLASS (binding);
 
   if (G_LIKELY (klass->get_value_array != NULL)) {
-    ret = klass->get_value_array (self, timestamp, interval, n_values, values);
+    ret =
+        klass->get_value_array (binding, timestamp, interval, n_values, values);
   } else {
-    GST_WARNING_OBJECT (self, "missing get_value_array implementation");
+    GST_WARNING_OBJECT (binding, "missing get_value_array implementation");
   }
   return ret;
 }
@@ -319,7 +322,7 @@
 #define CONVERT_ARRAY(type,TYPE) \
 { \
   g##type *v = g_new (g##type,n_values); \
-  ret = gst_control_binding_get_value_array (self, timestamp, interval, \
+  ret = gst_control_binding_get_value_array (binding, timestamp, interval, \
       n_values, v); \
   if (ret) { \
     for (i = 0; i < n_values; i++) { \
@@ -332,7 +335,7 @@
 
 /**
  * gst_control_binding_get_g_value_array:
- * @self: the control binding
+ * @binding: the control binding
  * @timestamp: the time that should be processed
  * @interval: the time spacing between subsequent values
  * @n_values: the number of values
@@ -348,32 +351,33 @@
  * Returns: %TRUE if the given array could be filled, %FALSE otherwise
  */
 gboolean
-gst_control_binding_get_g_value_array (GstControlBinding * self,
+gst_control_binding_get_g_value_array (GstControlBinding * binding,
     GstClockTime timestamp, GstClockTime interval, guint n_values,
     GValue * values)
 {
   GstControlBindingClass *klass;
   gboolean ret = FALSE;
 
-  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), FALSE);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), FALSE);
   g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
   g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (interval), FALSE);
   g_return_val_if_fail (values, FALSE);
 
-  klass = GST_CONTROL_BINDING_GET_CLASS (self);
+  klass = GST_CONTROL_BINDING_GET_CLASS (binding);
 
   if (G_LIKELY (klass->get_g_value_array != NULL)) {
     ret =
-        klass->get_g_value_array (self, timestamp, interval, n_values, values);
+        klass->get_g_value_array (binding, timestamp, interval, n_values,
+        values);
   } else {
     guint i;
     GType type, base;
 
-    base = type = G_PARAM_SPEC_VALUE_TYPE (GST_CONTROL_BINDING_PSPEC (self));
+    base = type = G_PARAM_SPEC_VALUE_TYPE (GST_CONTROL_BINDING_PSPEC (binding));
     while ((type = g_type_parent (type)))
       base = type;
 
-    GST_INFO_OBJECT (self, "missing get_g_value_array implementation, we're "
+    GST_INFO_OBJECT (binding, "missing get_g_value_array implementation, we're "
         "emulating it");
     switch (base) {
       case G_TYPE_INT:
@@ -406,7 +410,7 @@
       case G_TYPE_ENUM:
       {
         gint *v = g_new (gint, n_values);
-        ret = gst_control_binding_get_value_array (self, timestamp, interval,
+        ret = gst_control_binding_get_value_array (binding, timestamp, interval,
             n_values, v);
         if (ret) {
           for (i = 0; i < n_values; i++) {
@@ -419,8 +423,8 @@
         break;
       default:
         GST_WARNING ("incomplete implementation for paramspec type '%s'",
-            G_PARAM_SPEC_TYPE_NAME (GST_CONTROL_BINDING_PSPEC (self)));
-        GST_CONTROL_BINDING_PSPEC (self) = NULL;
+            G_PARAM_SPEC_TYPE_NAME (GST_CONTROL_BINDING_PSPEC (binding)));
+        GST_CONTROL_BINDING_PSPEC (binding) = NULL;
         break;
     }
   }
@@ -429,7 +433,7 @@
 
 /**
  * gst_control_binding_set_disabled:
- * @self: the control binding
+ * @binding: the control binding
  * @disabled: boolean that specifies whether to disable the controller
  * or not.
  *
@@ -437,23 +441,24 @@
  * gst_object_sync_values() will do nothing.
  */
 void
-gst_control_binding_set_disabled (GstControlBinding * self, gboolean disabled)
+gst_control_binding_set_disabled (GstControlBinding * binding,
+    gboolean disabled)
 {
-  g_return_if_fail (GST_IS_CONTROL_BINDING (self));
-  self->disabled = disabled;
+  g_return_if_fail (GST_IS_CONTROL_BINDING (binding));
+  binding->disabled = disabled;
 }
 
 /**
  * gst_control_binding_is_disabled:
- * @self: the control binding
+ * @binding: the control binding
  *
  * Check if the control binding is disabled.
  *
  * Returns: %TRUE if the binding is inactive
  */
 gboolean
-gst_control_binding_is_disabled (GstControlBinding * self)
+gst_control_binding_is_disabled (GstControlBinding * binding)
 {
-  g_return_val_if_fail (GST_IS_CONTROL_BINDING (self), TRUE);
-  return (self->disabled == TRUE);
+  g_return_val_if_fail (GST_IS_CONTROL_BINDING (binding), TRUE);
+  return (binding->disabled == TRUE);
 }
diff --git a/gst/gstcontrolbinding.h b/gst/gstcontrolbinding.h
index 7f83d3d..c33c1d4 100644
--- a/gst/gstcontrolbinding.h
+++ b/gst/gstcontrolbinding.h
@@ -49,13 +49,13 @@
 
 /**
  * GstControlBindingConvert:
- * @self: the #GstControlBinding instance
+ * @binding: the #GstControlBinding instance
  * @src_value: the value returned by the cotnrol source
  * @dest_value: the target GValue
  *
  * Function to map a control-value to the target GValue.
  */
-typedef void (* GstControlBindingConvert) (GstControlBinding *self, gdouble src_value, GValue *dest_value);
+typedef void (* GstControlBindingConvert) (GstControlBinding *binding, gdouble src_value, GValue *dest_value);
 
 /**
  * GstControlBinding:
@@ -91,10 +91,10 @@
   GstObjectClass parent_class;
 
   /* virtual methods */
-  gboolean (* sync_values) (GstControlBinding *self, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
-  GValue * (* get_value) (GstControlBinding *self, GstClockTime timestamp);
-  gboolean (* get_value_array) (GstControlBinding *self, GstClockTime timestamp,GstClockTime interval, guint n_values, gpointer values);
-  gboolean (* get_g_value_array) (GstControlBinding *self, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
+  gboolean (* sync_values) (GstControlBinding *binding, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
+  GValue * (* get_value) (GstControlBinding *binding, GstClockTime timestamp);
+  gboolean (* get_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, gpointer values);
+  gboolean (* get_g_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, GValue *values);
 
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
@@ -106,7 +106,7 @@
 
 /* Functions */
 
-gboolean            gst_control_binding_sync_values        (GstControlBinding * self, GstObject *object, 
+gboolean            gst_control_binding_sync_values        (GstControlBinding * binding, GstObject *object,
                                                             GstClockTime timestamp, GstClockTime last_sync);
 GValue *            gst_control_binding_get_value          (GstControlBinding *binding,
                                                             GstClockTime timestamp);
@@ -115,8 +115,8 @@
 gboolean            gst_control_binding_get_g_value_array  (GstControlBinding *binding, GstClockTime timestamp,
                                                             GstClockTime interval, guint n_values, GValue *values);
 
-void                gst_control_binding_set_disabled       (GstControlBinding * self, gboolean disabled);
-gboolean            gst_control_binding_is_disabled        (GstControlBinding * self);
+void                gst_control_binding_set_disabled       (GstControlBinding * binding, gboolean disabled);
+gboolean            gst_control_binding_is_disabled        (GstControlBinding * binding);
 G_END_DECLS
 
 #endif /* __GST_CONTROL_BINDING_H__ */
diff --git a/gst/gstcontrolsource.c b/gst/gstcontrolsource.c
index 611784f..53484ad 100644
--- a/gst/gstcontrolsource.c
+++ b/gst/gstcontrolsource.c
@@ -120,7 +120,7 @@
  * @timestamp: the first timestamp
  * @interval: the time steps
  * @n_values: the number of values to fetch
- * @value_array: array to put control-values in
+ * @values: array to put control-values in
  *
  * Gets an array of values for for this #GstControlSource. Values that are
  * undefined contain NANs.
diff --git a/gst/gstcontrolsource.h b/gst/gstcontrolsource.h
index 5debda4..e61c59a 100644
--- a/gst/gstcontrolsource.h
+++ b/gst/gstcontrolsource.h
@@ -63,7 +63,7 @@
 };
 
 /**
- * GstControlSourceGetValue
+ * GstControlSourceGetValue:
  * @self: the #GstControlSource instance
  * @timestamp: timestamp for which a value should be calculated
  * @value: a #GValue which will be set to the result. It must be initialized to the correct type.
@@ -77,7 +77,7 @@
     GstClockTime timestamp, gdouble *value);
 
 /**
- * GstControlSourceGetValueArray
+ * GstControlSourceGetValueArray:
  * @self: the #GstControlSource instance
  * @timestamp: timestamp for which a value should be calculated
  * @interval: the time spacing between subsequent values
diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
index 7f6ba43..6a8f659 100644
--- a/gst/gstdatetime.c
+++ b/gst/gstdatetime.c
@@ -24,8 +24,10 @@
 #include "glib-compat-private.h"
 #include "gst_private.h"
 #include "gstdatetime.h"
+#include "gstvalue.h"
 #include <glib.h>
 #include <math.h>
+#include <stdio.h>
 
 /**
  * SECTION:gstdatetime
@@ -38,39 +40,198 @@
  * Date information is handled using the proleptic Gregorian calendar.
  *
  * Provides basic creation functions and accessor functions to its fields.
- *
- * Since: 0.10.31
  */
 
+typedef enum
+{
+  GST_DATE_TIME_FIELDS_INVALID = 0,
+  GST_DATE_TIME_FIELDS_Y,       /* have year                */
+  GST_DATE_TIME_FIELDS_YM,      /* have year and month      */
+  GST_DATE_TIME_FIELDS_YMD,     /* have year, month and day */
+  GST_DATE_TIME_FIELDS_YMD_HM,
+  GST_DATE_TIME_FIELDS_YMD_HMS
+      /* Note: if we ever add more granularity here, e.g. for microsecs,
+       * the compare function will need updating */
+} GstDateTimeFields;
+
+struct _GstDateTime
+{
+  GDateTime *datetime;
+
+  GstDateTimeFields fields;
+  volatile gint ref_count;
+};
+
+/**
+ * gst_date_time_new_from_g_date_time:
+ * @dt: (transfer full): the #GDateTime. The new #GstDateTime takes ownership.
+ *
+ * Creates a new #GstDateTime from a #GDateTime object.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Returns: (transfer full): a newly created #GstDateTime, or NULL on error
+ */
+GstDateTime *
+gst_date_time_new_from_g_date_time (GDateTime * dt)
+{
+  GstDateTime *gst_dt;
+
+  if (!dt)
+    return NULL;
+
+  gst_dt = g_slice_new (GstDateTime);
+  gst_dt->datetime = dt;
+  gst_dt->fields = GST_DATE_TIME_FIELDS_YMD_HMS;
+  gst_dt->ref_count = 1;
+  return gst_dt;
+}
+
+/**
+ * gst_date_time_to_g_date_time:
+ * @datetime: GstDateTime.
+ *
+ * Creates a new #GDateTime from a fully defined #GstDateTime object.
+ *
+ * Free-function: g_date_time_unref
+ *
+ * Returns: (transfer full): a newly created #GDateTime, or NULL on error
+ */
+GDateTime *
+gst_date_time_to_g_date_time (GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, NULL);
+
+  if (datetime->fields != GST_DATE_TIME_FIELDS_YMD_HMS)
+    return NULL;
+
+  return g_date_time_add (datetime->datetime, 0);
+}
+
+/**
+ * gst_date_time_has_year:
+ * @datetime: a #GstDateTime
+ *
+ * Returns: TRUE if @datetime<!-- -->'s year field is set (which should always
+ *     be the case), otherwise FALSE
+ */
+gboolean
+gst_date_time_has_year (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, FALSE);
+
+  return (datetime->fields >= GST_DATE_TIME_FIELDS_Y);
+}
+
+/**
+ * gst_date_time_has_month:
+ * @datetime: a #GstDateTime
+ *
+ * Returns: TRUE if @datetime<!-- -->'s month field is set, otherwise FALSE
+ */
+gboolean
+gst_date_time_has_month (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, FALSE);
+
+  return (datetime->fields >= GST_DATE_TIME_FIELDS_YM);
+}
+
+/**
+ * gst_date_time_has_day:
+ * @datetime: a #GstDateTime
+ *
+ * Returns: TRUE if @datetime<!-- -->'s day field is set, otherwise FALSE
+ */
+gboolean
+gst_date_time_has_day (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, FALSE);
+
+  return (datetime->fields >= GST_DATE_TIME_FIELDS_YMD);
+}
+
+/**
+ * gst_date_time_has_time:
+ * @datetime: a #GstDateTime
+ *
+ * Returns: TRUE if @datetime<!-- -->'s hour and minute fields are set,
+ *     otherwise FALSE
+ */
+gboolean
+gst_date_time_has_time (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, FALSE);
+
+  return (datetime->fields >= GST_DATE_TIME_FIELDS_YMD_HM);
+}
+
+/**
+ * gst_date_time_has_second:
+ * @datetime: a #GstDateTime
+ *
+ * Returns: TRUE if @datetime<!-- -->'s second field is set, otherwise FALSE
+ */
+gboolean
+gst_date_time_has_second (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, FALSE);
+
+  return (datetime->fields >= GST_DATE_TIME_FIELDS_YMD_HMS);
+}
+
 /**
  * gst_date_time_get_year:
  * @datetime: a #GstDateTime
  *
  * Returns the year of this #GstDateTime
+ * Call gst_date_time_has_year before, to avoid warnings.
  *
  * Return value: The year of this #GstDateTime
- * Since: 0.10.31
  */
+gint
+gst_date_time_get_year (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+
+  return g_date_time_get_year (datetime->datetime);
+}
 
 /**
  * gst_date_time_get_month:
  * @datetime: a #GstDateTime
  *
  * Returns the month of this #GstDateTime. January is 1, February is 2, etc..
+ * Call gst_date_time_has_month before, to avoid warnings.
  *
  * Return value: The month of this #GstDateTime
- * Since: 0.10.31
  */
+gint
+gst_date_time_get_month (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+  g_return_val_if_fail (gst_date_time_has_month (datetime), 0);
+
+  return g_date_time_get_month (datetime->datetime);
+}
 
 /**
  * gst_date_time_get_day:
  * @datetime: a #GstDateTime
  *
- * Returns the day of this #GstDateTime.
+ * Returns the day of the month of this #GstDateTime.
+ * Call gst_date_time_has_day before, to avoid warnings.
  *
  * Return value: The day of this #GstDateTime
- * Since: 0.10.31
  */
+gint
+gst_date_time_get_day (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+  g_return_val_if_fail (gst_date_time_has_day (datetime), 0);
+
+  return g_date_time_get_day_of_month (datetime->datetime);
+}
 
 /**
  * gst_date_time_get_hour:
@@ -78,11 +239,56 @@
  *
  * Retrieves the hour of the day represented by @datetime in the gregorian
  * calendar. The return is in the range of 0 to 23.
+ * Call gst_date_time_has_haur before, to avoid warnings.
  *
  * Return value: the hour of the day
- *
- * Since: 0.10.31
  */
+gint
+gst_date_time_get_hour (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+  g_return_val_if_fail (gst_date_time_has_time (datetime), 0);
+
+  return g_date_time_get_hour (datetime->datetime);
+}
+
+/**
+ * gst_date_time_get_minute:
+ * @datetime: a #GstDateTime
+ *
+ * Retrieves the minute of the hour represented by @datetime in the gregorian
+ * calendar.
+ * Call gst_date_time_has_minute before, to avoid warnings.
+ *
+ * Return value: the minute of the hour
+ */
+gint
+gst_date_time_get_minute (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+  g_return_val_if_fail (gst_date_time_has_time (datetime), 0);
+
+  return g_date_time_get_minute (datetime->datetime);
+}
+
+/**
+ * gst_date_time_get_second:
+ * @datetime: a #GstDateTime
+ *
+ * Retrieves the second of the minute represented by @datetime in the gregorian
+ * calendar.
+ * Call gst_date_time_has_second before, to avoid warnings.
+ *
+ * Return value: the second represented by @datetime
+ */
+gint
+gst_date_time_get_second (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+  g_return_val_if_fail (gst_date_time_has_second (datetime), 0);
+
+  return g_date_time_get_second (datetime->datetime);
+}
 
 /**
  * gst_date_time_get_microsecond:
@@ -92,45 +298,15 @@
  * @datetime in the gregorian calendar.
  *
  * Return value: the microsecond of the second
- *
- * Since: 0.10.31
  */
+gint
+gst_date_time_get_microsecond (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0);
+  g_return_val_if_fail (gst_date_time_has_second (datetime), 0);
 
-/**
- * gst_date_time_get_minute:
- * @datetime: a #GstDateTime
- *
- * Retrieves the minute of the hour represented by @datetime in the gregorian
- * calendar.
- *
- * Return value: the minute of the hour
- *
- * Since: 0.10.31
- */
-
-/**
- * gst_date_time_get_second:
- * @datetime: a #GstDateTime
- *
- * Retrieves the second of the minute represented by @datetime in the gregorian
- * calendar.
- *
- * Return value: the second represented by @datetime
- *
- * Since: 0.10.31
- */
-
-/**
- * gst_date_time_get_second:
- * @datetime: a #GstDateTime
- *
- * Retrieves the second of the minute represented by @datetime in the gregorian
- * calendar.
- *
- * Return value: the second represented by @datetime
- *
- * Since: 0.10.31
- */
+  return g_date_time_get_microsecond (datetime->datetime);
+}
 
 /**
  * gst_date_time_get_time_zone_offset:
@@ -142,8 +318,85 @@
  * If @datetime represents UTC time, then the offset is zero.
  *
  * Return value: the offset from UTC in hours
- * Since: 0.10.31
  */
+gfloat
+gst_date_time_get_time_zone_offset (const GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, 0.0);
+  g_return_val_if_fail (gst_date_time_has_time (datetime), 0.0);
+
+  return (g_date_time_get_utc_offset (datetime->datetime) /
+      G_USEC_PER_SEC) / 3600.0;
+}
+
+/**
+ * gst_date_time_new_y:
+ * @year: the gregorian year
+ *
+ * Creates a new #GstDateTime using the date and times in the gregorian calendar
+ * in the local timezone.
+ *
+ * @year should be from 1 to 9999.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Return value: (transfer full): the newly created #GstDateTime
+ */
+GstDateTime *
+gst_date_time_new_y (gint year)
+{
+  return gst_date_time_new (0.0, year, -1, -1, -1, -1, -1);
+}
+
+/**
+ * gst_date_time_new_ym:
+ * @year: the gregorian year
+ * @month: the gregorian month
+ *
+ * Creates a new #GstDateTime using the date and times in the gregorian calendar
+ * in the local timezone.
+ *
+ * @year should be from 1 to 9999, @month should be from 1 to 12.
+ *
+ * If value is -1 then all over value will be ignored. For example
+ * if @month == -1, then #GstDateTime will created only for @year.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Return value: (transfer full): the newly created #GstDateTime
+ */
+GstDateTime *
+gst_date_time_new_ym (gint year, gint month)
+{
+  return gst_date_time_new (0.0, year, month, -1, -1, -1, -1);
+}
+
+/**
+ * gst_date_time_new_ymd:
+ * @year: the gregorian year
+ * @month: the gregorian month
+ * @day: the day of the gregorian month
+ *
+ * Creates a new #GstDateTime using the date and times in the gregorian calendar
+ * in the local timezone.
+ *
+ * @year should be from 1 to 9999, @month should be from 1 to 12, @day from
+ * 1 to 31.
+ *
+ * If value is -1 then all over value will be ignored. For example
+ * if @month == -1, then #GstDateTime will created only for @year. If
+ * @day == -1, then #GstDateTime will created for @year and @month and
+ * so on.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Return value: (transfer full): the newly created #GstDateTime
+ */
+GstDateTime *
+gst_date_time_new_ymd (gint year, gint month, gint day)
+{
+  return gst_date_time_new (0.0, year, month, day, -1, -1, -1);
+}
 
 /**
  * gst_date_time_new_from_unix_epoch_local_time:
@@ -155,9 +408,15 @@
  * Free-function: gst_date_time_unref
  *
  * Return value: (transfer full): the newly created #GstDateTime
- *
- * Since: 0.10.31
  */
+GstDateTime *
+gst_date_time_new_from_unix_epoch_local_time (gint64 secs)
+{
+  GDateTime *datetime;
+
+  datetime = g_date_time_new_from_unix_local (secs);
+  return gst_date_time_new_from_g_date_time (datetime);
+}
 
 /**
  * gst_date_time_new_from_unix_epoch_utc:
@@ -169,18 +428,46 @@
  * Free-function: gst_date_time_unref
  *
  * Return value: (transfer full): the newly created #GstDateTime
- *
- * Since: 0.10.31
  */
+GstDateTime *
+gst_date_time_new_from_unix_epoch_utc (gint64 secs)
+{
+  GstDateTime *datetime;
+  datetime =
+      gst_date_time_new_from_g_date_time (g_date_time_new_from_unix_utc (secs));
+  return datetime;
+}
+
+static GstDateTimeFields
+gst_date_time_check_fields (gint * year, gint * month, gint * day,
+    gint * hour, gint * minute, gdouble * seconds)
+{
+  if (*month == -1) {
+    *month = *day = 1;
+    *hour = *minute = *seconds = 0;
+    return GST_DATE_TIME_FIELDS_Y;
+  } else if (*day == -1) {
+    *day = 1;
+    *hour = *minute = *seconds = 0;
+    return GST_DATE_TIME_FIELDS_YM;
+  } else if (*hour == -1) {
+    *hour = *minute = *seconds = 0;
+    return GST_DATE_TIME_FIELDS_YMD;
+  } else if (*seconds == -1) {
+    *seconds = 0;
+    return GST_DATE_TIME_FIELDS_YMD_HM;
+  } else
+    return GST_DATE_TIME_FIELDS_YMD_HMS;
+}
 
 /**
  * gst_date_time_new_local_time:
  * @year: the gregorian year
- * @month: the gregorian month
- * @day: the day of the gregorian month
- * @hour: the hour of the day
- * @minute: the minute of the hour
- * @seconds: the second of the minute
+ * @month: the gregorian month, or -1
+ * @day: the day of the gregorian month, or -1
+ * @hour: the hour of the day, or -1
+ * @minute: the minute of the hour, or -1
+ * @seconds: the second of the minute, or -1
  *
  * Creates a new #GstDateTime using the date and times in the gregorian calendar
  * in the local timezone.
@@ -188,12 +475,99 @@
  * @year should be from 1 to 9999, @month should be from 1 to 12, @day from
  * 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.
  *
+ * If @month is -1, then the #GstDateTime created will only contain @year,
+ * and all other fields will be considered not set.
+ *
+ * If @day is -1, then the #GstDateTime created will only contain @year and
+ * @month and all other fields will be considered not set.
+ *
+ * If @hour is -1, then the #GstDateTime created will only contain @year and
+ * @month and @day, and the time fields will be considered not set. In this
+ * case @minute and @seconds should also be -1.
+ *
  * Free-function: gst_date_time_unref
  *
  * Return value: (transfer full): the newly created #GstDateTime
- *
- * Since: 0.10.31
  */
+GstDateTime *
+gst_date_time_new_local_time (gint year, gint month, gint day, gint hour,
+    gint minute, gdouble seconds)
+{
+  GstDateTimeFields fields;
+  GstDateTime *datetime;
+
+  g_return_val_if_fail (year > 0 && year <= 9999, NULL);
+  g_return_val_if_fail ((month > 0 && month <= 12) || month == -1, NULL);
+  g_return_val_if_fail ((day > 0 && day <= 31) || day == -1, NULL);
+  g_return_val_if_fail ((hour >= 0 && hour < 24) || hour == -1, NULL);
+  g_return_val_if_fail ((minute >= 0 && minute < 60) || minute == -1, NULL);
+  g_return_val_if_fail ((seconds >= 0 && seconds < 60) || seconds == -1, NULL);
+
+  fields = gst_date_time_check_fields (&year, &month, &day,
+      &hour, &minute, &seconds);
+
+  datetime = gst_date_time_new_from_g_date_time (g_date_time_new_local (year,
+          month, day, hour, minute, seconds));
+
+  datetime->fields = fields;
+  return datetime;
+}
+
+/**
+ * gst_date_time_new_now_local_time:
+ *
+ * Creates a new #GstDateTime representing the current date and time.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Return value: (transfer full): the newly created #GstDateTime which should
+ *     be freed with gst_date_time_unref().
+ */
+GstDateTime *
+gst_date_time_new_now_local_time (void)
+{
+  return gst_date_time_new_from_g_date_time (g_date_time_new_now_local ());
+}
+
+/**
+ * gst_date_time_new_now_utc:
+ *
+ * Creates a new #GstDateTime that represents the current instant at Universal
+ * coordinated time.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Return value: (transfer full): the newly created #GstDateTime which should
+ *   be freed with gst_date_time_unref().
+ */
+GstDateTime *
+gst_date_time_new_now_utc (void)
+{
+  return gst_date_time_new_from_g_date_time (g_date_time_new_now_utc ());
+}
+
+gint
+__gst_date_time_compare (const GstDateTime * dt1, const GstDateTime * dt2)
+{
+  gint64 diff;
+
+  /* we assume here that GST_DATE_TIME_FIELDS_YMD_HMS is the highest
+   * resolution, and ignore microsecond differences on purpose for now */
+  if (dt1->fields != dt2->fields)
+    return GST_VALUE_UNORDERED;
+
+  /* This will round down to nearest second, which is what we want. We're
+   * not comparing microseconds on purpose here, since we're not
+   * serialising them when doing new_utc_now() + to_string() */
+  diff =
+      g_date_time_to_unix (dt1->datetime) - g_date_time_to_unix (dt2->datetime);
+  if (diff < 0)
+    return GST_VALUE_LESS_THAN;
+  else if (diff > 0)
+    return GST_VALUE_GREATER_THAN;
+  else
+    return GST_VALUE_EQUAL;
+}
 
 /**
  * gst_date_time_new:
@@ -215,549 +589,36 @@
  * some fractional timezones, while it still keeps the readability of
  * represeting it in hours for most timezones.
  *
+ * If value is -1 then all over value will be ignored. For example
+ * if @month == -1, then #GstDateTime will created only for @year. If
+ * @day == -1, then #GstDateTime will created for @year and @month and
+ * so on.
+ *
  * Free-function: gst_date_time_unref
  *
  * Return value: (transfer full): the newly created #GstDateTime
- *
- * Since: 0.10.31
  */
-
-/**
- * gst_date_time_new_now_local_time:
- *
- * Creates a new #GstDateTime representing the current date and time.
- *
- * Free-function: gst_date_time_unref
- *
- * Return value: (transfer full): the newly created #GstDateTime which should
- *     be freed with gst_date_time_unref().
- *
- * Since: 0.10.31
- */
-
-/**
- * gst_date_time_new_now_utc:
- *
- * Creates a new #GstDateTime that represents the current instant at Universal
- * coordinated time.
- *
- * Free-function: gst_date_time_unref
- *
- * Return value: (transfer full): the newly created #GstDateTime which should
- *   be freed with gst_date_time_unref().
- *
- * Since: 0.10.31
- */
-
-
-#define GST_DATE_TIME_SEC_PER_DAY          (G_GINT64_CONSTANT (86400))
-#define GST_DATE_TIME_USEC_PER_DAY         (G_GINT64_CONSTANT (86400000000))
-#define GST_DATE_TIME_USEC_PER_HOUR        (G_GINT64_CONSTANT (3600000000))
-#define GST_DATE_TIME_USEC_PER_MINUTE      (G_GINT64_CONSTANT (60000000))
-#define GST_DATE_TIME_USEC_PER_SECOND      (G_GINT64_CONSTANT (1000000))
-#define GST_DATE_TIME_USEC_PER_MILLISECOND (G_GINT64_CONSTANT (1000))
-
-/* FIXME: this bug was resolved NOTGNOME */
-/* Jan 5th 2011 (Edward) : GLib's GDateTime is broken in regards to gmt offset
- * on macosx. Re-enable it once the following bug is fixed:
- * https://bugzilla.gnome.org/show_bug.cgi?id=638666 */
-#ifdef HAVE_OSX
-#undef GLIB_HAS_GDATETIME
-#else
-#define GLIB_HAS_GDATETIME
-#endif
-
-
-#ifndef GLIB_HAS_GDATETIME
-
-#define MAX_SUPPORTED_YEAR 9999
-#define GREGORIAN_LEAP(y)  (((y%4)==0)&&(!(((y%100)==0)&&((y%400)!=0))))
-
-static const guint16 days_in_months[2][13] = {
-  {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
-  {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
-};
-
-struct _GstDateTime
-{
-  /*
-   * As we don't have a datetime math API, we can have fields split here.
-   * (There is still some math done internally, but nothing really relevant).
-   *
-   * If we ever add one, we should go for a days since some epoch counter.
-   * (Proleptic Gregorian with 0001-01-01 as day 1)
-   */
-  gint16 year;
-  gint8 month;
-  gint8 day;
-  guint64 usec;                 /* Microsecond timekeeping within Day */
-
-  gint tzoffset;
-
-  volatile gint ref_count;
-};
-
-/*
- * Returns the utc offset in seconds for this time structure
- */
-static gint
-gmt_offset (struct tm *tm, time_t t)
-{
-#if defined (HAVE_TM_GMTOFF)
-  return tm->tm_gmtoff;
-#else
-  struct tm g;
-  time_t t2;
-#ifdef HAVE_GMTIME_R
-  gmtime_r (&t, &g);
-#else
-  g = *gmtime (&t);
-#endif
-  t2 = mktime (&g);
-  return (int) difftime (t, t2);
-#endif
-}
-
-static void
-gst_date_time_set_local_timezone (GstDateTime * dt)
-{
-  struct tm tt;
-  time_t t;
-
-  g_return_if_fail (dt != NULL);
-
-  memset (&tt, 0, sizeof (tt));
-
-  tt.tm_mday = gst_date_time_get_day (dt);
-  tt.tm_mon = gst_date_time_get_month (dt) - 1;
-  tt.tm_year = gst_date_time_get_year (dt) - 1900;
-  tt.tm_hour = gst_date_time_get_hour (dt);
-  tt.tm_min = gst_date_time_get_minute (dt);
-  tt.tm_sec = gst_date_time_get_second (dt);
-
-  t = mktime (&tt);
-
-  dt->tzoffset = gmt_offset (&tt, t) / 60;
-}
-
-static GstDateTime *
-gst_date_time_alloc (void)
-{
-  GstDateTime *datetime;
-
-  datetime = g_slice_new0 (GstDateTime);
-  datetime->ref_count = 1;
-
-  return datetime;
-}
-
-static void
-gst_date_time_free (GstDateTime * datetime)
-{
-  g_slice_free (GstDateTime, datetime);
-}
-
-static GstDateTime *
-gst_date_time_new_from_date (gint year, gint month, gint day)
-{
-  GstDateTime *dt;
-
-  g_return_val_if_fail (year > 0 && year <= 9999, NULL);
-  g_return_val_if_fail ((month > 0 && month <= 12), NULL);
-  g_return_val_if_fail ((day > 0 && day <= 31), NULL);
-
-  dt = gst_date_time_alloc ();
-
-  dt->year = year;
-  dt->month = month;
-  dt->day = day;
-  gst_date_time_set_local_timezone (dt);
-
-  return dt;
-}
-
-gint
-gst_date_time_get_year (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-
-  return datetime->year;
-}
-
-gint
-gst_date_time_get_month (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-
-  return datetime->month;
-}
-
-gint
-gst_date_time_get_day (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-
-  return datetime->day;
-}
-
-gint
-gst_date_time_get_hour (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-  return (datetime->usec / GST_DATE_TIME_USEC_PER_HOUR);
-}
-
-gint
-gst_date_time_get_microsecond (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-  return (datetime->usec % GST_DATE_TIME_USEC_PER_SECOND);
-}
-
-gint
-gst_date_time_get_minute (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-  return (datetime->usec % GST_DATE_TIME_USEC_PER_HOUR) /
-      GST_DATE_TIME_USEC_PER_MINUTE;
-}
-
-gint
-gst_date_time_get_second (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-  return (datetime->usec % GST_DATE_TIME_USEC_PER_MINUTE) /
-      GST_DATE_TIME_USEC_PER_SECOND;
-}
-
-gfloat
-gst_date_time_get_time_zone_offset (const GstDateTime * datetime)
-{
-  g_return_val_if_fail (datetime != NULL, 0);
-
-  return datetime->tzoffset / 60.0f;
-}
-
-GstDateTime *
-gst_date_time_new_from_unix_epoch_local_time (gint64 secs)
-{
-  GstDateTime *dt;
-  struct tm tm;
-  time_t tt;
-
-  memset (&tm, 0, sizeof (tm));
-  tt = (time_t) secs;
-
-#ifdef HAVE_LOCALTIME_R
-  localtime_r (&tt, &tm);
-#else
-  memcpy (&tm, localtime (&tt), sizeof (struct tm));
-#endif
-
-  dt = gst_date_time_new (0, tm.tm_year + 1900,
-      tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
-  gst_date_time_set_local_timezone (dt);
-  return dt;
-}
-
-GstDateTime *
-gst_date_time_new_from_unix_epoch_utc (gint64 secs)
-{
-  GstDateTime *dt;
-  struct tm tm;
-  time_t tt;
-
-  memset (&tm, 0, sizeof (tm));
-  tt = (time_t) secs;
-
-#ifdef HAVE_GMTIME_R
-  gmtime_r (&tt, &tm);
-#else
-  memcpy (&tm, gmtime (&tt), sizeof (struct tm));
-#endif
-
-  dt = gst_date_time_new (0, tm.tm_year + 1900,
-      tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
-  return dt;
-}
-
-GstDateTime *
-gst_date_time_new_local_time (gint year, gint month, gint day, gint hour,
-    gint minute, gdouble seconds)
-{
-  GstDateTime *dt;
-
-  dt = gst_date_time_new (0, year, month, day, hour, minute, seconds);
-
-  gst_date_time_set_local_timezone (dt);
-
-  return dt;
-}
-
 GstDateTime *
 gst_date_time_new (gfloat tzoffset, gint year, gint month, gint day, gint hour,
     gint minute, gdouble seconds)
 {
-  GstDateTime *dt;
-
-  g_return_val_if_fail (hour >= 0 && hour < 24, NULL);
-  g_return_val_if_fail (minute >= 0 && minute < 60, NULL);
-  g_return_val_if_fail (seconds >= 0 && seconds < 60, NULL);
-  g_return_val_if_fail (tzoffset >= -12.0 && tzoffset <= 12.0, NULL);
-
-  if (!(dt = gst_date_time_new_from_date (year, month, day)))
-    return NULL;
-
-  dt->usec = (hour * GST_DATE_TIME_USEC_PER_HOUR)
-      + (minute * GST_DATE_TIME_USEC_PER_MINUTE)
-      + (guint64) (floor (seconds * GST_DATE_TIME_USEC_PER_SECOND + 0.5));
-
-  /* we store in minutes */
-  dt->tzoffset = (gint) (tzoffset * 60.0);
-
-  return dt;
-}
-
-GstDateTime *
-gst_date_time_new_now_local_time (void)
-{
-  GstDateTime *datetime;
-  GTimeVal tv;
-  g_get_current_time (&tv);
-
-  datetime = gst_date_time_new_from_unix_epoch_local_time (tv.tv_sec);
-  datetime->usec += tv.tv_usec;
-  gst_date_time_set_local_timezone (datetime);
-  return datetime;
-}
-
-static GstDateTime *
-gst_date_time_copy (const GstDateTime * dt)
-{
-  GstDateTime *copy = gst_date_time_alloc ();
-
-  memcpy (copy, dt, sizeof (GstDateTime));
-  copy->ref_count = 1;
-
-  return copy;
-}
-
-static GstDateTime *
-gst_date_time_to_utc (const GstDateTime * dt)
-{
-  GstDateTime *utc;
-  gint64 usec;
-  gint days;
-  gint leap;
-
-  g_return_val_if_fail (dt != NULL, NULL);
-
-  utc = gst_date_time_copy (dt);
-
-  usec = dt->usec - dt->tzoffset * GST_DATE_TIME_USEC_PER_MINUTE;
-  days = usec / GST_DATE_TIME_USEC_PER_DAY;
-  if (usec < 0)
-    days--;
-  utc->day += days;
-
-  leap = GREGORIAN_LEAP (utc->year) ? 1 : 0;
-
-  /* check if we should update month/year */
-  if (utc->day < 1) {
-    if (utc->month == 1) {
-      utc->year--;
-      utc->month = 12;
-    } else {
-      utc->month--;
-    }
-    if (GREGORIAN_LEAP (utc->year))
-      utc->day = days_in_months[1][utc->month];
-    else
-      utc->day = days_in_months[0][utc->month];
-  } else if (utc->day > days_in_months[leap][utc->month]) {
-    if (utc->month == 12) {
-      utc->year++;
-      utc->month = 1;
-    } else {
-      utc->month++;
-    }
-    utc->day = 1;
-  }
-
-  if (usec < 0)
-    utc->usec =
-        GST_DATE_TIME_USEC_PER_DAY + (usec % GST_DATE_TIME_USEC_PER_DAY);
-  else
-    utc->usec = usec % GST_DATE_TIME_USEC_PER_DAY;
-
-  return utc;
-}
-
-GstDateTime *
-gst_date_time_new_now_utc (void)
-{
-  GstDateTime *now, *utc;
-
-  now = gst_date_time_new_now_local_time ();
-  utc = gst_date_time_to_utc (now);
-  gst_date_time_unref (now);
-  return utc;
-}
-
-gint
-priv_gst_date_time_compare (gconstpointer dt1, gconstpointer dt2)
-{
-  GstDateTime *a, *b;
-  gint res = 0;
-
-  a = gst_date_time_to_utc (dt1);
-  b = gst_date_time_to_utc (dt2);
-
-#define GST_DATE_TIME_COMPARE_VALUE(a,b,v)   \
-  if ((a)->v > (b)->v) {                     \
-    res = 1;                                 \
-    goto done;                               \
-  } else if ((a)->v < (b)->v) {              \
-    res = -1;                                \
-    goto done;                               \
-  }
-
-  GST_DATE_TIME_COMPARE_VALUE (a, b, year);
-  GST_DATE_TIME_COMPARE_VALUE (a, b, month);
-  GST_DATE_TIME_COMPARE_VALUE (a, b, day);
-  GST_DATE_TIME_COMPARE_VALUE (a, b, usec);
-
-#undef GST_DATE_TIME_COMPARE_VALUE
-
-done:
-  gst_date_time_unref (a);
-  gst_date_time_unref (b);
-  return res;
-}
-
-#else
-
-struct _GstDateTime
-{
-  GDateTime *datetime;
-
-  volatile gint ref_count;
-};
-
-static GstDateTime *
-gst_date_time_new_from_gdatetime (GDateTime * dt)
-{
-  GstDateTime *gst_dt;
-
-  if (!dt)
-    return NULL;
-
-  gst_dt = g_slice_new (GstDateTime);
-  gst_dt->datetime = dt;
-  gst_dt->ref_count = 1;
-  return gst_dt;
-}
-
-gint
-gst_date_time_get_year (const GstDateTime * datetime)
-{
-  return g_date_time_get_year (datetime->datetime);
-}
-
-gint
-gst_date_time_get_month (const GstDateTime * datetime)
-{
-  return g_date_time_get_month (datetime->datetime);
-}
-
-gint
-gst_date_time_get_day (const GstDateTime * datetime)
-{
-  return g_date_time_get_day_of_month (datetime->datetime);
-}
-
-gint
-gst_date_time_get_hour (const GstDateTime * datetime)
-{
-  return g_date_time_get_hour (datetime->datetime);
-}
-
-gint
-gst_date_time_get_minute (const GstDateTime * datetime)
-{
-  return g_date_time_get_minute (datetime->datetime);
-}
-
-gint
-gst_date_time_get_second (const GstDateTime * datetime)
-{
-  return g_date_time_get_second (datetime->datetime);
-}
-
-gint
-gst_date_time_get_microsecond (const GstDateTime * datetime)
-{
-  return g_date_time_get_microsecond (datetime->datetime);
-}
-
-gfloat
-gst_date_time_get_time_zone_offset (const GstDateTime * datetime)
-{
-  return (g_date_time_get_utc_offset (datetime->datetime) /
-      G_USEC_PER_SEC) / 3600.0;
-}
-
-GstDateTime *
-gst_date_time_new_from_unix_epoch_local_time (gint64 secs)
-{
-  return
-      gst_date_time_new_from_gdatetime (g_date_time_new_from_unix_local (secs));
-}
-
-GstDateTime *
-gst_date_time_new_from_unix_epoch_utc (gint64 secs)
-{
-  return
-      gst_date_time_new_from_gdatetime (g_date_time_new_from_unix_utc (secs));
-}
-
-GstDateTime *
-gst_date_time_new_local_time (gint year, gint month, gint day, gint hour,
-    gint minute, gdouble seconds)
-{
-  return gst_date_time_new_from_gdatetime (g_date_time_new_local (year, month,
-          day, hour, minute, seconds));
-}
-
-GstDateTime *
-gst_date_time_new_now_local_time (void)
-{
-  return gst_date_time_new_from_gdatetime (g_date_time_new_now_local ());
-}
-
-GstDateTime *
-gst_date_time_new_now_utc (void)
-{
-  return gst_date_time_new_from_gdatetime (g_date_time_new_now_utc ());
-}
-
-gint
-priv_gst_date_time_compare (gconstpointer dt1, gconstpointer dt2)
-{
-  const GstDateTime *datetime1 = dt1;
-  const GstDateTime *datetime2 = dt2;
-  return g_date_time_compare (datetime1->datetime, datetime2->datetime);
-}
-
-GstDateTime *
-gst_date_time_new (gfloat tzoffset, gint year, gint month, gint day, gint hour,
-    gint minute, gdouble seconds)
-{
+  GstDateTimeFields fields;
   gchar buf[6];
   GTimeZone *tz;
   GDateTime *dt;
+  GstDateTime *datetime;
   gint tzhour, tzminute;
 
+  g_return_val_if_fail (year > 0 && year <= 9999, NULL);
+  g_return_val_if_fail ((month > 0 && month <= 12) || month == -1, NULL);
+  g_return_val_if_fail ((day > 0 && day <= 31) || day == -1, NULL);
+  g_return_val_if_fail ((hour >= 0 && hour < 24) || hour == -1, NULL);
+  g_return_val_if_fail ((minute >= 0 && minute < 60) || minute == -1, NULL);
+  g_return_val_if_fail ((seconds >= 0 && seconds < 60) || seconds == -1, NULL);
+  g_return_val_if_fail (tzoffset >= -12.0 && tzoffset <= 12.0, NULL);
+  g_return_val_if_fail ((hour >= 0 && minute >= 0) ||
+      (hour == -1 && minute == -1 && seconds == -1 && tzoffset == 0.0), NULL);
+
   tzhour = (gint) ABS (tzoffset);
   tzminute = (gint) ((ABS (tzoffset) - tzhour) * 60);
 
@@ -766,11 +627,248 @@
 
   tz = g_time_zone_new (buf);
 
+  fields = gst_date_time_check_fields (&year, &month, &day,
+      &hour, &minute, &seconds);
+
   dt = g_date_time_new (tz, year, month, day, hour, minute, seconds);
   g_time_zone_unref (tz);
-  return gst_date_time_new_from_gdatetime (dt);
+
+  datetime = gst_date_time_new_from_g_date_time (dt);
+  datetime->fields = fields;
+
+  return datetime;
 }
 
+gchar *
+__gst_date_time_serialize (GstDateTime * datetime, gboolean serialize_usecs)
+{
+  GString *s;
+  gfloat gmt_offset;
+  guint msecs;
+
+  /* we always have at least the year */
+  s = g_string_new (NULL);
+  g_string_append_printf (s, "%04u", gst_date_time_get_year (datetime));
+
+  if (datetime->fields == GST_DATE_TIME_FIELDS_Y)
+    goto done;
+
+  /* add month */
+  g_string_append_printf (s, "-%02u", gst_date_time_get_month (datetime));
+
+  if (datetime->fields == GST_DATE_TIME_FIELDS_YM)
+    goto done;
+
+  /* add day of month */
+  g_string_append_printf (s, "-%02u", gst_date_time_get_day (datetime));
+
+  if (datetime->fields == GST_DATE_TIME_FIELDS_YMD)
+    goto done;
+
+  /* add time */
+  g_string_append_printf (s, "T%02u:%02u", gst_date_time_get_hour (datetime),
+      gst_date_time_get_minute (datetime));
+
+  if (datetime->fields == GST_DATE_TIME_FIELDS_YMD_HM)
+    goto add_timezone;
+
+  /* add seconds */
+  g_string_append_printf (s, ":%02u", gst_date_time_get_second (datetime));
+
+  /* add microseconds */
+  if (serialize_usecs) {
+    msecs = gst_date_time_get_microsecond (datetime);
+    if (msecs != 0) {
+      g_string_append_printf (s, ".%06u", msecs);
+      /* trim trailing 0s */
+      while (s->str[s->len - 1] == '0')
+        g_string_truncate (s, s->len - 1);
+    }
+  }
+
+  /* add timezone */
+
+add_timezone:
+
+  gmt_offset = gst_date_time_get_time_zone_offset (datetime);
+  if (gmt_offset == 0) {
+    g_string_append_c (s, 'Z');
+  } else {
+    guint tzhour, tzminute;
+
+    tzhour = (guint) ABS (gmt_offset);
+    tzminute = (guint) ((ABS (gmt_offset) - tzhour) * 60);
+
+    g_string_append_c (s, (gmt_offset >= 0) ? '+' : '-');
+    g_string_append_printf (s, "%02u%02u", tzhour, tzminute);
+  }
+
+done:
+
+  return g_string_free (s, FALSE);
+}
+
+/**
+ * gst_date_time_to_iso8601_string:
+ * @datetime: GstDateTime.
+ *
+ * Create a minimal string compatible with ISO-8601. Possible output formats
+ * are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
+ * 2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100
+ *
+ * Returns: a newly allocated string formatted according to ISO 8601 and
+ *     only including the datetime fields that are valid, or NULL in case
+ *     there was an error. The string should be freed with g_free().
+ */
+gchar *
+gst_date_time_to_iso8601_string (GstDateTime * datetime)
+{
+  g_return_val_if_fail (datetime != NULL, NULL);
+
+  if (datetime->fields == GST_DATE_TIME_FIELDS_INVALID)
+    return NULL;
+
+  return __gst_date_time_serialize (datetime, FALSE);
+}
+
+/**
+ * gst_date_time_new_from_iso8601_string:
+ * @string: ISO 8601-formatted datetime string.
+ *
+ * Tries to parse common variants of ISO-8601 datetime strings into a
+ * #GstDateTime.
+ *
+ * Free-function: gst_date_time_unref
+ *
+ * Returns: (transfer full): a newly created #GstDateTime, or NULL on error
+ */
+GstDateTime *
+gst_date_time_new_from_iso8601_string (const gchar * string)
+{
+  gint year = -1, month = -1, day = -1, hour = -1, minute = -1;
+  gdouble second = -1.0;
+  gfloat tzoffset = 0.0;
+  guint64 usecs;
+  gint len, ret;
+
+  g_return_val_if_fail (string != NULL, NULL);
+
+  GST_DEBUG ("Parsing '%s' into a datetime", string);
+
+  len = strlen (string);
+
+  if (len < 4 || !g_ascii_isdigit (string[0]) || !g_ascii_isdigit (string[1])
+      || !g_ascii_isdigit (string[2]) || !g_ascii_isdigit (string[3]))
+    return NULL;
+
+  ret = sscanf (string, "%04d-%02d-%02d", &year, &month, &day);
+
+  if (ret == 0)
+    return NULL;
+
+  if (ret == 3 && day <= 0) {
+    ret = 2;
+    day = -1;
+  }
+
+  if (ret >= 2 && month <= 0) {
+    ret = 1;
+    month = day = -1;
+  }
+
+  if (ret >= 1 && year <= 0)
+    return NULL;
+
+  else if (ret >= 1 && len < 16)
+    /* YMD is 10 chars. XMD + HM will be 16 chars. if it is less,
+     * it make no sense to continue. We will stay with YMD. */
+    goto ymd;
+
+  string += 10;
+  /* Exit if there is no expeceted value on this stage */
+  if (!(*string == 'T' || *string == '-' || *string == ' '))
+    goto ymd;
+
+  /* if hour or minute fails, then we will use onlly ymd. */
+  hour = g_ascii_strtoull (string + 1, (gchar **) & string, 10);
+  if (hour > 24 || *string != ':')
+    goto ymd;
+
+  /* minute */
+  minute = g_ascii_strtoull (string + 1, (gchar **) & string, 10);
+  if (minute > 59)
+    goto ymd;
+
+  /* second */
+  if (*string == ':') {
+    second = g_ascii_strtoull (string + 1, (gchar **) & string, 10);
+    /* if we fail here, we still can reuse hour and minute. We
+     * will still attempt to parse any timezone information */
+    if (second > 59) {
+      second = -1.0;
+    } else {
+      /* microseconds */
+      if (*string == '.' || *string == ',') {
+        const gchar *usec_start = string + 1;
+        guint digits;
+
+        usecs = g_ascii_strtoull (string + 1, (gchar **) & string, 10);
+        if (usecs != G_MAXUINT64 && string > usec_start) {
+          digits = (guint) (string - usec_start);
+          second += (gdouble) usecs / pow (10.0, digits);
+        }
+      }
+    }
+  }
+
+  if (*string == 'Z')
+    goto ymd_hms;
+  else {
+    /* reuse some code from gst-plugins-base/gst-libs/gst/tag/gstxmptag.c */
+    gint gmt_offset_hour = -1, gmt_offset_min = -1, gmt_offset = -1;
+    gchar *plus_pos = NULL;
+    gchar *neg_pos = NULL;
+    gchar *pos = NULL;
+
+    GST_LOG ("Checking for timezone information");
+
+    /* check if there is timezone info */
+    plus_pos = strrchr (string, '+');
+    neg_pos = strrchr (string, '-');
+    if (plus_pos)
+      pos = plus_pos + 1;
+    else if (neg_pos)
+      pos = neg_pos + 1;
+
+    if (pos) {
+      gint ret_tz;
+      if (pos[2] == ':')
+        ret_tz = sscanf (pos, "%d:%d", &gmt_offset_hour, &gmt_offset_min);
+      else
+        ret_tz = sscanf (pos, "%02d%02d", &gmt_offset_hour, &gmt_offset_min);
+
+      GST_DEBUG ("Parsing timezone: %s", pos);
+
+      if (ret_tz == 2) {
+        gmt_offset = gmt_offset_hour * 60 + gmt_offset_min;
+        if (neg_pos != NULL && neg_pos + 1 == pos)
+          gmt_offset *= -1;
+
+        tzoffset = gmt_offset / 60.0;
+
+        GST_LOG ("Timezone offset: %f (%d minutes)", tzoffset, gmt_offset);
+      } else
+        GST_WARNING ("Failed to parse timezone information");
+    }
+  }
+
+ymd_hms:
+  return gst_date_time_new (tzoffset, year, month, day, hour, minute, second);
+ymd:
+  return gst_date_time_new_ymd (year, month, day);
+}
+
+
 static void
 gst_date_time_free (GstDateTime * datetime)
 {
@@ -778,8 +876,6 @@
   g_slice_free (GstDateTime, datetime);
 }
 
-#endif
-
 /**
  * gst_date_time_ref:
  * @datetime: a #GstDateTime
@@ -787,8 +883,6 @@
  * Atomically increments the reference count of @datetime by one.
  *
  * Return value: (transfer full): the reference @datetime
- *
- * Since: 0.10.31
  */
 GstDateTime *
 gst_date_time_ref (GstDateTime * datetime)
@@ -805,8 +899,6 @@
  *
  * Atomically decrements the reference count of @datetime by one.  When the
  * reference count reaches zero, the structure is freed.
- *
- * Since: 0.10.31
  */
 void
 gst_date_time_unref (GstDateTime * datetime)
diff --git a/gst/gstdatetime.h b/gst/gstdatetime.h
index 96d8bbd..500b9cc 100644
--- a/gst/gstdatetime.h
+++ b/gst/gstdatetime.h
@@ -36,31 +36,71 @@
  */
 typedef struct _GstDateTime GstDateTime;
 
-gint    gst_date_time_get_year             (const GstDateTime * datetime);
-gint    gst_date_time_get_month            (const GstDateTime * datetime);
-gint    gst_date_time_get_day              (const GstDateTime * datetime);
-gint    gst_date_time_get_hour             (const GstDateTime * datetime);
-gint    gst_date_time_get_minute           (const GstDateTime * datetime);
-gint    gst_date_time_get_second           (const GstDateTime * datetime);
-gint    gst_date_time_get_microsecond      (const GstDateTime * datetime);
-gfloat  gst_date_time_get_time_zone_offset (const GstDateTime * datetime);
+/* query which fields are set */
+
+gboolean        gst_date_time_has_year                (const GstDateTime * datetime);
+gboolean        gst_date_time_has_month               (const GstDateTime * datetime);
+gboolean        gst_date_time_has_day                 (const GstDateTime * datetime);
+gboolean        gst_date_time_has_time                (const GstDateTime * datetime);
+gboolean        gst_date_time_has_second              (const GstDateTime * datetime);
+
+/* field getters */
+
+gint            gst_date_time_get_year                (const GstDateTime * datetime);
+gint            gst_date_time_get_month               (const GstDateTime * datetime);
+gint            gst_date_time_get_day                 (const GstDateTime * datetime);
+gint            gst_date_time_get_hour                (const GstDateTime * datetime);
+gint            gst_date_time_get_minute              (const GstDateTime * datetime);
+gint            gst_date_time_get_second              (const GstDateTime * datetime);
+gint            gst_date_time_get_microsecond         (const GstDateTime * datetime);
+gfloat          gst_date_time_get_time_zone_offset    (const GstDateTime * datetime);
+
+/* constructors */
 
 GstDateTime *   gst_date_time_new_from_unix_epoch_local_time (gint64 secs) G_GNUC_MALLOC;
+
 GstDateTime *   gst_date_time_new_from_unix_epoch_utc   (gint64 secs) G_GNUC_MALLOC;
-GstDateTime *   gst_date_time_new_local_time            (gint year, gint month,
-                                                         gint day, gint hour,
+
+GstDateTime *   gst_date_time_new_local_time            (gint year,
+                                                         gint month,
+                                                         gint day,
+                                                         gint hour,
                                                          gint minute,
                                                          gdouble seconds) G_GNUC_MALLOC;
+
+GstDateTime *   gst_date_time_new_y                     (gint year) G_GNUC_MALLOC;
+
+GstDateTime *   gst_date_time_new_ym                    (gint year,
+                                                         gint month) G_GNUC_MALLOC;
+
+GstDateTime *   gst_date_time_new_ymd                   (gint year,
+                                                         gint month,
+                                                         gint day) G_GNUC_MALLOC;
+
 GstDateTime *   gst_date_time_new                       (gfloat tzoffset,
                                                          gint year, gint month,
                                                          gint day, gint hour,
                                                          gint minute,
                                                          gdouble seconds) G_GNUC_MALLOC;
+
 GstDateTime *   gst_date_time_new_now_local_time (void) G_GNUC_MALLOC;
+
 GstDateTime *   gst_date_time_new_now_utc        (void) G_GNUC_MALLOC;
 
+
+gchar *         gst_date_time_to_iso8601_string  (GstDateTime * datetime) G_GNUC_MALLOC;
+GstDateTime *   gst_date_time_new_from_iso8601_string  (const gchar * string) G_GNUC_MALLOC;
+
+GDateTime *     gst_date_time_to_g_date_time       (GstDateTime * datetime);
+
+GstDateTime *   gst_date_time_new_from_g_date_time (GDateTime * dt);
+
+/* refcounting */
+
 GstDateTime *   gst_date_time_ref                (GstDateTime * datetime);
+
 void            gst_date_time_unref              (GstDateTime * datetime);
 
 G_END_DECLS
+
 #endif /* __GST_DATE_TIME_H__ */
diff --git a/gst/gstdebugutils.h b/gst/gstdebugutils.h
index 8420d3b..39decd8 100644
--- a/gst/gstdebugutils.h
+++ b/gst/gstdebugutils.h
@@ -39,8 +39,6 @@
  *
  * Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
  * and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().
- *
- * Since: 0.10.15
  */
 typedef enum {
   GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE         = (1<<0),
@@ -75,8 +73,6 @@
  * The macro is only active if gstreamer is configured with
  * &quot;--gst-enable-gst-debug&quot; and the environment variable
  * GST_DEBUG_DUMP_DOT_DIR is set to a basepath (e.g. /tmp).
- *
- * Since: 0.10.15
  */
 #define GST_DEBUG_BIN_TO_DOT_FILE(bin, details, file_name) gst_debug_bin_to_dot_file (bin, details, file_name)
 
@@ -89,8 +85,6 @@
  *
  * This works like GST_DEBUG_BIN_TO_DOT_FILE(), but adds the current timestamp
  * to the filename, so that it can be used to take multiple snapshots.
- *
- * Since: 0.10.15
  */
 #define GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(bin, details, file_name) gst_debug_bin_to_dot_file_with_ts (bin, details, file_name)
 
diff --git a/gst/gstelement.c b/gst/gstelement.c
index 2962830..bf135a6 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -502,8 +502,6 @@
  * pipelines, and you can also ensure that the pipelines have the same clock.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 void
 gst_element_set_start_time (GstElement * element, GstClockTime time)
@@ -535,8 +533,6 @@
  * MT safe.
  *
  * Returns: the start time of the element.
- *
- * Since: 0.10.24
  */
 GstClockTime
 gst_element_get_start_time (GstElement * element)
@@ -672,17 +668,17 @@
   /* add it to the list */
   switch (gst_pad_get_direction (pad)) {
     case GST_PAD_SRC:
-      element->srcpads = g_list_prepend (element->srcpads, pad);
+      element->srcpads = g_list_append (element->srcpads, pad);
       element->numsrcpads++;
       break;
     case GST_PAD_SINK:
-      element->sinkpads = g_list_prepend (element->sinkpads, pad);
+      element->sinkpads = g_list_append (element->sinkpads, pad);
       element->numsinkpads++;
       break;
     default:
       goto no_direction;
   }
-  element->pads = g_list_prepend (element->pads, pad);
+  element->pads = g_list_append (element->pads, pad);
   element->numpads++;
   element->pads_cookie++;
   GST_OBJECT_UNLOCK (element);
@@ -725,7 +721,7 @@
 /**
  * gst_element_remove_pad:
  * @element: a #GstElement to remove pad from.
- * @pad: (transfer none): the #GstPad to remove from the element.
+ * @pad: (transfer full): the #GstPad to remove from the element.
  *
  * Removes @pad from @element. @pad will be destroyed if it has not been
  * referenced elsewhere using gst_object_unparent().
@@ -1084,8 +1080,6 @@
  *
  * Returns: (transfer full): requested #GstPad if found, otherwise %NULL.
  *     Release after usage.
- *
- * Since: 0.10.32
  */
 GstPad *
 gst_element_request_pad (GstElement * element,
@@ -1120,6 +1114,9 @@
  * be freed after usage. Also more specialized iterators exists such as
  * gst_element_iterate_src_pads() or gst_element_iterate_sink_pads().
  *
+ * The order of pads returned by the iterator will be the order in which
+ * the pads were added to the element.
+ *
  * Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
  *     after use.
  *
@@ -1139,6 +1136,9 @@
  *
  * Retrieves an iterator of @element's source pads.
  *
+ * The order of pads returned by the iterator will be the order in which
+ * the pads were added to the element.
+ *
  * Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
  *     after use.
  *
@@ -1158,6 +1158,9 @@
  *
  * Retrieves an iterator of @element's sink pads.
  *
+ * The order of pads returned by the iterator will be the order in which
+ * the pads were added to the element.
+ *
  * Returns: (transfer full): the #GstIterator of #GstPad. Unref each pad
  *     after use.
  *
@@ -1556,8 +1559,8 @@
  * @rate: The new playback rate
  * @format: The format of the seek values
  * @flags: The optional seek flags.
- * @cur_type: The type and flags for the new current position
- * @cur: The value of the new current position
+ * @start_type: The type and flags for the new start position
+ * @start: The value of the new start position
  * @stop_type: The type and flags for the new stop position
  * @stop: The value of the new stop position
  *
@@ -1572,7 +1575,7 @@
  */
 gboolean
 gst_element_seek (GstElement * element, gdouble rate, GstFormat format,
-    GstSeekFlags flags, GstSeekType cur_type, gint64 cur,
+    GstSeekFlags flags, GstSeekType start_type, gint64 start,
     GstSeekType stop_type, gint64 stop)
 {
   GstEvent *event;
@@ -1581,7 +1584,8 @@
   g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
 
   event =
-      gst_event_new_seek (rate, format, flags, cur_type, cur, stop_type, stop);
+      gst_event_new_seek (rate, format, flags, start_type, start, stop_type,
+      stop);
   result = gst_element_send_event (element, event);
 
   return result;
@@ -2699,7 +2703,7 @@
   gboolean res;
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
-      "pads_activate with active %d", active);
+      "%s pads", active ? "activate" : "deactivate");
 
   iter = gst_element_iterate_src_pads (element);
   res =
@@ -2718,7 +2722,7 @@
     goto sink_failed;
 
   GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
-      "pads_activate successful");
+      "pad %sactivation successful", active ? "" : "de");
 
   return TRUE;
 
@@ -2726,7 +2730,7 @@
 src_failed:
   {
     GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
-        "source pads_activate failed");
+        "pad %sactivation failed", active ? "" : "de");
     return FALSE;
   }
 sink_failed:
@@ -2851,6 +2855,10 @@
       GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
           "removing request pad %s:%s", GST_DEBUG_PAD_NAME (pad));
       oclass->release_pad (element, pad);
+
+      /* in case the release_pad function removed the next pad too */
+      if (walk && g_list_position (element->pads, walk) == -1)
+        walk = element->pads;
     }
   }
   /* remove the remaining pads */
diff --git a/gst/gstelement.h b/gst/gstelement.h
index 263c573..725dc34 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -127,8 +127,6 @@
  * @elem: a #GstElement to return the target state for.
  *
  * This macro returns the target #GstState of the element.
- *
- * Since: 0.10.13
  */
 #define GST_STATE_TARGET(elem)          (GST_ELEMENT_CAST(elem)->target_state)
 
@@ -313,11 +311,9 @@
 
 /**
  * GstElementFlags:
- * @GST_ELEMENT_FLAG_UNPARENTING: Child is being removed from the parent bin.
- *  gst_bin_remove() on a child already being removed immediately returns FALSE
  * @GST_ELEMENT_FLAG_LOCKED_STATE: ignore state changes from parent
  * @GST_ELEMENT_FLAG_SINK: the element is a sink
- * @GST_ELEMENT_FLAG_SOURCE: the element is a source. Since 0.10.31
+ * @GST_ELEMENT_FLAG_SOURCE: the element is a source.
  * @GST_ELEMENT_FLAG_PROVIDE_CLOCK: the element can provide a clock
  * @GST_ELEMENT_FLAG_REQUIRE_CLOCK: the element requires a clock
  * @GST_ELEMENT_FLAG_INDEXABLE: the element can use an index
@@ -327,13 +323,12 @@
  */
 typedef enum
 {
-  GST_ELEMENT_FLAG_UNPARENTING    = (GST_OBJECT_FLAG_LAST << 0),
-  GST_ELEMENT_FLAG_LOCKED_STATE   = (GST_OBJECT_FLAG_LAST << 1),
-  GST_ELEMENT_FLAG_SINK           = (GST_OBJECT_FLAG_LAST << 2),
-  GST_ELEMENT_FLAG_SOURCE         = (GST_OBJECT_FLAG_LAST << 3),
-  GST_ELEMENT_FLAG_PROVIDE_CLOCK  = (GST_OBJECT_FLAG_LAST << 4),
-  GST_ELEMENT_FLAG_REQUIRE_CLOCK  = (GST_OBJECT_FLAG_LAST << 5),
-  GST_ELEMENT_FLAG_INDEXABLE      = (GST_OBJECT_FLAG_LAST << 6),
+  GST_ELEMENT_FLAG_LOCKED_STATE   = (GST_OBJECT_FLAG_LAST << 0),
+  GST_ELEMENT_FLAG_SINK           = (GST_OBJECT_FLAG_LAST << 1),
+  GST_ELEMENT_FLAG_SOURCE         = (GST_OBJECT_FLAG_LAST << 2),
+  GST_ELEMENT_FLAG_PROVIDE_CLOCK  = (GST_OBJECT_FLAG_LAST << 3),
+  GST_ELEMENT_FLAG_REQUIRE_CLOCK  = (GST_OBJECT_FLAG_LAST << 4),
+  GST_ELEMENT_FLAG_INDEXABLE      = (GST_OBJECT_FLAG_LAST << 5),
   /* padding */
   GST_ELEMENT_FLAG_LAST           = (GST_OBJECT_FLAG_LAST << 10)
 } GstElementFlags;
@@ -394,8 +389,6 @@
  *
  * This macro returns the start_time of the @elem. The start_time is the
  * running_time of the pipeline when the element went to PAUSED.
- *
- * Since: 0.10.24
  */
 #define GST_ELEMENT_START_TIME(elem)            (GST_ELEMENT_CAST(elem)->start_time)
 
@@ -467,8 +460,6 @@
  * the application of something noteworthy that is not an error.
  * The pipeline will post a info message and the
  * application will be informed.
- *
- * Since: 0.10.12
  */
 #define GST_ELEMENT_INFO(el, domain, code, text, debug)                 \
 G_STMT_START {                                                          \
@@ -535,11 +526,11 @@
  * state will yield the running_time against the clock.
  * @start_time: the running_time of the last PAUSED state
  * @numpads: number of pads of the element, includes both source and sink pads.
- * @pads: list of pads
+ * @pads: (element-type Gst.Pad): list of pads
  * @numsrcpads: number of source pads of the element.
- * @srcpads: list of source pads
+ * @srcpads: (element-type Gst.Pad): list of source pads
  * @numsinkpads: number of sink pads of the element.
- * @sinkpads: list of sink pads
+ * @sinkpads: (element-type Gst.Pad): list of sink pads
  * @pads_cookie: updated whenever the a pad is added or removed
  *
  * GStreamer element abstract base class.
@@ -761,7 +752,7 @@
 gboolean                gst_element_send_event          (GstElement *element, GstEvent *event);
 gboolean                gst_element_seek                (GstElement *element, gdouble rate,
                                                          GstFormat format, GstSeekFlags flags,
-                                                         GstSeekType cur_type, gint64 cur,
+                                                         GstSeekType start_type, gint64 start,
                                                          GstSeekType stop_type, gint64 stop);
 gboolean                gst_element_query               (GstElement *element, GstQuery *query);
 
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index a8ef9fe..f3e1bdb 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -180,8 +180,7 @@
 /**
  * gst_element_register:
  * @plugin: (allow-none): #GstPlugin to register the element with, or NULL for
- *     a static element (note that passing NULL only works in GStreamer 0.10.13
- *     and later)
+ *     a static element.
  * @name: name of elements of this type
  * @rank: rank of element (higher rank means more importance when autoplugging)
  * @type: GType of element to register
@@ -494,7 +493,7 @@
 
 /**
  * gst_element_factory_get_metadata:
- * @factory,: a #GstElementFactory
+ * @factory: a #GstElementFactory
  * @key: a key
  *
  * Get the metadata on @factory with @key.
@@ -511,12 +510,13 @@
 
 /**
  * gst_element_factory_get_metadata_keys:
- * @factory,: a #GstElementFactory
+ * @factory: a #GstElementFactory
  *
  * Get the available keys for the metadata on @factory.
  *
- * Returns: a %NULL-terminated array of key strings, or %NULL when
- * there is no metadata. Free with g_strfreev() when no longer needd.
+ * Returns: (transfer full) (element-type utf8) (array zero-terminated=1):
+ * a %NULL-terminated array of key strings, or %NULL when there is no
+ * metadata. Free with g_strfreev() when no longer needed.
  */
 gchar **
 gst_element_factory_get_metadata_keys (GstElementFactory * factory)
@@ -641,8 +641,6 @@
  * Check if @factory implements the interface with name @interfacename.
  *
  * Returns: #TRUE when @factory implement the interface.
- *
- * Since: 0.10.14
  */
 gboolean
 gst_element_factory_has_interface (GstElementFactory * factory,
@@ -677,8 +675,6 @@
  * Check if @factory is of the given types.
  *
  * Returns: %TRUE if @factory is of @type.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_element_factory_list_is_type (GstElementFactory * factory,
@@ -768,8 +764,6 @@
  * Returns: (transfer full) (element-type Gst.ElementFactory): a #GList of
  *     #GstElementFactory elements. Use gst_plugin_feature_list_free() after
  *     usage.
- *
- * Since: 0.10.31
  */
 GList *
 gst_element_factory_list_get_elements (GstElementFactoryListType type,
@@ -810,8 +804,6 @@
  * Returns: (transfer full) (element-type Gst.ElementFactory): a #GList of
  *     #GstElementFactory elements that match the given requisits.
  *     Use #gst_plugin_feature_list_free after usage.
- *
- * Since: 0.10.31
  */
 GList *
 gst_element_factory_list_filter (GList * list,
diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h
index 601c9d6..337cc4c 100644
--- a/gst/gstelementfactory.h
+++ b/gst/gstelementfactory.h
@@ -101,8 +101,6 @@
  *
  * If one or more of the MEDIA types are specified, then only elements
  * matching the specified media types will be selected.
- *
- * Since: 0.10.31
  */
 
 typedef guint64 GstElementFactoryListType;
@@ -131,7 +129,8 @@
  *
  * Elements of any of the defined GST_ELEMENT_FACTORY_LIST types
  *
- * Since: 0.10.31
+ * Value: 562949953421311
+ * Type: GstElementFactoryListType
  */
 #define  GST_ELEMENT_FACTORY_TYPE_ANY ((G_GUINT64_CONSTANT (1) << 49) - 1)
 
@@ -144,7 +143,8 @@
  * media types. If you wish to do this, simply don't specify any
  * GST_ELEMENT_FACTORY_TYPE_MEDIA flag.
  *
- * Since: 0.10.31
+ * Value: 18446462598732840960
+ * Type: GstElementFactoryListType
  */
 #define GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY (~G_GUINT64_CONSTANT (0) << 48)
 
@@ -153,7 +153,8 @@
  *
  * All encoders handling video or image media types
  *
- * Since: 0.10.31
+ * Value: 2814749767106562
+ * Type: GstElementFactoryListType
  */
 #define GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER (GST_ELEMENT_FACTORY_TYPE_ENCODER | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)
 
@@ -162,7 +163,8 @@
  *
  * All encoders handling audio media types
  *
- * Since: 0.10.31
+ * Value: 1125899906842626
+ * Type: GstElementFactoryListType
  */
 #define GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER (GST_ELEMENT_FACTORY_TYPE_ENCODER | GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)
 
@@ -171,7 +173,8 @@
  *
  * All sinks handling audio, video or image media types
  *
- * Since: 0.10.31
+ * Value: 3940649673949188
+ * Type: GstElementFactoryListType
  */
 #define GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS (GST_ELEMENT_FACTORY_TYPE_SINK | GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)
 
@@ -180,7 +183,8 @@
  *
  * All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders)
  *
- * Since: 0.10.31
+ * Value: 353
+ * 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)
diff --git a/gst/gsterror.h b/gst/gsterror.h
index eab6c00..a066be9 100644
--- a/gst/gsterror.h
+++ b/gst/gsterror.h
@@ -53,7 +53,7 @@
  * @GST_CORE_ERROR_MISSING_PLUGIN: used if a plugin is missing.
  * @GST_CORE_ERROR_CLOCK: used for clock related errors.
  * @GST_CORE_ERROR_DISABLED: used if functionality has been disabled at
- *                           compile time (Since: 0.10.13).
+ *                           compile time.
  * @GST_CORE_ERROR_NUM_ERRORS: the number of core error types.
  *
  * Core errors are errors inside the core GStreamer library.
@@ -170,9 +170,9 @@
  * @GST_STREAM_ERROR_FORMAT: used when the stream is of the wrong format
  * (for example, wrong caps).
  * @GST_STREAM_ERROR_DECRYPT: used when the stream is encrypted and can't be
- * decrypted because this is not supported by the element. (Since: 0.10.20)
+ * decrypted because this is not supported by the element.
  * @GST_STREAM_ERROR_DECRYPT_NOKEY: used when the stream is encrypted and
- * can't be decrypted because no suitable key is available. (Since: 0.10.20)
+ * can't be decrypted because no suitable key is available.
  * @GST_STREAM_ERROR_NUM_ERRORS: the number of stream error types.
  *
  * Stream errors are for anything related to the stream being processed:
diff --git a/gst/gstevent.c b/gst/gstevent.c
index 3ba388a..bee382e 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -229,11 +229,10 @@
     gst_structure_free (s);
   }
 
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (event), event);
+  g_slice_free1 (sizeof (GstEventImpl), event);
 }
 
-static void gst_event_init (GstEventImpl * event, gsize size,
-    GstEventType type);
+static void gst_event_init (GstEventImpl * event, GstEventType type);
 
 static GstEvent *
 _gst_event_copy (GstEvent * event)
@@ -243,7 +242,7 @@
 
   copy = g_slice_new0 (GstEventImpl);
 
-  gst_event_init (copy, sizeof (GstEventImpl), GST_EVENT_TYPE (event));
+  gst_event_init (copy, GST_EVENT_TYPE (event));
 
   GST_EVENT_TIMESTAMP (copy) = GST_EVENT_TIMESTAMP (event);
   GST_EVENT_SEQNUM (copy) = GST_EVENT_SEQNUM (event);
@@ -260,12 +259,11 @@
 }
 
 static void
-gst_event_init (GstEventImpl * event, gsize size, GstEventType type)
+gst_event_init (GstEventImpl * event, GstEventType type)
 {
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (event), _gst_event_type, size);
-
-  event->event.mini_object.copy = (GstMiniObjectCopyFunction) _gst_event_copy;
-  event->event.mini_object.free = (GstMiniObjectFreeFunction) _gst_event_free;
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (event), 0, _gst_event_type,
+      (GstMiniObjectCopyFunction) _gst_event_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_event_free);
 
   GST_EVENT_TYPE (event) = type;
   GST_EVENT_TIMESTAMP (event) = GST_CLOCK_TIME_NONE;
@@ -309,7 +307,7 @@
       goto had_parent;
 
   }
-  gst_event_init (event, sizeof (GstEventImpl), type);
+  gst_event_init (event, type);
 
   GST_EVENT_STRUCTURE (event) = structure;
 
@@ -318,7 +316,7 @@
   /* ERRORS */
 had_parent:
   {
-    g_slice_free1 (GST_MINI_OBJECT_SIZE (event), event);
+    g_slice_free1 (sizeof (GstEventImpl), event);
     g_warning ("structure is already owned by another object");
     return NULL;
   }
@@ -386,8 +384,6 @@
  * check the name of a custom event.
  *
  * Returns: %TRUE if @name matches the name of the event structure.
- *
- * Since: 0.10.20
  */
 gboolean
 gst_event_has_name (GstEvent * event, const gchar * name)
@@ -420,8 +416,6 @@
  * Returns: The event's sequence number.
  *
  * MT safe.
- *
- * Since: 0.10.22
  */
 guint32
 gst_event_get_seqnum (GstEvent * event)
@@ -443,8 +437,6 @@
  * more information.
  *
  * MT safe.
- *
- * Since: 0.10.22
  */
 void
 gst_event_set_seqnum (GstEvent * event, guint32 seqnum)
@@ -647,7 +639,7 @@
 /**
  * gst_event_parse_caps:
  * @event: The event to parse
- * @caps: (out): A pointer to the caps
+ * @caps: (out) (transfer none): A pointer to the caps
  *
  * Get the caps from @event. The caps remains valid as long as @event remains
  * valid.
@@ -992,26 +984,29 @@
 
 /**
  * gst_event_new_tag:
- * @name: (transfer none): the name of the event
  * @taglist: (transfer full): metadata list. The event will take ownership
  *     of the taglist.
  *
  * Generates a metadata tag event from the given @taglist.
  *
- * Since the TAG event has the %GST_EVENT_TYPE_STICKY_MULTI flag set, the
- * @name will be used to keep track of multiple tag events.
+ * The scope of the taglist specifies if the taglist applies to the
+ * complete medium or only to this specific stream. As the tag event
+ * is a sticky event, elements should merge tags received from
+ * upstream with a given scope with their own tags with the same
+ * scope and create a new tag event from it.
  *
  * Returns: (transfer full): a new #GstEvent
  */
 GstEvent *
-gst_event_new_tag (const gchar * name, GstTagList * taglist)
+gst_event_new_tag (GstTagList * taglist)
 {
   GstStructure *s;
   GValue val = G_VALUE_INIT;
+  const gchar *names[] = { "GstTagList-stream", "GstTagList-global" };
 
   g_return_val_if_fail (taglist != NULL, NULL);
 
-  s = gst_structure_new_empty (name);
+  s = gst_structure_new_empty (names[gst_tag_list_get_scope (taglist)]);
   g_value_init (&val, GST_TYPE_TAG_LIST);
   g_value_take_boxed (&val, taglist);
   gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
@@ -1399,8 +1394,6 @@
  * the time format.
  *
  * Returns: (transfer full): a new #GstEvent
- *
- * Since: 0.10.12
  */
 GstEvent *
 gst_event_new_latency (GstClockTime latency)
@@ -1424,8 +1417,6 @@
  * @latency: (out): A pointer to store the latency in.
  *
  * Get the latency in the latency event.
- *
- * Since: 0.10.12
  */
 void
 gst_event_parse_latency (GstEvent * event, GstClockTime * latency)
@@ -1462,8 +1453,6 @@
  * part of a larger step operation.
  *
  * Returns: (transfer full): a new #GstEvent
- *
- * Since: 0.10.24
  */
 GstEvent *
 gst_event_new_step (GstFormat format, guint64 amount, gdouble rate,
@@ -1498,8 +1487,6 @@
  *     boolean in
  *
  * Parse the step event.
- *
- * Since: 0.10.24
  */
 void
 gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount,
@@ -1538,8 +1525,6 @@
  * or changing the topology of the pipeline.
  *
  * Returns: (transfer full): a new #GstEvent
- *
- * Since: 0.11.0
  */
 GstEvent *
 gst_event_new_reconfigure (void)
@@ -1565,8 +1550,6 @@
  * @name is used to store multiple sticky events on one pad.
  *
  * Returns: (transfer full): a new #GstEvent
- *
- * Since: 0.10.26
  */
 /* FIXME 0.11: take ownership of msg for consistency? */
 GstEvent *
@@ -1592,8 +1575,6 @@
  * @msg: (out) (transfer full): a pointer to store the #GstMessage in.
  *
  * Parse the sink-message event. Unref @msg after usage.
- *
- * Since: 0.10.26
  */
 void
 gst_event_parse_sink_message (GstEvent * event, GstMessage ** msg)
@@ -1611,7 +1592,8 @@
 }
 
 /**
- * gst_event_new_stream_start
+ * gst_event_new_stream_start:
+ * @stream_id: Identifier for this stream
  *
  * Create a new STREAM_START event. The stream start event can only
  * travel downstream synchronized with the buffer flow. It is expected
@@ -1624,54 +1606,91 @@
  * combining multiple streams must ensure that this event is only forwarded
  * downstream once and not for every single input stream.
  *
+ * The @stream_id should be a unique string that consists of the upstream
+ * stream-id, / as separator and a unique stream-id for this specific
+ * stream. A new stream-id should only be created for a stream if the upstream
+ * stream is split into (potentially) multiple new streams, e.g. in a demuxer,
+ * but not for every single element in the pipeline.
+ * gst_util_create_stream_id() can be used to create a stream-id.
+ *
  * Returns: (transfer full): the new STREAM_START event.
  */
 GstEvent *
-gst_event_new_stream_start (void)
+gst_event_new_stream_start (const gchar * stream_id)
 {
-  return gst_event_new_custom (GST_EVENT_STREAM_START, NULL);
+  GstStructure *s;
+
+  g_return_val_if_fail (stream_id != NULL, NULL);
+
+  s = gst_structure_new_id (GST_QUARK (EVENT_STREAM_START),
+      GST_QUARK (STREAM_ID), G_TYPE_STRING, stream_id, NULL);
+
+  return gst_event_new_custom (GST_EVENT_STREAM_START, s);
+}
+
+/**
+ * gst_event_parse_stream_start:
+ * @event: a stream-start event.
+ * @stream_id: (out): pointer to store the stream-id
+ *
+ * Parse a stream-id @event and store the result in the given @stream_id location.
+ */
+void
+gst_event_parse_stream_start (GstEvent * event, const gchar ** stream_id)
+{
+  const GstStructure *structure;
+
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START);
+
+  structure = gst_event_get_structure (event);
+
+  if (stream_id)
+    gst_structure_id_get (structure,
+        GST_QUARK (STREAM_ID), G_TYPE_STRING, stream_id, NULL);
 }
 
 /**
  * gst_event_new_toc:
- * @name: a name for the event
- * @toc: #GstToc structure.
+ * @toc: (transfer none): #GstToc structure.
  * @updated: whether @toc was updated or not.
  *
  * Generate a TOC event from the given @toc. The purpose of the TOC event is to
  * inform elements that some kind of the TOC was found.
  *
- * Returns: a new #GstEvent.
- *
- * Since: 0.10.37
+ * Returns: (transfer full): a new #GstEvent.
  */
 GstEvent *
 gst_event_new_toc (GstToc * toc, gboolean updated)
 {
   GstStructure *toc_struct;
+  GQuark id;
 
   g_return_val_if_fail (toc != NULL, NULL);
 
   GST_CAT_INFO (GST_CAT_EVENT, "creating toc event");
 
-  toc_struct = __gst_toc_to_structure (toc);
+  /* need different structure names so sticky_multi event stuff on pads
+   * works, i.e. both TOC events are kept around */
+  if (gst_toc_get_scope (toc) == GST_TOC_SCOPE_GLOBAL)
+    id = GST_QUARK (EVENT_TOC_GLOBAL);
+  else
+    id = GST_QUARK (EVENT_TOC_CURRENT);
 
-  if (G_LIKELY (toc_struct != NULL)) {
-    __gst_toc_structure_set_updated (toc_struct, updated);
-    return gst_event_new_custom (GST_EVENT_TOC, toc_struct);
-  } else
-    return NULL;
+  toc_struct = gst_structure_new_id (id,
+      GST_QUARK (TOC), GST_TYPE_TOC, toc,
+      GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated, NULL);
+
+  return gst_event_new_custom (GST_EVENT_TOC, toc_struct);
 }
 
 /**
  * gst_event_parse_toc:
  * @event: a TOC event.
- * @toc: (out): pointer to #GstToc structure.
+ * @toc: (out) (transfer full): pointer to #GstToc structure.
  * @updated: (out): pointer to store TOC updated flag.
  *
  * Parse a TOC @event and store the results in the given @toc and @updated locations.
- *
- * Since: 0.10.37
  */
 void
 gst_event_parse_toc (GstEvent * event, GstToc ** toc, gboolean * updated)
@@ -1683,10 +1702,10 @@
   g_return_if_fail (toc != NULL);
 
   structure = gst_event_get_structure (event);
-  *toc = __gst_toc_from_structure (structure);
 
-  if (updated != NULL)
-    *updated = __gst_toc_structure_get_updated (structure);
+  gst_structure_id_get (structure,
+      GST_QUARK (TOC), GST_TYPE_TOC, toc,
+      GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated, NULL);
 }
 
 /**
@@ -1698,8 +1717,6 @@
  * given @uid.
  *
  * Returns: a new #GstEvent.
- *
- * Since: 0.10.37
  */
 GstEvent *
 gst_event_new_toc_select (const gchar * uid)
@@ -1722,8 +1739,6 @@
  * @uid: (out): storage for the selection UID.
  *
  * Parse a TOC select @event and store the results in the given @uid location.
- *
- * Since: 0.10.37
  */
 void
 gst_event_parse_toc_select (GstEvent * event, gchar ** uid)
@@ -1741,3 +1756,60 @@
     *uid = g_strdup (g_value_get_string (val));
 
 }
+
+/**
+ * gst_event_new_segment_done:
+ * @format: The format of the position being done
+ * @position: The position of the segment being done
+ *
+ * Create a new segment-done event. This event is sent by elements that
+ * finish playback of a segment as a result of a segment seek.
+ *
+ * Returns: (transfer full): a new #GstEvent
+ */
+GstEvent *
+gst_event_new_segment_done (GstFormat format, gint64 position)
+{
+  GstEvent *event;
+  GstStructure *structure;
+
+  GST_CAT_INFO (GST_CAT_EVENT, "creating segment-done event");
+
+  structure = gst_structure_new_id (GST_QUARK (EVENT_SEGMENT_DONE),
+      GST_QUARK (FORMAT), GST_TYPE_FORMAT, format,
+      GST_QUARK (POSITION), G_TYPE_INT64, position, NULL);
+
+  event = gst_event_new_custom (GST_EVENT_SEGMENT_DONE, structure);
+
+  return event;
+}
+
+/**
+ * gst_event_parse_segment_done:
+ * @event: A valid #GstEvent of type GST_EVENT_SEGMENT_DONE.
+ * @format: (out): Result location for the format, or NULL
+ * @position: (out): Result location for the position, or NULL
+ *
+ * Extracts the position and format from the segment done message.
+ *
+ */
+void
+gst_event_parse_segment_done (GstEvent * event, GstFormat * format,
+    gint64 * position)
+{
+  const GstStructure *structure;
+  const GValue *val;
+
+  g_return_if_fail (event != NULL);
+  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT_DONE);
+
+  structure = gst_event_get_structure (event);
+
+  val = gst_structure_id_get_value (structure, GST_QUARK (FORMAT));
+  if (format != NULL)
+    *format = g_value_get_enum (val);
+
+  val = gst_structure_id_get_value (structure, GST_QUARK (POSITION));
+  if (position != NULL)
+    *position = g_value_get_int64 (val);
+}
diff --git a/gst/gstevent.h b/gst/gstevent.h
index 35ebba8..39af270 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -83,7 +83,7 @@
  *                 other serialized event and only sent at the start of a new stream,
  *                 not after flushing seeks.
  * @GST_EVENT_CAPS: #GstCaps event. Notify the pad of a new media type.
- * @GST_EVENT_STREAM_CONFIG: contains configuration information for the stream,
+ * @GST_EVENT_STREAM_CONFIG: (unimplemented) contains configuration information for the stream,
  *                 for example stream-headers and codec-data.
  * @GST_EVENT_SEGMENT: A new media segment follows in the dataflow. The
  *                 segment events contains information for clipping buffers and
@@ -95,13 +95,12 @@
  * @GST_EVENT_SINK_MESSAGE: An event that sinks turn into a message. Used to
  *                          send messages that should be emitted in sync with
  *                          rendering.
- *                          Since: 0.10.26
  * @GST_EVENT_EOS: End-Of-Stream. No more data is to be expected to follow
  *                 without a SEGMENT event.
- * @GST_EVENT_SEGMENT_DONE: (unimplemented) Marks the end of a segment playback.
- * @GST_EVENT_GAP: (unimplemented) Marks a gap in the datastream.
+ * @GST_EVENT_SEGMENT_DONE: Marks the end of a segment playback.
+ * @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. Since: 0.10.37
+ *                 was found or updated.
  * @GST_EVENT_QOS: A quality message. Used to indicate to upstream elements
  *                 that the downstream elements should adjust their processing
  *                 rate.
@@ -111,13 +110,11 @@
  *                        to upstream elements.
  * @GST_EVENT_LATENCY: Notification of new latency adjustment. Sinks will use
  *                     the latency information to adjust their synchronisation.
- *                     Since: 0.10.12
  * @GST_EVENT_STEP: A request for stepping through the media. Sinks will usually
- *                  execute the step operation. Since: 0.10.24
+ *                  execute the step operation.
  * @GST_EVENT_RECONFIGURE: A request for upstream renegotiating caps and reconfiguring.
- *                         Since: 0.11.0
  * @GST_EVENT_TOC_SELECT: A request for a new playback position based on TOC
- *                        entry's UID. Since 0.10.37
+ *                        entry's UID.
  * @GST_EVENT_CUSTOM_UPSTREAM: Upstream custom event
  * @GST_EVENT_CUSTOM_DOWNSTREAM: Downstream custom event that travels in the
  *                        data flow.
@@ -152,7 +149,7 @@
   GST_EVENT_BUFFERSIZE            = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
   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)),
+  GST_EVENT_TOC                   = GST_EVENT_MAKE_TYPE (120, 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)),
@@ -363,8 +360,6 @@
  *
  * The different types of QoS events that can be given to the
  * gst_event_new_qos() method.
- *
- * Since: 0.10.33
  */
 typedef enum {
   GST_QOS_TYPE_OVERFLOW        = 0,
@@ -477,7 +472,8 @@
 void            gst_event_set_seqnum            (GstEvent *event, guint32 seqnum);
 
 /* Stream start event */
-GstEvent *      gst_event_new_stream_start      (void) G_GNUC_MALLOC;
+GstEvent *      gst_event_new_stream_start      (const gchar *stream_id) G_GNUC_MALLOC;
+void            gst_event_parse_stream_start    (GstEvent *event, const gchar **stream_id);
 
 /* flush events */
 GstEvent *      gst_event_new_flush_start       (void) G_GNUC_MALLOC;
@@ -523,7 +519,7 @@
 void            gst_event_copy_segment          (GstEvent *event, GstSegment *segment);
 
 /* tag event */
-GstEvent*       gst_event_new_tag               (const gchar *name, GstTagList *taglist) G_GNUC_MALLOC;
+GstEvent*       gst_event_new_tag               (GstTagList *taglist) G_GNUC_MALLOC;
 void            gst_event_parse_tag             (GstEvent *event, GstTagList **taglist);
 
 /* TOC event */
@@ -576,6 +572,10 @@
 GstEvent*       gst_event_new_toc_select        (const gchar *uid) G_GNUC_MALLOC;
 void            gst_event_parse_toc_select      (GstEvent *event, gchar **uid);
 
+/* segment-done event */
+GstEvent*       gst_event_new_segment_done      (GstFormat format, gint64 position) G_GNUC_MALLOC;
+void            gst_event_parse_segment_done    (GstEvent *event, GstFormat *format, gint64 *position);
+
 G_END_DECLS
 
 #endif /* __GST_EVENT_H__ */
diff --git a/gst/gstformat.c b/gst/gstformat.c
index 3e50d33..78b0f07 100644
--- a/gst/gstformat.c
+++ b/gst/gstformat.c
@@ -196,7 +196,7 @@
 
 /**
  * gst_formats_contains:
- * @formats: The format array to search
+ * @formats: (array zero-terminated=1): The format array to search
  * @format: the format to find
  *
  * See if the given format is inside the format array.
diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c
index f9b8368..e6ef133 100644
--- a/gst/gstghostpad.c
+++ b/gst/gstghostpad.c
@@ -67,173 +67,6 @@
 static GstPad *gst_proxy_pad_get_target (GstPad * pad);
 
 /**
- * gst_proxy_pad_event_default:
- * @pad: a #GstPad to push the event to.
- * @parent: the parent of @pad or NULL
- * @event: (transfer full): the #GstEvent to send to the pad.
- *
- * Invoke the default event of the proxy pad.
- *
- * Returns: TRUE if the event was handled.
- *
- * Since: 0.10.36
- */
-gboolean
-gst_proxy_pad_event_default (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  gboolean res;
-  GstPad *internal;
-
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
-  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
-
-  internal = GST_PROXY_PAD_INTERNAL (pad);
-  res = gst_pad_push_event (internal, event);
-
-  return res;
-}
-
-static gboolean
-gst_proxy_pad_query_caps (GstPad * pad, GstQuery * query)
-{
-  gboolean res;
-  GstPad *target;
-  GstCaps *result;
-  GstPadTemplate *templ;
-
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
-
-  templ = GST_PAD_PAD_TEMPLATE (pad);
-  target = gst_proxy_pad_get_target (pad);
-  if (target) {
-    /* if we have a real target, proxy the call */
-    res = gst_pad_query (target, query);
-
-    GST_DEBUG_OBJECT (pad, "get caps of target %s:%s : %" GST_PTR_FORMAT,
-        GST_DEBUG_PAD_NAME (target), query);
-
-    gst_object_unref (target);
-
-    /* filter against the template */
-    if (templ && res) {
-      GstCaps *filt, *tmp;
-
-      filt = GST_PAD_TEMPLATE_CAPS (templ);
-      if (filt) {
-        gst_query_parse_caps_result (query, &result);
-        tmp = gst_caps_intersect_full (result, filt, GST_CAPS_INTERSECT_FIRST);
-        gst_query_set_caps_result (query, tmp);
-        GST_DEBUG_OBJECT (pad,
-            "filtered against template gives %" GST_PTR_FORMAT, tmp);
-        gst_caps_unref (tmp);
-      }
-    }
-  } else {
-    GstCaps *filter;
-
-    res = TRUE;
-
-    gst_query_parse_caps (query, &filter);
-
-    /* else, if we have a template, use its caps. */
-    if (templ) {
-      result = GST_PAD_TEMPLATE_CAPS (templ);
-      GST_DEBUG_OBJECT (pad,
-          "using pad template %p with caps %p %" GST_PTR_FORMAT, templ, result,
-          result);
-
-      if (filter) {
-        GstCaps *intersection;
-
-        GST_DEBUG_OBJECT (pad, "intersect with filter");
-        intersection =
-            gst_caps_intersect_full (filter, result, GST_CAPS_INTERSECT_FIRST);
-        gst_query_set_caps_result (query, intersection);
-        gst_caps_unref (intersection);
-      } else {
-        gst_query_set_caps_result (query, result);
-      }
-      goto done;
-    }
-
-    /* If there's a filter, return that */
-    if (filter != NULL) {
-      GST_DEBUG_OBJECT (pad, "return filter");
-      gst_query_set_caps_result (query, filter);
-      goto done;
-    }
-
-    /* last resort, any caps */
-    GST_DEBUG_OBJECT (pad, "pad has no template, returning ANY");
-    result = gst_caps_new_any ();
-    gst_query_set_caps_result (query, result);
-    gst_caps_unref (result);
-  }
-
-done:
-  return res;
-}
-
-/**
- * gst_proxy_pad_query_default:
- * @pad: a #GstPad to invoke the default query on.
- * @parent: the parent of @pad or NULL
- * @query: (transfer none): the #GstQuery to perform.
- *
- * Invoke the default query function of the proxy pad.
- *
- * Returns: TRUE if the query could be performed.
- *
- * Since: 0.10.36
- */
-gboolean
-gst_proxy_pad_query_default (GstPad * pad, GstObject * parent, GstQuery * query)
-{
-  gboolean res;
-  GstPad *target;
-
-  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
-  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
-
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_ACCEPT_CAPS:
-    {
-      target = gst_proxy_pad_get_target (pad);
-      if (target) {
-        res = gst_pad_query (target, query);
-        gst_object_unref (target);
-      } else {
-        GST_DEBUG_OBJECT (pad, "no target");
-        /* We don't have a target, we return TRUE and we assume that any future
-         * target will be able to deal with any configured caps. */
-        gst_query_set_accept_caps_result (query, TRUE);
-        res = TRUE;
-      }
-      break;
-    }
-    case GST_QUERY_CAPS:
-    {
-      res = gst_proxy_pad_query_caps (pad, query);
-      break;
-    }
-    default:
-    {
-      target = gst_proxy_pad_get_target (pad);
-      if (target) {
-        res = gst_pad_query (target, query);
-        gst_object_unref (target);
-      } else {
-        GST_DEBUG_OBJECT (pad, "no target pad");
-        res = FALSE;
-      }
-      break;
-    }
-  }
-  return res;
-}
-
-/**
  * gst_proxy_pad_iterate_internal_links_default:
  * @pad: the #GstPad to get the internal links of.
  * @parent: the parent of @pad or NULL
@@ -242,8 +75,6 @@
  *
  * Returns: a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each
  * returned pad with gst_object_unref().
- *
- * Since: 0.10.36
  */
 GstIterator *
 gst_proxy_pad_iterate_internal_links_default (GstPad * pad, GstObject * parent)
@@ -273,8 +104,6 @@
  * Invoke the default chain function of the proxy pad.
  *
  * Returns: a #GstFlowReturn from the pad.
- *
- * Since: 0.10.36
  */
 GstFlowReturn
 gst_proxy_pad_chain_default (GstPad * pad, GstObject * parent,
@@ -302,8 +131,6 @@
  * Invoke the default chain list function of the proxy pad.
  *
  * Returns: a #GstFlowReturn from the pad.
- *
- * Since: 0.10.36
  */
 GstFlowReturn
 gst_proxy_pad_chain_list_default (GstPad * pad, GstObject * parent,
@@ -322,8 +149,9 @@
 }
 
 /**
- * gst_proxy_pad_get_range_default:
+ * gst_proxy_pad_getrange_default:
  * @pad: a src #GstPad, returns #GST_FLOW_ERROR if not.
+ * @parent: the parent of @pad
  * @offset: The start offset of the buffer
  * @size: The length of the buffer
  * @buffer: (out callee-allocates): a pointer to hold the #GstBuffer,
@@ -332,8 +160,6 @@
  * Invoke the default getrange function of the proxy pad.
  *
  * Returns: a #GstFlowReturn from the pad.
- *
- * Since: 0.10.36
  */
 GstFlowReturn
 gst_proxy_pad_getrange_default (GstPad * pad, GstObject * parent,
@@ -376,8 +202,6 @@
  *
  * Returns: (transfer full): the target #GstProxyPad, can be NULL.
  * Unref target pad after usage.
- *
- * Since: 0.10.36
  */
 GstProxyPad *
 gst_proxy_pad_get_internal (GstProxyPad * pad)
@@ -395,31 +219,13 @@
   return GST_PROXY_PAD_CAST (internal);
 }
 
-/**
- * gst_proxy_pad_unlink_default:
- * @pad: a #GstPad to unlink
- *
- * Invoke the default unlink function of the proxy pad.
- *
- * Since: 0.10.36
- */
-void
-gst_proxy_pad_unlink_default (GstPad * pad)
-{
-  /* nothing to do anymore */
-  GST_DEBUG_OBJECT (pad, "pad is unlinked");
-}
-
 static void
 gst_proxy_pad_class_init (GstProxyPadClass * klass)
 {
   g_type_class_add_private (klass, sizeof (GstProxyPadPrivate));
 
   /* Register common function pointer descriptions */
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_event_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_query_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_iterate_internal_links_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_unlink_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_chain_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_chain_list_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_getrange_default);
@@ -433,12 +239,12 @@
   GST_PROXY_PAD_PRIVATE (ppad) = G_TYPE_INSTANCE_GET_PRIVATE (ppad,
       GST_TYPE_PROXY_PAD, GstProxyPadPrivate);
 
-  gst_pad_set_event_function (pad, gst_proxy_pad_event_default);
-  gst_pad_set_query_function (pad, gst_proxy_pad_query_default);
   gst_pad_set_iterate_internal_links_function (pad,
       gst_proxy_pad_iterate_internal_links_default);
 
-  gst_pad_set_unlink_function (pad, gst_proxy_pad_unlink_default);
+  GST_PAD_SET_PROXY_CAPS (pad);
+  GST_PAD_SET_PROXY_SCHEDULING (pad);
+  GST_PAD_SET_PROXY_ALLOCATION (pad);
 }
 
 
@@ -631,56 +437,6 @@
   return res;
 }
 
-/**
- * gst_ghost_pad_link_default:
- * @pad: the #GstPad to link.
- * @peer: the #GstPad peer
- *
- * Invoke the default link function of a ghost pad.
- *
- * Returns: #GstPadLinkReturn of the operation
- *
- * Since: 0.10.36
- */
-GstPadLinkReturn
-gst_ghost_pad_link_default (GstPad * pad, GstPad * peer)
-{
-  GstPadLinkReturn ret;
-
-  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), GST_PAD_LINK_REFUSED);
-  g_return_val_if_fail (GST_IS_PAD (peer), GST_PAD_LINK_REFUSED);
-
-  GST_DEBUG_OBJECT (pad, "linking ghostpad");
-
-  ret = GST_PAD_LINK_OK;
-  /* if we are a source pad, we should call the peer link function
-   * if the peer has one, see design docs. */
-  if (GST_PAD_IS_SRC (pad)) {
-    if (GST_PAD_LINKFUNC (peer)) {
-      ret = GST_PAD_LINKFUNC (peer) (peer, pad);
-      if (ret != GST_PAD_LINK_OK)
-        GST_DEBUG_OBJECT (pad, "linking failed");
-    }
-  }
-  return ret;
-}
-
-/**
- * gst_ghost_pad_unlink_default:
- * @pad: the #GstPad to link.
- *
- * Invoke the default unlink function of a ghost pad.
- *
- * Since: 0.10.36
- */
-void
-gst_ghost_pad_unlink_default (GstPad * pad)
-{
-  g_return_if_fail (GST_IS_GHOST_PAD (pad));
-
-  GST_DEBUG_OBJECT (pad, "unlinking ghostpad");
-}
-
 static void
 gst_ghost_pad_class_init (GstGhostPadClass * klass)
 {
@@ -692,7 +448,6 @@
 
   GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_activate_pull_default);
   GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_activate_push_default);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_link_default);
 }
 
 static void
@@ -757,8 +512,6 @@
  * (GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL).
  *
  * Returns: %TRUE if the construction succeeds, %FALSE otherwise.
- *
- * Since: 0.10.22
  */
 gboolean
 gst_ghost_pad_construct (GstGhostPad * gpad)
@@ -785,10 +538,6 @@
     gst_pad_set_getrange_function (pad, gst_proxy_pad_getrange_default);
   }
 
-  /* link/unlink functions */
-  gst_pad_set_link_function (pad, gst_ghost_pad_link_default);
-  gst_pad_set_unlink_function (pad, gst_ghost_pad_unlink_default);
-
   /* INTERNAL PAD, it always exists and is child of the ghostpad */
   otherdir = (dir == GST_PAD_SRC) ? GST_PAD_SINK : GST_PAD_SRC;
   if (templ) {
@@ -959,8 +708,6 @@
  * Will ref the target.
  *
  * Returns: (transfer full): a new #GstPad, or NULL in case of an error.
- *
- * Since: 0.10.10
  */
 
 GstPad *
@@ -1003,8 +750,6 @@
  * direction will be taken from the @templ.
  *
  * Returns: (transfer full): a new #GstPad, or NULL in case of an error.
- *
- * Since: 0.10.10
  */
 GstPad *
 gst_ghost_pad_new_no_target_from_template (const gchar * name,
diff --git a/gst/gstghostpad.h b/gst/gstghostpad.h
index 6aa4d26..77c79c4 100644
--- a/gst/gstghostpad.h
+++ b/gst/gstghostpad.h
@@ -62,10 +62,6 @@
 GstProxyPad*     gst_proxy_pad_get_internal     (GstProxyPad *pad);
 
 
-gboolean            gst_proxy_pad_event_default                  (GstPad *pad, GstObject *parent,
-                                                                  GstEvent *event);
-gboolean            gst_proxy_pad_query_default                  (GstPad *pad, GstObject *parent,
-                                                                  GstQuery *query);
 GstIterator*        gst_proxy_pad_iterate_internal_links_default (GstPad *pad, GstObject *parent) G_GNUC_MALLOC;
 GstFlowReturn       gst_proxy_pad_chain_default                  (GstPad *pad, GstObject *parent,
                                                                   GstBuffer *buffer);
@@ -74,7 +70,6 @@
 GstFlowReturn       gst_proxy_pad_getrange_default               (GstPad *pad, GstObject *parent,
                                                                   guint64 offset, guint size,
                                                                   GstBuffer **buffer);
-void                gst_proxy_pad_unlink_default                 (GstPad * pad);
 
 #define GST_TYPE_GHOST_PAD              (gst_ghost_pad_get_type ())
 #define GST_IS_GHOST_PAD(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GHOST_PAD))
@@ -122,9 +117,6 @@
 
 gboolean         gst_ghost_pad_construct         (GstGhostPad *gpad);
 
-void             gst_ghost_pad_unlink_default         (GstPad * pad);
-GstPadLinkReturn gst_ghost_pad_link_default           (GstPad * pad, GstPad * peer);
-
 gboolean         gst_ghost_pad_activate_mode_default  (GstPad * pad, GstObject * parent,
                                                        GstPadMode mode, gboolean active);
 
diff --git a/gst/gstinfo.c b/gst/gstinfo.c
index 9c0871f..e05cd22 100644
--- a/gst/gstinfo.c
+++ b/gst/gstinfo.c
@@ -120,6 +120,8 @@
 #include "gstutils.h"
 #include "gstquark.h"
 #include "gstsegment.h"
+#include "gstvalue.h"
+
 #ifdef HAVE_VALGRIND_VALGRIND_H
 #  include <valgrind/valgrind.h>
 #endif
@@ -169,6 +171,7 @@
 GstDebugCategory *GST_CAT_QOS = NULL;
 GstDebugCategory *_priv_GST_CAT_POLL = NULL;
 GstDebugCategory *GST_CAT_META = NULL;
+GstDebugCategory *GST_CAT_LOCKING = NULL;
 
 
 #endif /* !defined(GST_DISABLE_GST_DEBUG) || !defined(GST_REMOVE_DISABLED) */
@@ -256,6 +259,7 @@
 {
   GstLogFunction func;
   gpointer user_data;
+  GDestroyNotify notify;
 }
 LogFuncEntry;
 static GMutex __log_func_mutex;
@@ -347,7 +351,7 @@
   _GST_CAT_DEBUG = _gst_debug_category_new ("GST_DEBUG",
       GST_DEBUG_BOLD | GST_DEBUG_FG_YELLOW, "debugging subsystem");
 
-  gst_debug_add_log_function (gst_debug_log_default, NULL);
+  gst_debug_add_log_function (gst_debug_log_default, NULL, NULL);
 
   /* FIXME: add descriptions here */
   GST_CAT_GST_INIT = _gst_debug_category_new ("GST_INIT",
@@ -406,6 +410,7 @@
   GST_CAT_QOS = _gst_debug_category_new ("GST_QOS", 0, "QoS");
   _priv_GST_CAT_POLL = _gst_debug_category_new ("GST_POLL", 0, "poll");
   GST_CAT_META = _gst_debug_category_new ("GST_META", 0, "meta");
+  GST_CAT_LOCKING = _gst_debug_category_new ("GST_LOCKING", 0, "locking");
 
 
   /* print out the valgrind message if we're in valgrind */
@@ -620,6 +625,13 @@
   if (*(GType *) ptr == GST_TYPE_STRUCTURE) {
     return gst_info_structure_to_string ((const GstStructure *) ptr);
   }
+  if (*(GType *) ptr == GST_TYPE_TAG_LIST) {
+    /* FIXME: want pretty tag list with long byte dumps removed.. */
+    return gst_tag_list_to_string ((GstTagList *) ptr);
+  }
+  if (*(GType *) ptr == GST_TYPE_DATE_TIME) {
+    return __gst_date_time_serialize ((GstDateTime *) ptr, TRUE);
+  }
   if (GST_IS_BUFFER (ptr)) {
     GstBuffer *buf = (GstBuffer *) ptr;
     gchar *ret;
@@ -800,8 +812,6 @@
  * This function returns 0 on non-windows machines.
  *
  * Returns: an integer containing the color definition
- *
- * Since: 0.10.23
  */
 gint
 gst_debug_construct_win_color (guint colorinfo)
@@ -1063,13 +1073,15 @@
 /**
  * gst_debug_add_log_function:
  * @func: the function to use
- * @data: (closure): user data
+ * @user_data: user data
+ * @notify: called when @user_data is not used anymore
  *
  * Adds the logging function to the list of logging functions.
  * Be sure to use #G_GNUC_NO_INSTRUMENT on that function, it is needed.
  */
 void
-gst_debug_add_log_function (GstLogFunction func, gpointer data)
+gst_debug_add_log_function (GstLogFunction func, gpointer user_data,
+    GDestroyNotify notify)
 {
   LogFuncEntry *entry;
   GSList *list;
@@ -1079,7 +1091,8 @@
 
   entry = g_slice_new (LogFuncEntry);
   entry->func = func;
-  entry->user_data = data;
+  entry->user_data = user_data;
+  entry->notify = notify;
   /* FIXME: we leak the old list here - other threads might access it right now
    * in gst_debug_logv. Another solution is to lock the mutex in gst_debug_logv,
    * but that is waaay costly.
@@ -1092,7 +1105,7 @@
   g_mutex_unlock (&__log_func_mutex);
 
   GST_DEBUG ("prepended log function %p (user data %p) to log functions",
-      func, data);
+      func, user_data);
 }
 
 static gint
@@ -1115,11 +1128,12 @@
 gst_debug_remove_with_compare_func (GCompareFunc func, gpointer data)
 {
   GSList *found;
-  GSList *new;
+  GSList *new, *cleanup = NULL;
   guint removals = 0;
 
   g_mutex_lock (&__log_func_mutex);
   new = __log_functions;
+  cleanup = NULL;
   while ((found = g_slist_find_custom (new, data, func))) {
     if (new == __log_functions) {
       /* make a copy when we have the first hit, so that we modify the copy and
@@ -1127,7 +1141,7 @@
       new = g_slist_copy (new);
       continue;
     }
-    g_slice_free (LogFuncEntry, found->data);
+    cleanup = g_slist_prepend (cleanup, found->data);
     new = g_slist_delete_link (new, found);
     removals++;
   }
@@ -1135,12 +1149,21 @@
   __log_functions = new;
   g_mutex_unlock (&__log_func_mutex);
 
+  while (cleanup) {
+    LogFuncEntry *entry = cleanup->data;
+
+    if (entry->notify)
+      entry->notify (entry->user_data);
+
+    g_slice_free (LogFuncEntry, entry);
+    cleanup = g_slist_delete_link (cleanup, cleanup);
+  }
   return removals;
 }
 
 /**
  * gst_debug_remove_log_function:
- * @func: the log function to remove
+ * @func: (scope call): the log function to remove
  *
  * Removes all registered instances of the given logging functions.
  *
@@ -1803,7 +1826,8 @@
 }
 
 void
-gst_debug_add_log_function (GstLogFunction func, gpointer data)
+gst_debug_add_log_function (GstLogFunction func, gpointer user_data,
+    GDestroyNotify notify)
 {
 }
 
diff --git a/gst/gstinfo.h b/gst/gstinfo.h
index 5b8f87c..155851c 100644
--- a/gst/gstinfo.h
+++ b/gst/gstinfo.h
@@ -46,7 +46,7 @@
  *  in the executed code path is not fully implemented or handled yet. Note
  *  that this does not replace proper error handling in any way, the purpose
  *  of this message is to make it easier to spot incomplete/unfinished pieces
- *  of code when reading the debug log. (Since: 0.10.23)
+ *  of code when reading the debug log.
  * @GST_LEVEL_INFO: Informational messages should be used to keep the developer
  *  updated about what is happening.
  *  Examples where this should be used are when a typefind function has
@@ -63,11 +63,11 @@
  *  should never output anything else but LOG messages. Use this log level to
  *  log recurring information in chain functions and loop functions, for
  *  example.
- * @GST_LEVEL_TRACE: Tracing-related messages (Since: 0.10.30)
+ * @GST_LEVEL_TRACE: Tracing-related messages.
  *  Examples for this are referencing/dereferencing of objects.
  * @GST_LEVEL_MEMDUMP: memory dump messages are used to log (small) chunks of
  *  data as memory dumps in the log. They will be displayed as hexdump with
- *  ASCII characters. (Since: 0.10.23)
+ *  ASCII characters.
  * @GST_LEVEL_COUNT: The number of defined debugging levels.
  *
  * The level defines the importance of a debugging message. The more important a
@@ -241,7 +241,7 @@
  * @line: line number
  * @object: a #GObject
  * @message: the message
- * @data: user data for the log function
+ * @user_data: user data for the log function
  *
  * Function prototype for a logging function that can be registered with
  * gst_debug_add_log_function().
@@ -254,7 +254,7 @@
                                  gint               line,
                                  GObject          * object,
                                  GstDebugMessage  * message,
-                                 gpointer           data);
+                                 gpointer           user_data);
 
 #ifdef GST_USING_PRINTF_EXTENSION
 
@@ -330,7 +330,8 @@
 const gchar *   gst_debug_level_get_name (GstDebugLevel level);
 
 void            gst_debug_add_log_function            (GstLogFunction func,
-                                                       gpointer       data);
+                                                       gpointer       user_data,
+                                                       GDestroyNotify notify);
 
 guint           gst_debug_remove_log_function         (GstLogFunction func);
 guint           gst_debug_remove_log_function_by_data (gpointer       data);
@@ -365,13 +366,13 @@
 
 #ifndef GST_DISABLE_GST_DEBUG
 
-#define gst_debug_add_log_function(func,data) \
-G_STMT_START{                                 \
-  if (func == gst_debug_log_default) {        \
-    gst_debug_add_log_function(NULL,data);    \
-  } else {                                    \
-    gst_debug_add_log_function(func,data);    \
-  }                                           \
+#define gst_debug_add_log_function(func,data,notify) \
+G_STMT_START{                                        \
+  if (func == gst_debug_log_default) {               \
+    gst_debug_add_log_function(NULL,data,notify);    \
+  } else {                                           \
+    gst_debug_add_log_function(func,data,notify);    \
+  }                                                  \
 }G_STMT_END
 
 #define gst_debug_remove_log_function(func)   \
@@ -462,8 +463,6 @@
  * GST_DEBUG_CATEGORY_INIT (gst_myplugin_debug, "myplugin", 0, "nice element");
  * GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
  * ]|
- *
- * Since: 0.10.24
  */
 #ifdef GST_CAT_DEFAULT
 #define GST_DEBUG_CATEGORY_GET(cat,name)  G_STMT_START{\
@@ -487,7 +486,7 @@
 /* this symbol may not be used */
 GST_EXPORT gboolean			_gst_debug_enabled;
 
-/* since 0.10.7, the min debug level, used for quickly discarding debug
+/* the min debug level, used for quickly discarding debug
  * messages that fall under the threshold. */
 GST_EXPORT GstDebugLevel            _gst_debug_min;
 
@@ -608,8 +607,6 @@
  * @...: printf-style message to output
  *
  * Output a fixme message belonging to the given object in the given category.
- *
- * Since: 0.10.23
  */
 /**
  * GST_CAT_TRACE_OBJECT:
@@ -619,8 +616,6 @@
  *
  * Output a tracing message belonging to the given object in the given
  * category.
- *
- * Since: 0.10.30
  */
 /**
  * GST_CAT_MEMDUMP_OBJECT:
@@ -632,8 +627,6 @@
  *
  * Output a hexdump of @data relating to the given object in the given
  * category.
- *
- * Since: 0.10.23
  */
 
 
@@ -678,8 +671,6 @@
  * @...: printf-style message to output
  *
  * Output an fixme message in the given category.
- *
- * Since: 0.10.23
  */
 /**
  * GST_CAT_TRACE:
@@ -687,8 +678,6 @@
  * @...: printf-style message to output
  *
  * Output a tracing message in the given category.
- *
- * Since: 0.10.30
  */
 /**
  * GST_CAT_MEMDUMP:
@@ -698,8 +687,6 @@
  * @length: length of the data to output
  *
  * Output a hexdump of @data in the given category.
- *
- * Since: 0.10.23
  */
 
 
@@ -746,8 +733,6 @@
  * @...: printf-style message to output
  *
  * Output a fixme message belonging to the given object in the default category.
- *
- * Since: 0.10.23
  */
 /**
  * GST_TRACE_OBJECT:
@@ -755,8 +740,6 @@
  * @...: printf-style message to output
  *
  * Output a tracing message belonging to the given object in the default category.
- *
- * Since: 0.10.30
  */
 /**
  * GST_MEMDUMP_OBJECT:
@@ -766,8 +749,6 @@
  * @length: length of the data to output
  *
  * Output a logging message belonging to the given object in the default category.
- *
- * Since: 0.10.23
  */
 
 
@@ -806,16 +787,12 @@
  * @...: printf-style message to output
  *
  * Output a fixme message in the default category.
- *
- * Since: 0.10.23
  */
 /**
  * GST_TRACE:
  * @...: printf-style message to output
  *
  * Output a tracing message in the default category.
- *
- * Since: 0.10.30
  */
 /**
  * GST_MEMDUMP:
@@ -824,8 +801,6 @@
  * @length: length of the data to output
  *
  * Output a hexdump of @data.
- *
- * Since: 0.10.23
  */
 
 #ifdef G_HAVE_ISO_VARARGS
@@ -1213,8 +1188,6 @@
  * GST_DEBUG_FUNCPTR_NAME().
  *
  * Use this variant of #GST_DEBUG_FUNCPTR if you do not need to use @ptr.
- *
- * Since: 0.10.26
  */
 #define GST_DEBUG_REGISTER_FUNCPTR(ptr) \
   _gst_debug_register_funcptr((GstDebugFuncPtr)(ptr), #ptr)
@@ -1262,7 +1235,7 @@
 
 #define gst_debug_level_get_name(level)				("NONE")
 #define gst_debug_message_get(message)  			("")
-#define gst_debug_add_log_function(func,data)		G_STMT_START{ }G_STMT_END
+#define gst_debug_add_log_function(func,data,notify)    G_STMT_START{ }G_STMT_END
 #define gst_debug_set_active(active)			G_STMT_START{ }G_STMT_END
 #define gst_debug_is_active()				(FALSE)
 #define gst_debug_set_colored(colored)			G_STMT_START{ }G_STMT_END
diff --git a/gst/gstiterator.c b/gst/gstiterator.c
index a8f34fb..3c9238c 100644
--- a/gst/gstiterator.c
+++ b/gst/gstiterator.c
@@ -800,8 +800,6 @@
  * for the #GstPadIterIntLinkFunction.
  *
  * Returns: the new #GstIterator for @object.
- *
- * Since: 0.10.25
  */
 GstIterator *
 gst_iterator_new_single (GType type, const GValue * object)
diff --git a/gst/gstmemory.c b/gst/gstmemory.c
index 8eb112e..5796e04 100644
--- a/gst/gstmemory.c
+++ b/gst/gstmemory.c
@@ -71,423 +71,68 @@
 #include "gst_private.h"
 #include "gstmemory.h"
 
-#ifndef GST_DISABLE_TRACE
-#include "gsttrace.h"
-static GstAllocTrace *_gst_memory_trace;
-static GstAllocTrace *_gst_allocator_trace;
-#endif
+GST_DEFINE_MINI_OBJECT_TYPE (GstMemory, gst_memory);
 
-G_DEFINE_BOXED_TYPE (GstMemory, gst_memory, (GBoxedCopyFunc) gst_memory_ref,
-    (GBoxedFreeFunc) gst_memory_unref);
-
-G_DEFINE_BOXED_TYPE (GstAllocator, gst_allocator,
-    (GBoxedCopyFunc) gst_allocator_ref, (GBoxedFreeFunc) gst_allocator_unref);
-
-G_DEFINE_BOXED_TYPE (GstAllocationParams, gst_allocation_params,
-    (GBoxedCopyFunc) gst_allocation_params_copy,
-    (GBoxedFreeFunc) gst_allocation_params_free);
-
-#if defined(MEMORY_ALIGNMENT_MALLOC)
-size_t gst_memory_alignment = 7;
-#elif defined(MEMORY_ALIGNMENT_PAGESIZE)
-/* we fill this in in the _init method */
-size_t gst_memory_alignment = 0;
-#elif defined(MEMORY_ALIGNMENT)
-size_t gst_memory_alignment = MEMORY_ALIGNMENT - 1;
-#else
-#error "No memory alignment configured"
-size_t gst_memory_alignment = 0;
-#endif
-
-struct _GstAllocator
+static GstMemory *
+_gst_memory_copy (GstMemory * mem)
 {
-  gint refcount;
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "copy memory %p", mem);
+  return gst_memory_copy (mem, 0, -1);
+}
 
-  GstMemoryInfo info;
-
-  gpointer user_data;
-  GDestroyNotify notify;
-};
-
-/* default memory implementation */
-typedef struct
-{
-  GstMemory mem;
-  gsize slice_size;
-  guint8 *data;
-  gpointer user_data;
-  GDestroyNotify notify;
-} GstMemoryDefault;
-
-/* the default allocator */
-static GstAllocator *_default_allocator;
-
-/* our predefined allocators */
-static GstAllocator *_default_mem_impl;
-
-/* initialize the fields */
 static void
-_default_mem_init (GstMemoryDefault * mem, GstMemoryFlags flags,
-    GstMemory * parent, gsize slice_size, gpointer data,
-    gsize maxsize, gsize offset, gsize size, gsize align,
-    gpointer user_data, GDestroyNotify notify)
+_gst_memory_free (GstMemory * mem)
 {
-  mem->mem.allocator = _default_mem_impl;
-  mem->mem.flags = flags;
-  mem->mem.refcount = 1;
-  mem->mem.parent = parent ? gst_memory_ref (parent) : NULL;
-  mem->mem.state = (flags & GST_MEMORY_FLAG_READONLY ? 0x1 : 0);
-  mem->mem.maxsize = maxsize;
-  mem->mem.align = align;
-  mem->mem.offset = offset;
-  mem->mem.size = size;
-  mem->slice_size = slice_size;
-  mem->data = data;
-  mem->user_data = user_data;
-  mem->notify = notify;
+  GST_CAT_DEBUG (GST_CAT_MEMORY, "free memory %p", mem);
+
+  if (mem->parent) {
+    gst_memory_unlock (mem->parent, GST_LOCK_FLAG_EXCLUSIVE);
+    gst_memory_unref (mem->parent);
+  }
+
+  gst_allocator_free (mem->allocator, mem);
+}
+
+/**
+ * gst_memory_init: (skip)
+ * @mem: a #GstMemory
+ * @flags: #GstMemoryFlags
+ * @allocator: the #GstAllocator
+ * @parent: the parent of @mem
+ * @maxsize: the total size of the memory
+ * @align: the alignment of the memory
+ * @offset: The offset in the memory
+ * @size: the size of valid data in the memory
+
+ * Initializes a newly allocated @mem with the given parameters. This function
+ * will call gst_mini_object_init() with the default memory parameters.
+ */
+void
+gst_memory_init (GstMemory * mem, GstMemoryFlags flags,
+    GstAllocator * allocator, GstMemory * parent, gsize maxsize, gsize align,
+    gsize offset, gsize size)
+{
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (mem),
+      flags | GST_MINI_OBJECT_FLAG_LOCKABLE, GST_TYPE_MEMORY,
+      (GstMiniObjectCopyFunction) _gst_memory_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_memory_free);
+
+  mem->allocator = allocator;
+  if (parent) {
+    gst_memory_lock (parent, GST_LOCK_FLAG_EXCLUSIVE);
+    gst_memory_ref (parent);
+  }
+  mem->parent = parent;
+  mem->maxsize = maxsize;
+  mem->align = align;
+  mem->offset = offset;
+  mem->size = size;
 
   GST_CAT_DEBUG (GST_CAT_MEMORY, "new memory %p, maxsize:%" G_GSIZE_FORMAT
       " offset:%" G_GSIZE_FORMAT " size:%" G_GSIZE_FORMAT, mem, maxsize,
       offset, size);
 }
 
-/* create a new memory block that manages the given memory */
-static GstMemoryDefault *
-_default_mem_new (GstMemoryFlags flags, GstMemory * parent, gpointer data,
-    gsize maxsize, gsize offset, gsize size, gsize align, gpointer user_data,
-    GDestroyNotify notify)
-{
-  GstMemoryDefault *mem;
-  gsize slice_size;
-
-  slice_size = sizeof (GstMemoryDefault);
-
-  mem = g_slice_alloc (slice_size);
-  _default_mem_init (mem, flags, parent, slice_size,
-      data, maxsize, offset, size, align, user_data, notify);
-
-  return mem;
-}
-
-/* allocate the memory and structure in one block */
-static GstMemoryDefault *
-_default_mem_new_block (GstMemoryFlags flags, gsize maxsize, gsize align,
-    gsize offset, gsize size)
-{
-  GstMemoryDefault *mem;
-  gsize aoffset, slice_size, padding;
-  guint8 *data;
-
-  /* ensure configured alignment */
-  align |= gst_memory_alignment;
-  /* allocate more to compensate for alignment */
-  maxsize += align;
-  /* alloc header and data in one block */
-  slice_size = sizeof (GstMemoryDefault) + maxsize;
-
-  mem = g_slice_alloc (slice_size);
-  if (mem == NULL)
-    return NULL;
-
-  data = (guint8 *) mem + sizeof (GstMemoryDefault);
-
-  /* do alignment */
-  if ((aoffset = ((guintptr) data & align))) {
-    aoffset = (align + 1) - aoffset;
-    data += aoffset;
-    maxsize -= aoffset;
-  }
-
-  if (offset && (flags & GST_MEMORY_FLAG_ZERO_PREFIXED))
-    memset (data, 0, offset);
-
-  padding = maxsize - (offset + size);
-  if (padding && (flags & GST_MEMORY_FLAG_ZERO_PADDED))
-    memset (data + offset + size, 0, padding);
-
-  _default_mem_init (mem, flags, NULL, slice_size, data, maxsize,
-      offset, size, align, NULL, NULL);
-
-  return mem;
-}
-
-static GstMemory *
-_default_alloc_alloc (GstAllocator * allocator, gsize size,
-    GstAllocationParams * params, gpointer user_data)
-{
-  gsize maxsize = size + params->prefix + params->padding;
-
-  return (GstMemory *) _default_mem_new_block (params->flags,
-      maxsize, params->align, params->prefix, size);
-}
-
-static gpointer
-_default_mem_map (GstMemoryDefault * mem, gsize maxsize, GstMapFlags flags)
-{
-  return mem->data;
-}
-
-static gboolean
-_default_mem_unmap (GstMemoryDefault * mem)
-{
-  return TRUE;
-}
-
-static void
-_default_mem_free (GstMemoryDefault * mem)
-{
-  GST_CAT_DEBUG (GST_CAT_MEMORY, "free memory %p", mem);
-
-  if (mem->mem.parent)
-    gst_memory_unref (mem->mem.parent);
-
-  if (mem->notify)
-    mem->notify (mem->user_data);
-
-  g_slice_free1 (mem->slice_size, mem);
-}
-
-static GstMemoryDefault *
-_default_mem_copy (GstMemoryDefault * mem, gssize offset, gsize size)
-{
-  GstMemoryDefault *copy;
-
-  if (size == -1)
-    size = mem->mem.size > offset ? mem->mem.size - offset : 0;
-
-  copy =
-      _default_mem_new_block (0, mem->mem.maxsize, 0, mem->mem.offset + offset,
-      size);
-  GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
-      "memcpy %" G_GSIZE_FORMAT " memory %p -> %p", mem->mem.maxsize, mem,
-      copy);
-  memcpy (copy->data, mem->data, mem->mem.maxsize);
-
-  return copy;
-}
-
-static GstMemoryDefault *
-_default_mem_share (GstMemoryDefault * mem, gssize offset, gsize size)
-{
-  GstMemoryDefault *sub;
-  GstMemory *parent;
-
-  /* find the real parent */
-  if ((parent = mem->mem.parent) == NULL)
-    parent = (GstMemory *) mem;
-
-  if (size == -1)
-    size = mem->mem.size - offset;
-
-  sub =
-      _default_mem_new (parent->flags, parent, mem->data,
-      mem->mem.maxsize, mem->mem.offset + offset, size, mem->mem.align, NULL,
-      NULL);
-
-  return sub;
-}
-
-static gboolean
-_default_mem_is_span (GstMemoryDefault * mem1, GstMemoryDefault * mem2,
-    gsize * offset)
-{
-
-  if (offset) {
-    GstMemoryDefault *parent;
-
-    parent = (GstMemoryDefault *) mem1->mem.parent;
-
-    *offset = mem1->mem.offset - parent->mem.offset;
-  }
-
-  /* and memory is contiguous */
-  return mem1->data + mem1->mem.offset + mem1->mem.size ==
-      mem2->data + mem2->mem.offset;
-}
-
-static GstMemory *
-_fallback_mem_copy (GstMemory * mem, gssize offset, gssize size)
-{
-  GstMemory *copy;
-  GstMapInfo sinfo, dinfo;
-  GstAllocationParams params = { 0, 0, 0, mem->align, };
-
-  if (!gst_memory_map (mem, &sinfo, GST_MAP_READ))
-    return NULL;
-
-  if (size == -1)
-    size = sinfo.size > offset ? sinfo.size - offset : 0;
-
-  /* use the same allocator as the memory we copy  */
-  copy = gst_allocator_alloc (mem->allocator, size, &params);
-  if (!gst_memory_map (copy, &dinfo, GST_MAP_WRITE)) {
-    GST_CAT_WARNING (GST_CAT_MEMORY, "could not write map memory %p", copy);
-    gst_memory_unmap (mem, &sinfo);
-    return NULL;
-  }
-
-  GST_CAT_DEBUG (GST_CAT_PERFORMANCE,
-      "memcpy %" G_GSSIZE_FORMAT " memory %p -> %p", size, mem, copy);
-  memcpy (dinfo.data, sinfo.data + offset, size);
-  gst_memory_unmap (copy, &dinfo);
-  gst_memory_unmap (mem, &sinfo);
-
-  return copy;
-}
-
-static gboolean
-_fallback_mem_is_span (GstMemory * mem1, GstMemory * mem2, gsize * offset)
-{
-  return FALSE;
-}
-
-static GRWLock lock;
-static GHashTable *allocators;
-
-static void
-_priv_sysmem_notify (gpointer user_data)
-{
-  g_warning ("The default memory allocator was freed!");
-}
-
-void
-_priv_gst_memory_initialize (void)
-{
-  static const GstMemoryInfo _mem_info = {
-    GST_ALLOCATOR_SYSMEM,
-    (GstAllocatorAllocFunction) _default_alloc_alloc,
-    (GstMemoryMapFunction) _default_mem_map,
-    (GstMemoryUnmapFunction) _default_mem_unmap,
-    (GstMemoryFreeFunction) _default_mem_free,
-    (GstMemoryCopyFunction) _default_mem_copy,
-    (GstMemoryShareFunction) _default_mem_share,
-    (GstMemoryIsSpanFunction) _default_mem_is_span,
-  };
-
-#ifndef GST_DISABLE_TRACE
-  _gst_memory_trace = _gst_alloc_trace_register ("GstMemory", -1);
-  _gst_allocator_trace = _gst_alloc_trace_register ("GstAllocator", -1);
-#endif
-
-  g_rw_lock_init (&lock);
-  allocators = g_hash_table_new (g_str_hash, g_str_equal);
-
-#ifdef HAVE_GETPAGESIZE
-#ifdef MEMORY_ALIGNMENT_PAGESIZE
-  gst_memory_alignment = getpagesize () - 1;
-#endif
-#endif
-
-  GST_CAT_DEBUG (GST_CAT_MEMORY, "memory alignment: %" G_GSIZE_FORMAT,
-      gst_memory_alignment);
-
-  _default_mem_impl = gst_allocator_new (&_mem_info, NULL, _priv_sysmem_notify);
-
-  _default_allocator = gst_allocator_ref (_default_mem_impl);
-  gst_allocator_register (GST_ALLOCATOR_SYSMEM,
-      gst_allocator_ref (_default_mem_impl));
-}
-
-/**
- * gst_memory_new_wrapped:
- * @flags: #GstMemoryFlags
- * @data: data to wrap
- * @maxsize: allocated size of @data
- * @offset: offset in @data
- * @size: size of valid data
- * @user_data: user_data
- * @notify: called with @user_data when the memory is freed
- *
- * Allocate a new memory block that wraps the given @data.
- *
- * The prefix/padding must be filled with 0 if @flags contains
- * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
- *
- * Returns: a new #GstMemory.
- */
-GstMemory *
-gst_memory_new_wrapped (GstMemoryFlags flags, gpointer data,
-    gsize maxsize, gsize offset, gsize size, gpointer user_data,
-    GDestroyNotify notify)
-{
-  GstMemoryDefault *mem;
-
-  g_return_val_if_fail (data != NULL, NULL);
-  g_return_val_if_fail (offset + size <= maxsize, NULL);
-
-  mem =
-      _default_mem_new (flags, NULL, data, maxsize, offset, size, 0, user_data,
-      notify);
-
-#ifndef GST_DISABLE_TRACE
-  _gst_alloc_trace_new (_gst_memory_trace, mem);
-#endif
-
-  return (GstMemory *) mem;
-}
-
-/**
- * gst_memory_ref:
- * @mem: a #GstMemory
- *
- * Increases the refcount of @mem.
- *
- * Returns: @mem with increased refcount
- */
-GstMemory *
-gst_memory_ref (GstMemory * mem)
-{
-  g_return_val_if_fail (mem != NULL, NULL);
-
-  GST_CAT_TRACE (GST_CAT_MEMORY, "memory %p, %d->%d", mem, mem->refcount,
-      mem->refcount + 1);
-
-  g_atomic_int_inc (&mem->refcount);
-
-  return mem;
-}
-
-/**
- * gst_memory_unref:
- * @mem: a #GstMemory
- *
- * Decreases the refcount of @mem. When the refcount reaches 0, the free
- * function of @mem will be called.
- */
-void
-gst_memory_unref (GstMemory * mem)
-{
-  g_return_if_fail (mem != NULL);
-  g_return_if_fail (mem->allocator != NULL);
-
-  GST_CAT_TRACE (GST_CAT_MEMORY, "memory %p, %d->%d", mem, mem->refcount,
-      mem->refcount - 1);
-
-  if (g_atomic_int_dec_and_test (&mem->refcount)) {
-    /* there should be no outstanding mappings */
-    g_return_if_fail (g_atomic_int_get (&mem->state) < 4);
-#ifndef GST_DISABLE_TRACE
-    _gst_alloc_trace_free (_gst_memory_trace, mem);
-#endif
-    mem->allocator->info.mem_free (mem);
-  }
-}
-
-/**
- * gst_memory_is_exclusive:
- * @mem: a #GstMemory
- *
- * Check if the current ref to @mem is exclusive, this means that no other
- * references exist other than @mem.
- */
-gboolean
-gst_memory_is_exclusive (GstMemory * mem)
-{
-  g_return_val_if_fail (mem != NULL, FALSE);
-
-  return (g_atomic_int_get (&mem->refcount) == 1);
-}
-
 /**
  * gst_memory_get_sizes:
  * @mem: a #GstMemory
@@ -542,53 +187,6 @@
   mem->size = size;
 }
 
-static gboolean
-gst_memory_lock (GstMemory * mem, GstMapFlags flags)
-{
-  gint access_mode, state, newstate;
-
-  access_mode = flags & 3;
-
-  do {
-    state = g_atomic_int_get (&mem->state);
-    if (state == 0) {
-      /* nothing mapped, set access_mode and refcount */
-      newstate = 4 | access_mode;
-    } else {
-      /* access_mode must match */
-      if ((state & access_mode) != access_mode)
-        goto lock_failed;
-      /* increase refcount */
-      newstate = state + 4;
-    }
-  } while (!g_atomic_int_compare_and_exchange (&mem->state, state, newstate));
-
-  return TRUE;
-
-lock_failed:
-  {
-    GST_CAT_DEBUG (GST_CAT_MEMORY, "lock failed %p: state %d, access_mode %d",
-        mem, state, access_mode);
-    return FALSE;
-  }
-}
-
-static void
-gst_memory_unlock (GstMemory * mem)
-{
-  gint state, newstate;
-
-  do {
-    state = g_atomic_int_get (&mem->state);
-    /* decrease the refcount */
-    newstate = state - 4;
-    /* last refcount, unset access_mode */
-    if (newstate < 4)
-      newstate = 0;
-  } while (!g_atomic_int_compare_and_exchange (&mem->state, state, newstate));
-}
-
-
 /**
  * gst_memory_make_mapped:
  * @mem: (transfer full): a #GstMemory
@@ -669,7 +267,7 @@
   if (!gst_memory_lock (mem, flags))
     goto lock_failed;
 
-  info->data = mem->allocator->info.mem_map (mem, mem->maxsize, flags);
+  info->data = mem->allocator->mem_map (mem, mem->maxsize, flags);
 
   if (G_UNLIKELY (info->data == NULL))
     goto error;
@@ -691,8 +289,8 @@
 error:
   {
     /* something went wrong, restore the orginal state again */
-    GST_CAT_ERROR (GST_CAT_MEMORY, "mem %p: map failed", mem);
-    gst_memory_unlock (mem);
+    GST_CAT_ERROR (GST_CAT_MEMORY, "mem %p: subclass map failed", mem);
+    gst_memory_unlock (mem, flags);
     return FALSE;
   }
 }
@@ -710,11 +308,9 @@
   g_return_if_fail (mem != NULL);
   g_return_if_fail (info != NULL);
   g_return_if_fail (info->memory == mem);
-  /* there must be a ref */
-  g_return_if_fail (g_atomic_int_get (&mem->state) >= 4);
 
-  mem->allocator->info.mem_unmap (mem);
-  gst_memory_unlock (mem);
+  mem->allocator->mem_unmap (mem);
+  gst_memory_unlock (mem, info->flags);
 }
 
 /**
@@ -736,11 +332,7 @@
 
   g_return_val_if_fail (mem != NULL, NULL);
 
-  copy = mem->allocator->info.mem_copy (mem, offset, size);
-
-#ifndef GST_DISABLE_TRACE
-  _gst_alloc_trace_new (_gst_memory_trace, copy);
-#endif
+  copy = mem->allocator->mem_copy (mem, offset, size);
 
   return copy;
 }
@@ -767,11 +359,7 @@
   g_return_val_if_fail (!GST_MEMORY_FLAG_IS_SET (mem, GST_MEMORY_FLAG_NO_SHARE),
       NULL);
 
-  shared = mem->allocator->info.mem_share (mem, offset, size);
-
-#ifndef GST_DISABLE_TRACE
-  _gst_alloc_trace_new (_gst_memory_trace, shared);
-#endif
+  shared = mem->allocator->mem_share (mem, offset, size);
 
   return shared;
 }
@@ -806,289 +394,8 @@
     return FALSE;
 
   /* and memory is contiguous */
-  if (!mem1->allocator->info.mem_is_span (mem1, mem2, offset))
+  if (!mem1->allocator->mem_is_span (mem1, mem2, offset))
     return FALSE;
 
   return TRUE;
 }
-
-/**
- * gst_allocator_new:
- * @info: a #GstMemoryInfo
- * @user_data: user data
- * @notify: a #GDestroyNotify for @user_data
- *
- * Create a new memory allocator with @info and @user_data.
- *
- * All functions in @info are mandatory exept the copy and is_span
- * functions, which will have a default implementation when left NULL.
- *
- * The @user_data will be passed to all calls of the alloc function. @notify
- * will be called with @user_data when the allocator is freed.
- *
- * Returns: a new #GstAllocator.
- */
-GstAllocator *
-gst_allocator_new (const GstMemoryInfo * info, gpointer user_data,
-    GDestroyNotify notify)
-{
-  GstAllocator *allocator;
-
-#define INSTALL_FALLBACK(_t) \
-  if (allocator->info._t == NULL) allocator->info._t = _fallback_ ##_t;
-
-  g_return_val_if_fail (info != NULL, NULL);
-  g_return_val_if_fail (info->alloc != NULL, NULL);
-  g_return_val_if_fail (info->mem_map != NULL, NULL);
-  g_return_val_if_fail (info->mem_unmap != NULL, NULL);
-  g_return_val_if_fail (info->mem_free != NULL, NULL);
-  g_return_val_if_fail (info->mem_share != NULL, NULL);
-
-  allocator = g_slice_new (GstAllocator);
-  allocator->refcount = 1;
-  allocator->info = *info;
-  allocator->user_data = user_data;
-  allocator->notify = notify;
-  INSTALL_FALLBACK (mem_copy);
-  INSTALL_FALLBACK (mem_is_span);
-#undef INSTALL_FALLBACK
-
-  GST_CAT_DEBUG (GST_CAT_MEMORY, "new allocator %p", allocator);
-
-#ifndef GST_DISABLE_TRACE
-  _gst_alloc_trace_new (_gst_allocator_trace, allocator);
-#endif
-
-  return allocator;
-}
-
-/**
- * gst_allocator_get_memory_type:
- * @allocator: a #GstAllocator
- *
- * Get the memory type allocated by this allocator
- *
- * Returns: the memory type provided by @allocator
- */
-const gchar *
-gst_allocator_get_memory_type (GstAllocator * allocator)
-{
-  g_return_val_if_fail (allocator != NULL, NULL);
-
-  return allocator->info.mem_type;
-}
-
-/**
- * gst_allocator_ref:
- * @allocator: a #GstAllocator
- *
- * Increases the refcount of @allocator.
- *
- * Returns: @allocator with increased refcount
- */
-GstAllocator *
-gst_allocator_ref (GstAllocator * allocator)
-{
-  g_return_val_if_fail (allocator != NULL, NULL);
-
-  GST_CAT_TRACE (GST_CAT_MEMORY, "allocator %p, %d->%d", allocator,
-      allocator->refcount, allocator->refcount + 1);
-
-  g_atomic_int_inc (&allocator->refcount);
-
-  return allocator;
-}
-
-/**
- * gst_allocator_unref:
- * @allocator: a #GstAllocator
- *
- * Decreases the refcount of @allocator. When the refcount reaches 0, the notify
- * function of @allocator will be called and the allocator will be freed.
- */
-void
-gst_allocator_unref (GstAllocator * allocator)
-{
-  g_return_if_fail (allocator != NULL);
-
-  GST_CAT_TRACE (GST_CAT_MEMORY, "allocator %p, %d->%d", allocator,
-      allocator->refcount, allocator->refcount - 1);
-
-  if (g_atomic_int_dec_and_test (&allocator->refcount)) {
-    if (allocator->notify)
-      allocator->notify (allocator->user_data);
-#ifndef GST_DISABLE_TRACE
-    _gst_alloc_trace_free (_gst_allocator_trace, allocator);
-#endif
-    g_slice_free1 (sizeof (GstAllocator), allocator);
-  }
-}
-
-/**
- * gst_allocator_register:
- * @name: the name of the allocator
- * @allocator: (transfer full): #GstAllocator
- *
- * Registers the memory @allocator with @name. This function takes ownership of
- * @allocator.
- */
-void
-gst_allocator_register (const gchar * name, GstAllocator * allocator)
-{
-  g_return_if_fail (name != NULL);
-  g_return_if_fail (allocator != NULL);
-
-  GST_CAT_DEBUG (GST_CAT_MEMORY, "registering allocator %p with name \"%s\"",
-      allocator, name);
-
-  g_rw_lock_writer_lock (&lock);
-  g_hash_table_insert (allocators, (gpointer) name, (gpointer) allocator);
-  g_rw_lock_writer_unlock (&lock);
-}
-
-/**
- * gst_allocator_find:
- * @name: the name of the allocator
- *
- * Find a previously registered allocator with @name. When @name is NULL, the
- * default allocator will be returned.
- *
- * Returns: (transfer full): a #GstAllocator or NULL when the allocator with @name was not
- * registered. Use gst_allocator_unref() to release the allocator after usage.
- */
-GstAllocator *
-gst_allocator_find (const gchar * name)
-{
-  GstAllocator *allocator;
-
-  g_rw_lock_reader_lock (&lock);
-  if (name) {
-    allocator = g_hash_table_lookup (allocators, (gconstpointer) name);
-  } else {
-    allocator = _default_allocator;
-  }
-  if (allocator)
-    gst_allocator_ref (allocator);
-  g_rw_lock_reader_unlock (&lock);
-
-  return allocator;
-}
-
-/**
- * gst_allocator_set_default:
- * @allocator: (transfer full): a #GstAllocator
- *
- * Set the default allocator. This function takes ownership of @allocator.
- */
-void
-gst_allocator_set_default (GstAllocator * allocator)
-{
-  GstAllocator *old;
-  g_return_if_fail (allocator != NULL);
-
-  g_rw_lock_writer_lock (&lock);
-  old = _default_allocator;
-  _default_allocator = allocator;
-  g_rw_lock_writer_unlock (&lock);
-
-  if (old)
-    gst_allocator_unref (old);
-}
-
-/**
- * gst_allocation_params_init:
- * @params: a #GstAllocationParams
- *
- * Initialize @params to its default values
- */
-void
-gst_allocation_params_init (GstAllocationParams * params)
-{
-  g_return_if_fail (params != NULL);
-
-  memset (params, 0, sizeof (GstAllocationParams));
-}
-
-/**
- * gst_allocation_params_copy:
- * @params: (transfer none): a #GstAllocationParams
- *
- * Create a copy of @params.
- *
- * Free-function: gst_allocation_params_free
- *
- * Returns: (transfer full): a new ##GstAllocationParams, free with
- * gst_allocation_params_free().
- */
-GstAllocationParams *
-gst_allocation_params_copy (const GstAllocationParams * params)
-{
-  GstAllocationParams *result = NULL;
-
-  if (params) {
-    result =
-        (GstAllocationParams *) g_slice_copy (sizeof (GstAllocationParams),
-        params);
-  }
-  return result;
-}
-
-/**
- * gst_allocation_params_free:
- * @params: (in) (transfer full): a #GstAllocationParams
- *
- * Free @params
- */
-void
-gst_allocation_params_free (GstAllocationParams * params)
-{
-  g_slice_free (GstAllocationParams, params);
-}
-
-/**
- * gst_allocator_alloc:
- * @allocator: (transfer none) (allow-none): a #GstAllocator to use
- * @size: size of the visible memory area
- * @params: (transfer none) (allow-none): optional parameters
- *
- * Use @allocator to allocate a new memory block with memory that is at least
- * @size big.
- *
- * The optional @params can specify the prefix and padding for the memory. If
- * NULL is passed, no flags, no extra prefix/padding and a default alignment is
- * used.
- *
- * The prefix/padding will be filled with 0 if flags contains
- * #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
- *
- * When @allocator is NULL, the default allocator will be used.
- *
- * The alignment in @params is given as a bitmask so that @align + 1 equals
- * the amount of bytes to align to. For example, to align to 8 bytes,
- * use an alignment of 7.
- *
- * Returns: (transfer full): a new #GstMemory.
- */
-GstMemory *
-gst_allocator_alloc (GstAllocator * allocator, gsize size,
-    GstAllocationParams * params)
-{
-  GstMemory *mem;
-  static GstAllocationParams defparams = { 0, 0, 0, 0, };
-
-  if (params) {
-    g_return_val_if_fail (((params->align + 1) & params->align) == 0, NULL);
-  } else {
-    params = &defparams;
-  }
-
-  if (allocator == NULL)
-    allocator = _default_allocator;
-
-  mem = allocator->info.alloc (allocator, size, params, allocator->user_data);
-
-#ifndef GST_DISABLE_TRACE
-  _gst_alloc_trace_new (_gst_memory_trace, mem);
-#endif
-  return mem;
-}
diff --git a/gst/gstmemory.h b/gst/gstmemory.h
index c69ee59..e249cb4 100644
--- a/gst/gstmemory.h
+++ b/gst/gstmemory.h
@@ -32,24 +32,8 @@
 #define GST_TYPE_MEMORY (gst_memory_get_type())
 GType gst_memory_get_type(void);
 
-#define GST_TYPE_ALLOCATOR (gst_allocator_get_type())
-GType gst_allocator_get_type(void);
-
-#define GST_TYPE_ALLOCATION_PARAMS (gst_allocation_params_get_type())
-GType gst_allocation_params_get_type(void);
-
 typedef struct _GstMemory GstMemory;
-typedef struct _GstMemoryInfo GstMemoryInfo;
 typedef struct _GstAllocator GstAllocator;
-typedef struct _GstAllocationParams GstAllocationParams;
-
-/**
- * gst_memory_alignment:
- *
- * The default memory alignment in bytes - 1
- * an alignment of 7 would be the same as what malloc() guarantees.
- */
-GST_EXPORT gsize gst_memory_alignment;
 
 #define GST_MEMORY_CAST(mem)   ((GstMemory *)(mem))
 
@@ -66,12 +50,12 @@
  * Flags for wrapped memory.
  */
 typedef enum {
-  GST_MEMORY_FLAG_READONLY      = (1 << 0),
-  GST_MEMORY_FLAG_NO_SHARE      = (1 << 1),
-  GST_MEMORY_FLAG_ZERO_PREFIXED = (1 << 2),
-  GST_MEMORY_FLAG_ZERO_PADDED   = (1 << 3),
+  GST_MEMORY_FLAG_READONLY      = GST_MINI_OBJECT_FLAG_LOCK_READONLY,
+  GST_MEMORY_FLAG_NO_SHARE      = (GST_MINI_OBJECT_FLAG_LAST << 0),
+  GST_MEMORY_FLAG_ZERO_PREFIXED = (GST_MINI_OBJECT_FLAG_LAST << 1),
+  GST_MEMORY_FLAG_ZERO_PADDED   = (GST_MINI_OBJECT_FLAG_LAST << 2),
 
-  GST_MEMORY_FLAG_LAST          = (1 << 16)
+  GST_MEMORY_FLAG_LAST          = (GST_MINI_OBJECT_FLAG_LAST << 16)
 } GstMemoryFlags;
 
 /**
@@ -80,7 +64,7 @@
  *
  * A flags word containing #GstMemoryFlags flags set on @mem
  */
-#define GST_MEMORY_FLAGS(mem)  (GST_MEMORY_CAST (mem)->flags)
+#define GST_MEMORY_FLAGS(mem)  GST_MINI_OBJECT_FLAGS (mem)
 /**
  * GST_MEMORY_FLAG_IS_SET:
  * @mem: a #GstMemory.
@@ -88,7 +72,7 @@
  *
  * Gives the status of a specific flag on a @mem.
  */
-#define GST_MEMORY_FLAG_IS_SET(mem,flag)   !!(GST_MEMORY_FLAGS (mem) & (flag))
+#define GST_MEMORY_FLAG_IS_SET(mem,flag)   GST_MINI_OBJECT_FLAG_IS_SET (mem,flag)
 /**
  * GST_MEMORY_FLAG_UNSET:
  * @mem: a #GstMemory.
@@ -96,7 +80,7 @@
  *
  * Clear a specific flag on a @mem.
  */
-#define GST_MEMORY_FLAG_UNSET(mem,flag)   (GST_MEMORY_FLAGS (mem) &= ~(flag))
+#define GST_MEMORY_FLAG_UNSET(mem,flag)   GST_MINI_OBJECT_FLAG_UNSET (mem, flag)
 
 /**
  * GST_MEMORY_IS_READONLY:
@@ -106,6 +90,13 @@
  */
 #define GST_MEMORY_IS_READONLY(mem)        GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_READONLY)
 /**
+ * GST_MEMORY_IS_NO_SHARE:
+ * @mem: a #GstMemory.
+ *
+ * Check if @mem cannot be shared between buffers
+ */
+#define GST_MEMORY_IS_NO_SHARE(mem)        GST_MEMORY_FLAG_IS_SET(mem,GST_MEMORY_FLAG_NO_SHARE)
+/**
  * GST_MEMORY_IS_ZERO_PREFIXED:
  * @mem: a #GstMemory.
  *
@@ -123,11 +114,9 @@
 
 /**
  * GstMemory:
+ * @mini_object: parent structure
  * @allocator: pointer to the #GstAllocator
- * @flags: memory flags
- * @refcount: refcount
  * @parent: parent memory block
- * @state: private state
  * @maxsize: the maximum size allocated
  * @align: the alignment of the memory
  * @offset: the offset where valid data starts
@@ -137,12 +126,11 @@
  * as the first member of their structure.
  */
 struct _GstMemory {
+  GstMiniObject   mini_object;
+
   GstAllocator   *allocator;
 
-  GstMemoryFlags  flags;
-  gint            refcount;
   GstMemory      *parent;
-  volatile gint   state;
   gsize           maxsize;
   gsize           align;
   gsize           offset;
@@ -158,17 +146,25 @@
  * Flags used when mapping memory
  */
 typedef enum {
-  GST_MAP_READ      = (1 << 0),
-  GST_MAP_WRITE     = (1 << 1),
+  GST_MAP_READ      = GST_LOCK_FLAG_READ,
+  GST_MAP_WRITE     = GST_LOCK_FLAG_WRITE,
 
   GST_MAP_FLAG_LAST = (1 << 16)
 } GstMapFlags;
 
 /**
+ * GST_MAP_READWRITE:
+ *
+ * GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE
+ */
+#define GST_MAP_READWRITE      (GST_MAP_READ | GST_MAP_WRITE)
+
+
+/**
  * GstMapInfo:
  * @memory: a pointer to the mapped memory
  * @flags: flags used when mapping the memory
- * @data: a pointer to the mapped data
+ * @data: (array length=size): a pointer to the mapped data
  * @size: the valid size in @data
  * @maxsize: the maximum bytes in @data
  * @user_data: extra private user_data that the implementation of the memory
@@ -195,61 +191,6 @@
 #define GST_MAP_INFO_INIT { NULL, 0, NULL, 0, 0, }
 
 /**
- * GST_MAP_READWRITE:
- *
- * Map for readwrite access
- */
-#define GST_MAP_READWRITE      (GST_MAP_READ | GST_MAP_WRITE)
-
-/**
- * GST_ALLOCATOR_SYSMEM:
- *
- * The allocator name for the default system memory allocator
- */
-#define GST_ALLOCATOR_SYSMEM   "SystemMemory"
-
-/**
- * GstAllocationParams:
- * @flags: flags to control allocation
- * @align: the desired alignment of the memory
- * @prefix: the disired prefix
- * @padding: the desired padding
- *
- * Parameters to control the allocation of memory
- */
-struct _GstAllocationParams {
-  GstMemoryFlags flags;
-  gsize          align;
-  gsize          prefix;
-  gsize          padding;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-/**
- * GstAllocatorAllocFunction:
- * @allocator: a #GstAllocator
- * @size: the size
- * @params: allocator params
- * @user_data: user data
- *
- * Allocate a new #GstMemory from @allocator that can hold at least @size
- * bytes (+ padding) and is aligned to (@align + 1) bytes.
- *
- * The offset and size of the memory should be set and the prefix/padding must
- * be filled with 0 if @params flags contains #GST_MEMORY_FLAG_ZERO_PREFIXED and
- * #GST_MEMORY_FLAG_ZERO_PADDED respectively.
- *
- * @user_data is the data that was used when creating @allocator.
- *
- * Returns: a newly allocated #GstMemory. Free with gst_memory_unref()
- */
-typedef GstMemory *  (*GstAllocatorAllocFunction)  (GstAllocator *allocator,
-                                                    gsize size, GstAllocationParams *params,
-                                                    gpointer user_data);
-
-/**
  * GstMemoryMapFunction:
  * @mem: a #GstMemory
  * @maxsize: size to map
@@ -275,15 +216,6 @@
 typedef void        (*GstMemoryUnmapFunction)     (GstMemory *mem);
 
 /**
- * GstMemoryFreeFunction:
- * @mem: a #GstMemory
- *
- * Free the memory used by @mem. This function is usually called when the
- * refcount of the @mem has reached 0.
- */
-typedef void        (*GstMemoryFreeFunction)      (GstMemory *mem);
-
-/**
  * GstMemoryCopyFunction:
  * @mem: a #GstMemory
  * @offset: an offset
@@ -325,80 +257,53 @@
  */
 typedef gboolean    (*GstMemoryIsSpanFunction)    (GstMemory *mem1, GstMemory *mem2, gsize *offset);
 
-/**
- * GstMemoryInfo:
- * @mem_type: the memory type this allocator provides
- * @alloc: the implementation of the GstAllocatorAllocFunction
- * @mem_map: the implementation of the GstMemoryMapFunction
- * @mem_unmap: the implementation of the GstMemoryUnmapFunction
- * @mem_free: the implementation of the GstMemoryFreeFunction
- * @mem_copy: the implementation of the GstMemoryCopyFunction
- * @mem_share: the implementation of the GstMemoryShareFunction
- * @mem_is_span: the implementation of the GstMemoryIsSpanFunction
- *
- * The #GstMemoryInfo is used to register new memory allocators and contain
- * the implementations for various memory operations.
- */
-struct _GstMemoryInfo {
-  const gchar              *mem_type;
-
-  GstAllocatorAllocFunction alloc;
-
-  GstMemoryMapFunction      mem_map;
-  GstMemoryUnmapFunction    mem_unmap;
-  GstMemoryFreeFunction     mem_free;
-
-  GstMemoryCopyFunction     mem_copy;
-  GstMemoryShareFunction    mem_share;
-  GstMemoryIsSpanFunction   mem_is_span;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-/**
- * GstAllocator:
- *
- * An opaque type returned from gst_allocator_new() or gst_allocator_find()
- * that can be used to allocator memory.
- */
-
-/* allocators */
-GstAllocator * gst_allocator_new             (const GstMemoryInfo * info,
-                                              gpointer user_data, GDestroyNotify notify);
-const gchar *  gst_allocator_get_memory_type (GstAllocator * allocator);
-
-GstAllocator * gst_allocator_ref             (GstAllocator * allocator);
-void           gst_allocator_unref           (GstAllocator * allocator);
-
-void           gst_allocator_register        (const gchar *name, GstAllocator *allocator);
-GstAllocator * gst_allocator_find            (const gchar *name);
-
-void           gst_allocator_set_default     (GstAllocator * allocator);
-
-/* allocating memory blocks */
-void           gst_allocation_params_init     (GstAllocationParams *params);
-GstAllocationParams *
-               gst_allocation_params_copy     (const GstAllocationParams *params) G_GNUC_MALLOC;
-void           gst_allocation_params_free     (GstAllocationParams *params);
-
-GstMemory *    gst_allocator_alloc           (GstAllocator * allocator, gsize size,
-                                              GstAllocationParams *params);
-
-GstMemory *    gst_memory_new_wrapped  (GstMemoryFlags flags, gpointer data, gsize maxsize,
-                                        gsize offset, gsize size, gpointer user_data,
-                                        GDestroyNotify notify);
-
+void           gst_memory_init         (GstMemory *mem, GstMemoryFlags flags,
+                                        GstAllocator *allocator, GstMemory *parent,
+                                        gsize maxsize, gsize align,
+                                        gsize offset, gsize size);
 /* refcounting */
-GstMemory *    gst_memory_ref          (GstMemory *mem);
-void           gst_memory_unref        (GstMemory *mem);
+/**
+ * gst_memory_ref:
+ * @memory: The memory to refcount
+ *
+ * Increase the refcount of this memory.
+ *
+ * Returns: (transfer full): @memory (for convenience when doing assignments)
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstMemory * gst_memory_ref (GstMemory * memory);
+#endif
 
-gboolean       gst_memory_is_exclusive (GstMemory *mem);
+static inline GstMemory *
+gst_memory_ref (GstMemory * memory)
+{
+  return (GstMemory *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (memory));
+}
+
+/**
+ * gst_memory_unref:
+ * @memory: (transfer full): the memory to refcount
+ *
+ * Decrease the refcount of an memory, freeing it if the refcount reaches 0.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_memory_unref (GstMemory * memory);
+#endif
+
+static inline void
+gst_memory_unref (GstMemory * memory)
+{
+  gst_mini_object_unref (GST_MINI_OBJECT_CAST (memory));
+}
 
 /* getting/setting memory properties */
 gsize          gst_memory_get_sizes    (GstMemory *mem, gsize *offset, gsize *maxsize);
 void           gst_memory_resize       (GstMemory *mem, gssize offset, gsize size);
 
+#define        gst_memory_lock(m,f)        gst_mini_object_lock (GST_MINI_OBJECT_CAST (m), (f))
+#define        gst_memory_unlock(m,f)      gst_mini_object_unlock (GST_MINI_OBJECT_CAST (m), (f))
+#define        gst_memory_is_writable(m)   gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (m))
+
 /* retrieving data */
 GstMemory *    gst_memory_make_mapped  (GstMemory *mem, GstMapInfo *info, GstMapFlags flags);
 gboolean       gst_memory_map          (GstMemory *mem, GstMapInfo *info, GstMapFlags flags);
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 4eef4ac..d7a9735 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -67,7 +67,7 @@
   GstStructure *structure;
 } GstMessageImpl;
 
-#define GST_MESSAGE_STRUCTURE(m) (((GstMessageImpl *)(m))->structure)
+#define GST_MESSAGE_STRUCTURE(m)  (((GstMessageImpl *)(m))->structure)
 
 typedef struct
 {
@@ -105,6 +105,7 @@
   {GST_MESSAGE_QOS, "qos", 0},
   {GST_MESSAGE_PROGRESS, "progress", 0},
   {GST_MESSAGE_TOC, "toc", 0},
+  {GST_MESSAGE_STREAM_START, "stream-start", 0},
   {0, NULL, 0}
 };
 
@@ -198,11 +199,11 @@
     gst_structure_free (structure);
   }
 
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (message), message);
+  g_slice_free1 (sizeof (GstMessageImpl), message);
 }
 
 static void
-gst_message_init (GstMessageImpl * message, gsize size, GstMessageType type,
+gst_message_init (GstMessageImpl * message, GstMessageType type,
     GstObject * src);
 
 static GstMessage *
@@ -217,7 +218,7 @@
 
   copy = g_slice_new0 (GstMessageImpl);
 
-  gst_message_init (copy, sizeof (GstMessageImpl), GST_MESSAGE_TYPE (message),
+  gst_message_init (copy, GST_MESSAGE_TYPE (message),
       GST_MESSAGE_SRC (message));
 
   GST_MESSAGE_TIMESTAMP (copy) = GST_MESSAGE_TIMESTAMP (message);
@@ -236,16 +237,12 @@
 }
 
 static void
-gst_message_init (GstMessageImpl * message, gsize size, GstMessageType type,
+gst_message_init (GstMessageImpl * message, GstMessageType type,
     GstObject * src)
 {
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (message), _gst_message_type,
-      size);
-
-  message->message.mini_object.copy =
-      (GstMiniObjectCopyFunction) _gst_message_copy;
-  message->message.mini_object.free =
-      (GstMiniObjectFreeFunction) _gst_message_free;
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (message), 0, _gst_message_type,
+      (GstMiniObjectCopyFunction) _gst_message_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_message_free);
 
   GST_MESSAGE_TYPE (message) = type;
   if (src)
@@ -289,7 +286,7 @@
             &message->message.mini_object.refcount))
       goto had_parent;
   }
-  gst_message_init (message, sizeof (GstMessageImpl), type, src);
+  gst_message_init (message, type, src);
 
   GST_MESSAGE_STRUCTURE (message) = structure;
 
@@ -298,7 +295,7 @@
   /* ERRORS */
 had_parent:
   {
-    g_slice_free1 (GST_MINI_OBJECT_SIZE (message), message);
+    g_slice_free1 (sizeof (GstMessageImpl), message);
     g_warning ("structure is already owned by another object");
     return NULL;
   }
@@ -324,8 +321,6 @@
  * Returns: The message's sequence number.
  *
  * MT safe.
- *
- * Since: 0.10.22
  */
 guint32
 gst_message_get_seqnum (GstMessage * message)
@@ -347,8 +342,6 @@
  * for more information.
  *
  * MT safe.
- *
- * Since: 0.10.22
  */
 void
 gst_message_set_seqnum (GstMessage * message, guint32 seqnum)
@@ -448,8 +441,6 @@
  * MT safe.
  *
  * Returns: (transfer full): the new info message.
- *
- * Since: 0.10.12
  */
 GstMessage *
 gst_message_new_info (GstObject * src, GError * error, const gchar * debug)
@@ -508,29 +499,29 @@
  * The application must be prepared to receive BUFFERING messages in the
  * PREROLLING state and may only set the pipeline to PLAYING after receiving a
  * message with @percent set to 100, which can happen after the pipeline
- * completed prerolling. 
+ * completed prerolling.
  *
  * MT safe.
  *
  * Returns: (transfer full): The new buffering message.
- *
- * Since: 0.10.11
  */
 GstMessage *
 gst_message_new_buffering (GstObject * src, gint percent)
 {
   GstMessage *message;
   GstStructure *structure;
+  gint64 buffering_left;
 
   g_return_val_if_fail (percent >= 0 && percent <= 100, NULL);
 
+  buffering_left = (percent == 100 ? 0 : -1);
+
   structure = gst_structure_new_id (GST_QUARK (MESSAGE_BUFFERING),
       GST_QUARK (BUFFER_PERCENT), G_TYPE_INT, percent,
       GST_QUARK (BUFFERING_MODE), GST_TYPE_BUFFERING_MODE, GST_BUFFERING_STREAM,
       GST_QUARK (AVG_IN_RATE), G_TYPE_INT, -1,
       GST_QUARK (AVG_OUT_RATE), G_TYPE_INT, -1,
-      GST_QUARK (BUFFERING_LEFT), G_TYPE_INT64, G_GINT64_CONSTANT (-1),
-      GST_QUARK (ESTIMATED_TOTAL), G_TYPE_INT64, G_GINT64_CONSTANT (-1), NULL);
+      GST_QUARK (BUFFERING_LEFT), G_TYPE_INT64, buffering_left, NULL);
   message = gst_message_new_custom (GST_MESSAGE_BUFFERING, src, structure);
 
   return message;
@@ -557,7 +548,7 @@
   GstMessage *message;
   GstStructure *structure;
 
-  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STATE),
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_STATE_CHANGED),
       GST_QUARK (OLD_STATE), GST_TYPE_STATE, (gint) oldstate,
       GST_QUARK (NEW_STATE), GST_TYPE_STATE, (gint) newstate,
       GST_QUARK (PENDING_STATE), GST_TYPE_STATE, (gint) pending, NULL);
@@ -690,8 +681,6 @@
  * Returns: (transfer full): the new structure change message.
  *
  * MT safe.
- *
- * Since: 0.10.22.
  */
 GstMessage *
 gst_message_new_structure_change (GstObject * src, GstStructureChangeType type,
@@ -870,24 +859,26 @@
 /**
  * gst_message_new_async_done:
  * @src: (transfer none): The object originating the message.
- * @reset_time: if the running_time should be reset
+ * @running_time: the desired running_time
  *
  * The message is posted when elements completed an ASYNC state change.
- * @reset_time is set to TRUE when the element requests a new running_time
- * before going to PLAYING.
+ * @running_time contains the time of the desired running_time when this
+ * elements goes to PLAYING. A value of #GST_CLOCK_TIME_NONE for @running_time
+ * means that the element has no clock interaction and thus doesn't care about
+ * the running_time of the pipeline.
  *
  * Returns: (transfer full): The new async_done message.
  *
  * MT safe.
  */
 GstMessage *
-gst_message_new_async_done (GstObject * src, gboolean reset_time)
+gst_message_new_async_done (GstObject * src, GstClockTime running_time)
 {
   GstMessage *message;
   GstStructure *structure;
 
   structure = gst_structure_new_id (GST_QUARK (MESSAGE_ASYNC_DONE),
-      GST_QUARK (RESET_TIME), G_TYPE_BOOLEAN, reset_time, NULL);
+      GST_QUARK (RUNNING_TIME), G_TYPE_UINT64, running_time, NULL);
   message = gst_message_new_custom (GST_MESSAGE_ASYNC_DONE, src, structure);
 
   return message;
@@ -903,8 +894,6 @@
  * Returns: (transfer full): The new latency message.
  *
  * MT safe.
- *
- * Since: 0.10.12
  */
 GstMessage *
 gst_message_new_latency (GstObject * src)
@@ -928,8 +917,6 @@
  * Returns: (transfer full): the new requst state message.
  *
  * MT safe.
- *
- * Since: 0.10.23
  */
 GstMessage *
 gst_message_new_request_state (GstObject * src, GstState state)
@@ -973,8 +960,6 @@
  * check the name of a custom message.
  *
  * Returns: %TRUE if @name matches the name of the message structure.
- *
- * Since: 0.10.20
  */
 gboolean
 gst_message_has_name (GstMessage * message, const gchar * name)
@@ -1038,8 +1023,6 @@
  * gst_message_new_buffering().
  *
  * MT safe.
- *
- * Since: 0.10.11
  */
 void
 gst_message_parse_buffering (GstMessage * message, gint * percent)
@@ -1062,8 +1045,6 @@
  * @buffering_left: amount of buffering time left in milliseconds
  *
  * Configures the buffering stats values in @message.
- *
- * Since: 0.10.20
  */
 void
 gst_message_set_buffering_stats (GstMessage * message, GstBufferingMode mode,
@@ -1088,8 +1069,6 @@
  *     milliseconds, or NULL
  *
  * Extracts the buffering stats values from @message.
- *
- * Since: 0.10.20
  */
 void
 gst_message_parse_buffering_stats (GstMessage * message,
@@ -1275,8 +1254,6 @@
  * Extracts the change type and completion status from the GstMessage.
  *
  * MT safe.
- *
- * Since: 0.10.22
  */
 void
 gst_message_parse_structure_change (GstMessage * message,
@@ -1416,8 +1393,6 @@
  * in the output arguments are copies; the caller must free them when done.
  *
  * MT safe.
- *
- * Since: 0.10.12
  */
 void
 gst_message_parse_info (GstMessage * message, GError ** gerror, gchar ** debug)
@@ -1542,14 +1517,14 @@
 /**
  * gst_message_parse_async_done:
  * @message: A valid #GstMessage of type GST_MESSAGE_ASYNC_DONE.
- * @reset_time: (out): Result location for the reset_time or NULL
+ * @running_time: (out): Result location for the running_time or NULL
  *
- * Extract the reset_time from the async_done message.
+ * Extract the running_time from the async_done message.
  *
  * MT safe.
  */
 void
-gst_message_parse_async_done (GstMessage * message, gboolean * reset_time)
+gst_message_parse_async_done (GstMessage * message, GstClockTime * running_time)
 {
   GstStructure *structure;
 
@@ -1557,10 +1532,10 @@
   g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ASYNC_DONE);
 
   structure = GST_MESSAGE_STRUCTURE (message);
-  if (reset_time)
-    *reset_time =
-        g_value_get_boolean (gst_structure_id_get_value (structure,
-            GST_QUARK (RESET_TIME)));
+  if (running_time)
+    *running_time =
+        g_value_get_uint64 (gst_structure_id_get_value (structure,
+            GST_QUARK (RUNNING_TIME)));
 }
 
 /**
@@ -1571,8 +1546,6 @@
  * Extract the requested state from the request_state message.
  *
  * MT safe.
- *
- * Since: 0.10.23
  */
 void
 gst_message_parse_request_state (GstMessage * message, GstState * state)
@@ -1601,8 +1574,6 @@
  * Returns: (transfer full): the new stream status message.
  *
  * MT safe.
- *
- * Since: 0.10.24.
  */
 GstMessage *
 gst_message_new_stream_status (GstObject * src, GstStreamStatusType type,
@@ -1630,8 +1601,6 @@
  * should thus not be unreffed.
  *
  * MT safe.
- *
- * Since: 0.10.24.
  */
 void
 gst_message_parse_stream_status (GstMessage * message,
@@ -1662,8 +1631,6 @@
  *
  * Configures the object handling the streaming thread. This is usually a
  * GstTask object but other objects might be added in the future.
- *
- * Since: 0.10.24
  */
 void
 gst_message_set_stream_status_object (GstMessage * message,
@@ -1687,8 +1654,6 @@
  * Returns: a GValue containing the object that manages the streaming thread.
  * This object is usually of type GstTask but other types can be added in the
  * future. The object remains valid as long as @message is valid.
- *
- * Since: 0.10.24
  */
 const GValue *
 gst_message_get_stream_status_object (GstMessage * message)
@@ -1726,8 +1691,6 @@
  * Returns: (transfer full): the new step_done message.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 GstMessage *
 gst_message_new_step_done (GstObject * src, GstFormat format, guint64 amount,
@@ -1764,8 +1727,6 @@
  * Extract the values the step_done message.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 void
 gst_message_parse_step_done (GstMessage * message, GstFormat * format,
@@ -1812,8 +1773,6 @@
  * Returns: (transfer full): The new step_start message. 
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 GstMessage *
 gst_message_new_step_start (GstObject * src, gboolean active, GstFormat format,
@@ -1847,8 +1806,6 @@
  * Extract the values from step_start message.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 void
 gst_message_parse_step_start (GstMessage * message, gboolean * active,
@@ -1896,8 +1853,6 @@
  * Returns: (transfer full): The new qos message.
  *
  * MT safe.
- *
- * Since: 0.10.29
  */
 GstMessage *
 gst_message_new_qos (GstObject * src, gboolean live, guint64 running_time,
@@ -1935,8 +1890,6 @@
  * Set the QoS values that have been calculated/analysed from the QoS data
  *
  * MT safe.
- *
- * Since: 0.10.29
  */
 void
 gst_message_set_qos_values (GstMessage * message, gint64 jitter,
@@ -1972,8 +1925,6 @@
  * invalid. Values of -1 for either @processed or @dropped mean unknown values.
  *
  * MT safe.
- *
- * Since: 0.10.29
  */
 void
 gst_message_set_qos_stats (GstMessage * message, GstFormat format,
@@ -2011,8 +1962,6 @@
  * values.
  *
  * MT safe.
- *
- * Since: 0.10.29
  */
 void
 gst_message_parse_qos (GstMessage * message, gboolean * live,
@@ -2047,8 +1996,6 @@
  * Extract the QoS values that have been calculated/analysed from the QoS data
  *
  * MT safe.
- *
- * Since: 0.10.29
  */
 void
 gst_message_parse_qos_values (GstMessage * message, gint64 * jitter,
@@ -2085,8 +2032,6 @@
  * invalid. Values of -1 for either @processed or @dropped mean unknown values.
  *
  * MT safe.
- *
- * Since: 0.10.29
  */
 void
 gst_message_parse_qos_stats (GstMessage * message, GstFormat * format,
@@ -2118,8 +2063,6 @@
  * @test should contain a user visible string detailing the current action.
  *
  * Returns: (transfer full): The new qos message.
- *
- * Since: 0.10.33
  */
 GstMessage *
 gst_message_new_progress (GstObject * src, GstProgressType type,
@@ -2154,8 +2097,6 @@
  * @text: (out) (allow-none) (transfer full): location for the text
  *
  * Parses the progress @type, @code and @text.
- *
- * Since: 0.10.33
  */
 void
 gst_message_parse_progress (GstMessage * message, GstProgressType * type,
@@ -2176,17 +2117,15 @@
 /**
  * gst_message_new_toc:
  * @src: the object originating the message.
- * @toc: #GstToc structure for the message.
+ * @toc: (transfer none): #GstToc structure for the message.
  * @updated: whether TOC was updated or not.
  *
  * Create a new TOC message. The message is posted by elements
  * that discovered or updated a TOC.
  *
- * Returns: a new TOC message.
+ * Returns: (transfer full): a new TOC message.
  *
  * MT safe.
- *
- * Since: 0.10.37
  */
 GstMessage *
 gst_message_new_toc (GstObject * src, GstToc * toc, gboolean updated)
@@ -2195,28 +2134,24 @@
 
   g_return_val_if_fail (toc != NULL, NULL);
 
-  toc_struct = __gst_toc_to_structure (toc);
+  toc_struct = gst_structure_new_id (GST_QUARK (MESSAGE_TOC),
+      GST_QUARK (TOC), GST_TYPE_TOC, toc,
+      GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated, NULL);
 
-  if (G_LIKELY (toc_struct != NULL)) {
-    __gst_toc_structure_set_updated (toc_struct, updated);
-    return gst_message_new_custom (GST_MESSAGE_TOC, src, toc_struct);
-  } else
-    return NULL;
+  return gst_message_new_custom (GST_MESSAGE_TOC, src, toc_struct);
 }
 
 /**
  * gst_message_parse_toc:
  * @message: a valid #GstMessage of type GST_MESSAGE_TOC.
- * @toc: (out): return location for the TOC.
+ * @toc: (out) (transfer full): return location for the TOC.
  * @updated: (out): return location for the updated flag.
  *
  * Extract thef TOC from the #GstMessage. The TOC returned in the
  * output argument is a copy; the caller must free it with
- * gst_toc_free() when done.
+ * gst_toc_unref() when done.
  *
  * MT safe.
- *
- * Since: 0.10.37
  */
 void
 gst_message_parse_toc (GstMessage * message, GstToc ** toc, gboolean * updated)
@@ -2225,9 +2160,78 @@
   g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_TOC);
   g_return_if_fail (toc != NULL);
 
-  *toc = __gst_toc_from_structure (GST_MESSAGE_STRUCTURE (message));
+  gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
+      GST_QUARK (TOC), GST_TYPE_TOC, toc,
+      GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated, NULL);
+}
 
-  if (updated != NULL)
-    *updated =
-        __gst_toc_structure_get_updated (GST_MESSAGE_STRUCTURE (message));
+/**
+ * gst_message_new_reset_time:
+ * @src: (transfer none): The object originating the message.
+ * @running_time: the requested running-time
+ *
+ * This message is posted when the pipeline running-time should be reset to
+ * @running_time, like after a flushing seek.
+ *
+ * Returns: (transfer full): The new reset_time message.
+ *
+ * MT safe.
+ */
+GstMessage *
+gst_message_new_reset_time (GstObject * src, GstClockTime running_time)
+{
+  GstMessage *message;
+  GstStructure *structure;
+
+  structure = gst_structure_new_id (GST_QUARK (MESSAGE_RESET_TIME),
+      GST_QUARK (RUNNING_TIME), G_TYPE_UINT64, running_time, NULL);
+  message = gst_message_new_custom (GST_MESSAGE_RESET_TIME, src, structure);
+
+  return message;
+}
+
+/**
+ * gst_message_parse_reset_time:
+ * @message: A valid #GstMessage of type GST_MESSAGE_RESET_TIME.
+ * @running_time: (out): Result location for the running_time or NULL
+ *
+ * Extract the running-time from the RESET_TIME message.
+ *
+ * MT safe.
+ */
+void
+gst_message_parse_reset_time (GstMessage * message, GstClockTime * running_time)
+{
+  GstStructure *structure;
+
+  g_return_if_fail (GST_IS_MESSAGE (message));
+  g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_RESET_TIME);
+
+  structure = GST_MESSAGE_STRUCTURE (message);
+  if (running_time)
+    *running_time =
+        g_value_get_uint64 (gst_structure_id_get_value (structure,
+            GST_QUARK (RUNNING_TIME)));
+}
+
+/**
+ * gst_message_new_stream_start:
+ * @src: (transfer none): The object originating the message.
+ *
+ * Create a new stream_start message. This message is generated and posted in
+ * the sink elements of a GstBin. The bin will only forward the STREAM_START
+ * message to the application if all sinks have posted an STREAM_START message.
+ *
+ * Returns: (transfer full): The new stream_start message.
+ *
+ * MT safe.
+ */
+GstMessage *
+gst_message_new_stream_start (GstObject * src)
+{
+  GstMessage *message;
+
+  message = gst_message_new_custom (GST_MESSAGE_STREAM_START, src, NULL);
+
+  return message;
 }
diff --git a/gst/gstmessage.h b/gst/gstmessage.h
index b7046e1..185a3f2 100644
--- a/gst/gstmessage.h
+++ b/gst/gstmessage.h
@@ -75,21 +75,21 @@
  * can get the new duration with a duration query.
  * @GST_MESSAGE_ASYNC_START: Posted by elements when they start an ASYNC
  * #GstStateChange. This message is not forwarded to the application but is used
- * internally. Since: 0.10.13.
+ * internally.
  * @GST_MESSAGE_ASYNC_DONE: Posted by elements when they complete an ASYNC
  * #GstStateChange. The application will only receive this message from the toplevel
- * pipeline. Since: 0.10.13
+ * pipeline.
  * @GST_MESSAGE_LATENCY: Posted by elements when their latency changes. The
- * application should recalculate and distribute a new latency. Since: 0.10.12
+ * application should recalculate and distribute a new latency.
  * @GST_MESSAGE_REQUEST_STATE: Posted by elements when they want the pipeline to
  * change state. This message is a suggestion to the application which can
- * decide to perform the state change on (part of) the pipeline. Since: 0.10.23.
- * @GST_MESSAGE_STEP_START: A stepping operation was started. Since: 0.10.24
+ * decide to perform the state change on (part of) the pipeline.
+ * @GST_MESSAGE_STEP_START: A stepping operation was started.
  * @GST_MESSAGE_QOS: A buffer was dropped or an element changed its processing
- * strategy for Quality of Service reasons. Since: 0.10.29
- * @GST_MESSAGE_PROGRESS: A progress message. Since: 0.10.33
+ * strategy for Quality of Service reasons.
+ * @GST_MESSAGE_PROGRESS: A progress message.
  * @GST_MESSAGE_TOC: A new table of contents (TOC) was found or previously found TOC
- * was updated. Since: 0.10.37
+ * was updated. Since:
  * @GST_MESSAGE_ANY: mask for all of the above messages.
  *
  * The different message types that are available.
@@ -127,6 +127,8 @@
   GST_MESSAGE_QOS               = (1 << 24),
   GST_MESSAGE_PROGRESS          = (1 << 25),
   GST_MESSAGE_TOC               = (1 << 26),
+  GST_MESSAGE_RESET_TIME        = (1 << 27),
+  GST_MESSAGE_STREAM_START      = (1 << 28),
   GST_MESSAGE_ANY               = ~0
 } GstMessageType;
 
@@ -165,8 +167,6 @@
  * @message: a #GstMessage
  *
  * Get a constant string representation of the #GstMessageType of @message.
- *
- * Since: 0.10.4
  */
 #define GST_MESSAGE_TYPE_NAME(message)  gst_message_type_get_name(GST_MESSAGE_TYPE(message))
 /**
@@ -199,8 +199,6 @@
  *
  * Get the name of the object that posted @message. Returns "(NULL)" if
  * the message has no source object set.
- *
- * Since: 0.10.24
  */
 #define GST_MESSAGE_SRC_NAME(message)   (GST_MESSAGE_SRC(message) ? \
     GST_OBJECT_NAME (GST_MESSAGE_SRC(message)) : "(NULL)")
@@ -211,8 +209,6 @@
  * @GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK: Pad unlinking is starting or done.
  *
  * The type of a %GST_MESSAGE_STRUCTURE_CHANGE.
- *
- * Since: 0.10.22
  */
 typedef enum {
   GST_STRUCTURE_CHANGE_TYPE_PAD_LINK   = 0,
@@ -231,8 +227,6 @@
  *
  * The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
  * application of new streaming threads and their status.
- *
- * Since: 0.10.24
  */
 typedef enum {
   GST_STREAM_STATUS_TYPE_CREATE   = 0,
@@ -256,8 +250,6 @@
  *
  * The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the
  * application of the status of assynchronous tasks.
- *
- * Since: 0.10.33
  */
 typedef enum {
   GST_PROGRESS_TYPE_START    = 0,
@@ -501,8 +493,8 @@
 GstMessage *    gst_message_new_async_start     (GstObject * src) G_GNUC_MALLOC;
 
 /* ASYNC_DONE */
-GstMessage *    gst_message_new_async_done      (GstObject * src, gboolean reset_time) G_GNUC_MALLOC;
-void            gst_message_parse_async_done    (GstMessage *message, gboolean *reset_time);
+GstMessage *    gst_message_new_async_done      (GstObject * src, GstClockTime running_time) G_GNUC_MALLOC;
+void            gst_message_parse_async_done    (GstMessage *message, GstClockTime *running_time);
 
 /* STRUCTURE CHANGE */
 GstMessage *    gst_message_new_structure_change   (GstObject * src, GstStructureChangeType type,
@@ -553,6 +545,13 @@
 GstMessage *    gst_message_new_toc             (GstObject *src, GstToc *toc, gboolean updated);
 void            gst_message_parse_toc           (GstMessage *message, GstToc **toc, gboolean *updated);
 
+/* RESET_TIME */
+GstMessage *    gst_message_new_reset_time      (GstObject * src, GstClockTime running_time) G_GNUC_MALLOC;
+void            gst_message_parse_reset_time    (GstMessage *message, GstClockTime *running_time);
+
+/* STREAM_START */
+GstMessage *    gst_message_new_stream_start    (GstObject * src) G_GNUC_MALLOC;
+
 G_END_DECLS
 
 #endif /* __GST_MESSAGE_H__ */
diff --git a/gst/gstmeta.c b/gst/gstmeta.c
index 8f4a543..2ac6964 100644
--- a/gst/gstmeta.c
+++ b/gst/gstmeta.c
@@ -124,9 +124,9 @@
  * @api: the type of the #GstMeta API
  * @impl: the name of the #GstMeta implementation
  * @size: the size of the #GstMeta structure
- * @init_func: a #GstMetaInitFunction
- * @free_func: a #GstMetaFreeFunction
- * @transform_func: a #GstMetaTransformFunction
+ * @init_func: (scope async) a #GstMetaInitFunction
+ * @free_func: (scope async) a #GstMetaFreeFunction
+ * @transform_func: (scope async) a #GstMetaTransformFunction
  *
  * Register a new #GstMeta implementation.
  *
diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c
index 55d846b..14b55de 100644
--- a/gst/gstminiobject.c
+++ b/gst/gstminiobject.c
@@ -40,7 +40,15 @@
  * object. gst_mini_object_make_writable() will return a writable version of the
  * object, which might be a new copy when the refcount was not 1.
  *
- * Last reviewed on 2012-03-28 (0.11.3)
+ * Opaque data can be associated with a #GstMiniObject with
+ * gst_mini_object_set_qdata() and gst_mini_object_get_qdata(). The data is
+ * meant to be specific to the particular object and is not automatically copied
+ * with gst_mini_object_copy() or similar methods.
+ *
+ * A weak reference can be added and remove with gst_mini_object_weak_ref()
+ * and gst_mini_object_weak_unref() respectively.
+ *
+ * Last reviewed on 2012-06-15 (0.11.93)
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -57,37 +65,71 @@
 #endif
 
 /* Mutex used for weak referencing */
-G_LOCK_DEFINE_STATIC (weak_refs_mutex);
+G_LOCK_DEFINE_STATIC (qdata_mutex);
+static GQuark weak_ref_quark;
+
+#define SHARE_ONE (1 << 16)
+#define SHARE_TWO (2 << 16)
+#define SHARE_MASK (~(SHARE_ONE - 1))
+#define IS_SHARED(state) (state >= SHARE_TWO)
+#define LOCK_ONE (GST_LOCK_FLAG_LAST)
+#define FLAG_MASK (GST_LOCK_FLAG_LAST - 1)
+#define LOCK_MASK ((SHARE_ONE - 1) - FLAG_MASK)
+#define LOCK_FLAG_MASK (SHARE_ONE - 1)
+
+typedef struct
+{
+  GQuark quark;
+  GstMiniObjectNotify notify;
+  gpointer data;
+  GDestroyNotify destroy;
+} GstQData;
+
+#define QDATA(o,i)          ((GstQData *)(o)->qdata)[(i)]
+#define QDATA_QUARK(o,i)    (QDATA(o,i).quark)
+#define QDATA_NOTIFY(o,i)   (QDATA(o,i).notify)
+#define QDATA_DATA(o,i)     (QDATA(o,i).data)
+#define QDATA_DESTROY(o,i)  (QDATA(o,i).destroy)
 
 void
 _priv_gst_mini_object_initialize (void)
 {
+  weak_ref_quark = g_quark_from_static_string ("GstMiniObjectWeakRefQuark");
+
 #ifndef GST_DISABLE_TRACE
   _gst_mini_object_trace = _gst_alloc_trace_register ("GstMiniObject", 0);
 #endif
 }
 
 /**
- * gst_mini_object_init:
- * @mini_object: a #GstMiniObject 
+ * gst_mini_object_init: (skip)
+ * @mini_object: a #GstMiniObject
  * @type: the #GType of the mini-object to create
- * @size: the size of the data
+ * @copy_func: the copy function, or NULL
+ * @dispose_func: the dispose function, or NULL
+ * @free_func: the free function or NULL
  *
- * Initializes a mini-object with the desired type and size.
- *
- * MT safe
- *
- * Returns: (transfer full): the new mini-object.
+ * Initializes a mini-object with the desired type and copy/dispose/free
+ * functions.
  */
 void
-gst_mini_object_init (GstMiniObject * mini_object, GType type, gsize size)
+gst_mini_object_init (GstMiniObject * mini_object, guint flags, GType type,
+    GstMiniObjectCopyFunction copy_func,
+    GstMiniObjectDisposeFunction dispose_func,
+    GstMiniObjectFreeFunction free_func)
 {
   mini_object->type = type;
   mini_object->refcount = 1;
-  mini_object->flags = 0;
-  mini_object->size = size;
-  mini_object->n_weak_refs = 0;
-  mini_object->weak_refs = NULL;
+  mini_object->lockstate =
+      (flags & GST_MINI_OBJECT_FLAG_LOCK_READONLY ? GST_LOCK_FLAG_READ : 0);
+  mini_object->flags = flags;
+
+  mini_object->copy = copy_func;
+  mini_object->dispose = dispose_func;
+  mini_object->free = free_func;
+
+  mini_object->n_qdata = 0;
+  mini_object->qdata = NULL;
 
 #ifndef GST_DISABLE_TRACE
   _gst_alloc_trace_new (_gst_mini_object_trace, mini_object);
@@ -120,23 +162,136 @@
 }
 
 /**
+ * gst_mini_object_lock:
+ * @object: the mini-object to lock
+ * @flags: #GstLockFlags
+ *
+ * Lock the mini-object with the specified access mode in @flags.
+ *
+ * Returns: %TRUE if @object could be locked.
+ */
+gboolean
+gst_mini_object_lock (GstMiniObject * object, GstLockFlags flags)
+{
+  gint access_mode, state, newstate;
+
+  g_return_val_if_fail (object != NULL, FALSE);
+  g_return_val_if_fail (GST_MINI_OBJECT_IS_LOCKABLE (object), FALSE);
+
+  do {
+    access_mode = flags & FLAG_MASK;
+    newstate = state = g_atomic_int_get (&object->lockstate);
+
+    GST_CAT_TRACE (GST_CAT_LOCKING, "lock %p: state %08x, access_mode %d",
+        object, state, access_mode);
+
+    if (access_mode & GST_LOCK_FLAG_EXCLUSIVE) {
+      /* shared ref */
+      newstate += SHARE_ONE;
+      access_mode &= ~GST_LOCK_FLAG_EXCLUSIVE;
+    }
+
+    if (access_mode) {
+      /* shared counter > 1 and write access is not allowed */
+      if (access_mode & GST_LOCK_FLAG_WRITE && IS_SHARED (state))
+        goto lock_failed;
+
+      if ((state & LOCK_FLAG_MASK) == 0) {
+        /* nothing mapped, set access_mode */
+        newstate |= access_mode;
+      } else {
+        /* access_mode must match */
+        if ((state & access_mode) != access_mode)
+          goto lock_failed;
+      }
+      /* increase refcount */
+      newstate += LOCK_ONE;
+    }
+  } while (!g_atomic_int_compare_and_exchange (&object->lockstate, state,
+          newstate));
+
+  return TRUE;
+
+lock_failed:
+  {
+    GST_CAT_DEBUG (GST_CAT_LOCKING,
+        "lock failed %p: state %08x, access_mode %d", object, state,
+        access_mode);
+    return FALSE;
+  }
+}
+
+/**
+ * gst_mini_object_unlock:
+ * @object: the mini-object to unlock
+ * @flags: #GstLockFlags
+ *
+ * Unlock the mini-object with the specified access mode in @flags.
+ */
+void
+gst_mini_object_unlock (GstMiniObject * object, GstLockFlags flags)
+{
+  gint access_mode, state, newstate;
+
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (GST_MINI_OBJECT_IS_LOCKABLE (object));
+
+  do {
+    access_mode = flags & FLAG_MASK;
+    newstate = state = g_atomic_int_get (&object->lockstate);
+
+    GST_CAT_TRACE (GST_CAT_LOCKING, "unlock %p: state %08x, access_mode %d",
+        object, state, access_mode);
+
+    if (access_mode & GST_LOCK_FLAG_EXCLUSIVE) {
+      /* shared counter */
+      g_return_if_fail (state >= SHARE_ONE);
+      newstate -= SHARE_ONE;
+      access_mode &= ~GST_LOCK_FLAG_EXCLUSIVE;
+    }
+
+    if (access_mode) {
+      g_return_if_fail ((state & access_mode) == access_mode);
+      /* decrease the refcount */
+      newstate -= LOCK_ONE;
+      /* last refcount, unset access_mode */
+      if ((newstate & LOCK_FLAG_MASK) == access_mode)
+        newstate &= ~LOCK_FLAG_MASK;
+    }
+  } while (!g_atomic_int_compare_and_exchange (&object->lockstate, state,
+          newstate));
+}
+
+/**
  * gst_mini_object_is_writable:
  * @mini_object: the mini-object to check
  *
- * Checks if a mini-object is writable.  A mini-object is writable
- * if the reference count is one. Modification of a mini-object should
- * only be done after verifying that it is writable.
+ * If @mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE
+ * lock on @object is the only one, this means that changes to the object will
+ * not be visible to any other object.
  *
- * MT safe
+ * If the LOCKABLE flag is not set, check if the refcount of @mini_object is
+ * exactly 1, meaning that no other reference exists to the object and that the
+ * object is therefore writable.
+ *
+ * Modification of a mini-object should only be done after verifying that it
+ * is writable.
  *
  * Returns: TRUE if the object is writable.
  */
 gboolean
 gst_mini_object_is_writable (const GstMiniObject * mini_object)
 {
+  gboolean result;
+
   g_return_val_if_fail (mini_object != NULL, FALSE);
 
-  return (GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) == 1);
+  if (GST_MINI_OBJECT_IS_LOCKABLE (mini_object)) {
+    result = (g_atomic_int_get (&mini_object->lockstate) & SHARE_MASK) < 2;
+  } else {
+    result = (GST_MINI_OBJECT_REFCOUNT_VALUE (mini_object) == 1);
+  }
+  return result;
 }
 
 /**
@@ -205,14 +360,62 @@
   return mini_object;
 }
 
-static void
-weak_refs_notify (GstMiniObject * obj)
+static gint
+find_notify (GstMiniObject * object, GQuark quark, gboolean match_notify,
+    GstMiniObjectNotify notify, gpointer data)
 {
   guint i;
 
-  for (i = 0; i < obj->n_weak_refs; i++)
-    obj->weak_refs[i].notify (obj->weak_refs[i].data, obj);
-  g_free (obj->weak_refs);
+  for (i = 0; i < object->n_qdata; i++) {
+    if (QDATA_QUARK (object, i) == quark) {
+      /* check if we need to match the callback too */
+      if (!match_notify || (QDATA_NOTIFY (object, i) == notify &&
+              QDATA_DATA (object, i) == data))
+        return i;
+    }
+  }
+  return -1;
+}
+
+static void
+remove_notify (GstMiniObject * object, gint index)
+{
+  /* remove item */
+  if (--object->n_qdata == 0) {
+    /* we don't shrink but free when everything is gone */
+    g_free (object->qdata);
+    object->qdata = NULL;
+  } else if (index != object->n_qdata)
+    QDATA (object, index) = QDATA (object, object->n_qdata);
+}
+
+static void
+set_notify (GstMiniObject * object, gint index, GQuark quark,
+    GstMiniObjectNotify notify, gpointer data, GDestroyNotify destroy)
+{
+  if (index == -1) {
+    /* add item */
+    index = object->n_qdata++;
+    object->qdata =
+        g_realloc (object->qdata, sizeof (GstQData) * object->n_qdata);
+  }
+  QDATA_QUARK (object, index) = quark;
+  QDATA_NOTIFY (object, index) = notify;
+  QDATA_DATA (object, index) = data;
+  QDATA_DESTROY (object, index) = destroy;
+}
+
+static void
+call_finalize_notify (GstMiniObject * obj)
+{
+  guint i;
+
+  for (i = 0; i < obj->n_qdata; i++) {
+    if (QDATA_QUARK (obj, i) == weak_ref_quark)
+      QDATA_NOTIFY (obj, i) (QDATA_DATA (obj, i), obj);
+    if (QDATA_DESTROY (obj, i))
+      QDATA_DESTROY (obj, i) (QDATA_DATA (obj, i));
+  }
 }
 
 /**
@@ -245,10 +448,14 @@
     /* if the subclass recycled the object (and returned FALSE) we don't
      * want to free the instance anymore */
     if (G_LIKELY (do_free)) {
-      /* The weak reference stack is freed in the notification function */
-      if (mini_object->n_weak_refs)
-        weak_refs_notify (mini_object);
+      /* there should be no outstanding locks */
+      g_return_if_fail ((g_atomic_int_get (&mini_object->lockstate) & LOCK_MASK)
+          < 4);
 
+      if (mini_object->n_qdata) {
+        call_finalize_notify (mini_object);
+        g_free (mini_object->qdata);
+      }
 #ifndef GST_DISABLE_TRACE
       _gst_alloc_trace_free (_gst_mini_object_trace, mini_object);
 #endif
@@ -385,44 +592,18 @@
  * to the mini object without calling gst_mini_object_ref()
  * (gst_mini_object_ref() adds a strong reference, that is, forces the object
  * to stay alive).
- *
- * Since: 0.10.35
  */
 void
 gst_mini_object_weak_ref (GstMiniObject * object,
-    GstMiniObjectWeakNotify notify, gpointer data)
+    GstMiniObjectNotify notify, gpointer data)
 {
-  guint i;
-
   g_return_if_fail (object != NULL);
   g_return_if_fail (notify != NULL);
   g_return_if_fail (GST_MINI_OBJECT_REFCOUNT_VALUE (object) >= 1);
 
-  G_LOCK (weak_refs_mutex);
-
-  if (object->n_weak_refs) {
-    /* Don't add the weak reference if it already exists. */
-    for (i = 0; i < object->n_weak_refs; i++) {
-      if (object->weak_refs[i].notify == notify &&
-          object->weak_refs[i].data == data) {
-        g_warning ("%s: Attempt to re-add existing weak ref %p(%p) failed.",
-            G_STRFUNC, notify, data);
-        goto found;
-      }
-    }
-
-    i = object->n_weak_refs++;
-    object->weak_refs =
-        g_realloc (object->weak_refs, sizeof (object->weak_refs[0]) * i);
-  } else {
-    object->weak_refs = g_malloc0 (sizeof (object->weak_refs[0]));
-    object->n_weak_refs = 1;
-    i = 0;
-  }
-  object->weak_refs[i].notify = notify;
-  object->weak_refs[i].data = data;
-found:
-  G_UNLOCK (weak_refs_mutex);
+  G_LOCK (qdata_mutex);
+  set_notify (object, -1, weak_ref_quark, notify, data, NULL);
+  G_UNLOCK (qdata_mutex);
 }
 
 /**
@@ -431,36 +612,132 @@
  * @notify: callback to search for
  * @data: data to search for
  *
- * Removes a weak reference callback to a mini object.
- *
- * Since: 0.10.35
+ * Removes a weak reference callback from a mini object.
  */
 void
 gst_mini_object_weak_unref (GstMiniObject * object,
-    GstMiniObjectWeakNotify notify, gpointer data)
+    GstMiniObjectNotify notify, gpointer data)
 {
-  gboolean found_one = FALSE;
+  gint i;
 
   g_return_if_fail (object != NULL);
   g_return_if_fail (notify != NULL);
 
-  G_LOCK (weak_refs_mutex);
-
-  if (object->n_weak_refs) {
-    guint i;
-
-    for (i = 0; i < object->n_weak_refs; i++)
-      if (object->weak_refs[i].notify == notify &&
-          object->weak_refs[i].data == data) {
-        found_one = TRUE;
-        object->n_weak_refs -= 1;
-        if (i != object->n_weak_refs)
-          object->weak_refs[i] = object->weak_refs[object->n_weak_refs];
-
-        break;
-      }
-  }
-  G_UNLOCK (weak_refs_mutex);
-  if (!found_one)
+  G_LOCK (qdata_mutex);
+  if ((i = find_notify (object, weak_ref_quark, TRUE, notify, data)) != -1) {
+    remove_notify (object, i);
+  } else {
     g_warning ("%s: couldn't find weak ref %p(%p)", G_STRFUNC, notify, data);
+  }
+  G_UNLOCK (qdata_mutex);
+}
+
+/**
+ * gst_mini_object_set_qdata:
+ * @object: a #GstMiniObject
+ * @quark: A #GQuark, naming the user data pointer
+ * @data: An opaque user data pointer
+ * @destroy: Function to invoke with @data as argument, when @data
+ *           needs to be freed
+ *
+ * This sets an opaque, named pointer on a miniobject.
+ * The name is specified through a #GQuark (retrived e.g. via
+ * g_quark_from_static_string()), and the pointer
+ * can be gotten back from the @object with gst_mini_object_get_qdata()
+ * until the @object is disposed.
+ * Setting a previously set user data pointer, overrides (frees)
+ * the old pointer set, using #NULL as pointer essentially
+ * removes the data stored.
+ *
+ * @destroy may be specified which is called with @data as argument
+ * when the @object is disposed, or the data is being overwritten by
+ * a call to gst_mini_object_set_qdata() with the same @quark.
+ */
+void
+gst_mini_object_set_qdata (GstMiniObject * object, GQuark quark,
+    gpointer data, GDestroyNotify destroy)
+{
+  gint i;
+  gpointer old_data = NULL;
+  GDestroyNotify old_notify = NULL;
+
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (quark > 0);
+
+  G_LOCK (qdata_mutex);
+  if ((i = find_notify (object, quark, FALSE, NULL, NULL)) != -1) {
+
+    old_data = QDATA_DATA (object, i);
+    old_notify = QDATA_DESTROY (object, i);
+
+    if (data == NULL)
+      remove_notify (object, i);
+  }
+  if (data != NULL)
+    set_notify (object, i, quark, NULL, data, destroy);
+  G_UNLOCK (qdata_mutex);
+
+  if (old_notify)
+    old_notify (old_data);
+}
+
+/**
+ * gst_mini_object_get_qdata:
+ * @object: The GstMiniObject to get a stored user data pointer from
+ * @quark: A #GQuark, naming the user data pointer
+ *
+ * This function gets back user data pointers stored via
+ * gst_mini_object_set_qdata().
+ *
+ * Returns: (transfer none): The user data pointer set, or %NULL
+ */
+gpointer
+gst_mini_object_get_qdata (GstMiniObject * object, GQuark quark)
+{
+  guint i;
+  gpointer result;
+
+  g_return_val_if_fail (object != NULL, NULL);
+  g_return_val_if_fail (quark > 0, NULL);
+
+  G_LOCK (qdata_mutex);
+  if ((i = find_notify (object, quark, FALSE, NULL, NULL)) != -1)
+    result = QDATA_DATA (object, i);
+  else
+    result = NULL;
+  G_UNLOCK (qdata_mutex);
+
+  return result;
+}
+
+/**
+ * gst_mini_object_steal_qdata:
+ * @object: The GstMiniObject to get a stored user data pointer from
+ * @quark: A #GQuark, naming the user data pointer
+ *
+ * This function gets back user data pointers stored via gst_mini_object_set_qdata()
+ * and removes the data from @object without invoking its destroy() function (if
+ * any was set).
+ *
+ * Returns: (transfer full): The user data pointer set, or %NULL
+ */
+gpointer
+gst_mini_object_steal_qdata (GstMiniObject * object, GQuark quark)
+{
+  guint i;
+  gpointer result;
+
+  g_return_val_if_fail (object != NULL, NULL);
+  g_return_val_if_fail (quark > 0, NULL);
+
+  G_LOCK (qdata_mutex);
+  if ((i = find_notify (object, quark, FALSE, NULL, NULL)) != -1) {
+    result = QDATA_DATA (object, i);
+    remove_notify (object, i);
+  } else {
+    result = NULL;
+  }
+  G_UNLOCK (qdata_mutex);
+
+  return result;
 }
diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h
index 6984308..7ec67a9 100644
--- a/gst/gstminiobject.h
+++ b/gst/gstminiobject.h
@@ -68,20 +68,14 @@
 typedef void (*GstMiniObjectFreeFunction) (GstMiniObject *obj);
 
  /**
- * GstMiniObjectWeakNotify:
- * @data: data that was provided when the weak reference was established
- * @where_the_mini_object_was: the mini object being finalized
+ * GstMiniObjectNotify:
+ * @user_data: data that was provided when the notify was added
+ * @obj: the mini object
  *
- * A #GstMiniObjectWeakNotify function can be added to a mini object as a
- * callback that gets triggered when the mini object is finalized. Since the
- * mini object is already being finalized when the #GstMiniObjectWeakNotify is
- * called, there's not much you could do with the object, apart from e.g. using
- * its adress as hash-index or the like.
- *
- * Since: 0.10.35
+ * A #GstMiniObjectNotify function can be added to a mini object as a
+ * callback that gets triggered with gst_mini_object_notify().
  */
-typedef void (*GstMiniObjectWeakNotify) (gpointer data,
-    GstMiniObject * where_the_mini_object_was);
+typedef void (*GstMiniObjectNotify) (gpointer user_data, GstMiniObject * obj);
 
 /**
  * GST_MINI_OBJECT_TYPE:
@@ -90,6 +84,7 @@
  * This macro returns the type of the mini-object.
  */
 #define GST_MINI_OBJECT_TYPE(obj)  (GST_MINI_OBJECT_CAST(obj)->type)
+
 /**
  * GST_MINI_OBJECT_FLAGS:
  * @obj: MiniObject to return flags for.
@@ -124,17 +119,56 @@
 
 /**
  * GstMiniObjectFlags:
+ * @GST_MINI_OBJECT_FLAG_LOCKABLE: the object can be locked and unlocked with
+ * gst_mini_object_lock() and gst_mini_object_unlock().
+ * @GST_MINI_OBJECT_FLAG_LOCK_READONLY: the object is permanently locked in
+ * READONLY mode. Only read locks can be performed on the object.
  * @GST_MINI_OBJECT_FLAG_LAST: first flag that can be used by subclasses.
  *
  * Flags for the mini object
  */
 typedef enum
 {
+  GST_MINI_OBJECT_FLAG_LOCKABLE      = (1 << 0),
+  GST_MINI_OBJECT_FLAG_LOCK_READONLY = (1 << 1),
   /* padding */
-  GST_MINI_OBJECT_FLAG_LAST = (1<<4)
+  GST_MINI_OBJECT_FLAG_LAST          = (1 << 4)
 } GstMiniObjectFlags;
 
 /**
+ * GST_MINI_OBJECT_IS_LOCKABLE:
+ * @obj: a #GstMiniObject
+ *
+ * Check if @obj is lockable. A lockable object can be locked and unlocked with
+ * gst_mini_object_lock() and gst_mini_object_unlock().
+ */
+#define GST_MINI_OBJECT_IS_LOCKABLE(obj)  GST_MINI_OBJECT_FLAG_IS_SET(obj, GST_MINI_OBJECT_FLAG_LOCKABLE)
+
+/**
+ * GstLockFlags:
+ * @GST_LOCK_FLAG_READ: lock for read access
+ * @GST_LOCK_FLAG_WRITE: lock for write access
+ * @GST_LOCK_FLAG_EXCLUSIVE: lock for exclusive access
+ * @GST_LOCK_FLAG_LAST: first flag that can be used for custom purposes
+ *
+ * Flags used when locking miniobjects
+ */
+typedef enum {
+  GST_LOCK_FLAG_READ      = (1 << 0),
+  GST_LOCK_FLAG_WRITE     = (1 << 1),
+  GST_LOCK_FLAG_EXCLUSIVE = (1 << 2),
+
+  GST_LOCK_FLAG_LAST      = (1 << 8)
+} GstLockFlags;
+
+/**
+ * GST_LOCK_FLAG_READWRITE:
+ *
+ * GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE
+ */
+#define GST_LOCK_FLAG_READWRITE  (GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE)
+
+/**
  * GST_MINI_OBJECT_REFCOUNT:
  * @obj: a #GstMiniObject
  *
@@ -150,19 +184,11 @@
 #define GST_MINI_OBJECT_REFCOUNT_VALUE(obj)     (g_atomic_int_get (&(GST_MINI_OBJECT_CAST(obj))->refcount))
 
 /**
- * GST_MINI_OBJECT_SIZE:
- * @obj: a #GstMiniObject
- *
- * Get the allocated size of @obj.
- */
-#define GST_MINI_OBJECT_SIZE(obj)              ((GST_MINI_OBJECT_CAST(obj))->size)
-
-/**
  * GstMiniObject:
  * @type: the GType of the object
  * @refcount: atomic refcount
+ * @lockstate: atomic state of the locks
  * @flags: extra flags.
- * @size: the size of the structure
  * @copy: a copy function
  * @dispose: a dispose function
  * @free: the free function
@@ -178,41 +204,54 @@
 
   /*< public >*/ /* with COW */
   gint    refcount;
+  gint    lockstate;
   guint   flags;
-  gsize   size;
 
   GstMiniObjectCopyFunction copy;
   GstMiniObjectDisposeFunction dispose;
   GstMiniObjectFreeFunction free;
 
   /* < private > */
-  /* Used to keep track of weak ref notifies */
-  guint n_weak_refs;
-  struct
-  {
-    GstMiniObjectWeakNotify notify;
-    gpointer data;
-  } *weak_refs;
+  /* Used to keep track of weak ref notifies and qdata */
+  guint n_qdata;
+  gpointer qdata;
 };
 
-void            gst_mini_object_init            (GstMiniObject *mini_object,
-                                                 GType type, gsize size);
+void            gst_mini_object_init (GstMiniObject *mini_object,
+                                      guint flags, GType type,
+                                      GstMiniObjectCopyFunction copy_func,
+                                      GstMiniObjectDisposeFunction dispose_func,
+                                      GstMiniObjectFreeFunction free_func);
 
-GstMiniObject * gst_mini_object_copy		(const GstMiniObject *mini_object) G_GNUC_MALLOC;
-gboolean        gst_mini_object_is_writable	(const GstMiniObject *mini_object);
-GstMiniObject * gst_mini_object_make_writable	(GstMiniObject *mini_object);
 
 /* refcounting */
 GstMiniObject * gst_mini_object_ref		(GstMiniObject *mini_object);
 void            gst_mini_object_unref		(GstMiniObject *mini_object);
 
 void            gst_mini_object_weak_ref        (GstMiniObject *object,
-					         GstMiniObjectWeakNotify notify,
+					         GstMiniObjectNotify notify,
 					         gpointer data);
 void            gst_mini_object_weak_unref	(GstMiniObject *object,
-					         GstMiniObjectWeakNotify notify,
+					         GstMiniObjectNotify notify,
 					         gpointer data);
 
+/* locking */
+gboolean        gst_mini_object_lock            (GstMiniObject *object, GstLockFlags flags);
+void            gst_mini_object_unlock          (GstMiniObject *object, GstLockFlags flags);
+
+gboolean        gst_mini_object_is_writable     (const GstMiniObject *mini_object);
+GstMiniObject * gst_mini_object_make_writable	(GstMiniObject *mini_object);
+
+/* copy */
+GstMiniObject * gst_mini_object_copy		(const GstMiniObject *mini_object) G_GNUC_MALLOC;
+
+
+void            gst_mini_object_set_qdata       (GstMiniObject *object, GQuark quark,
+                                                 gpointer data, GDestroyNotify destroy);
+gpointer        gst_mini_object_get_qdata       (GstMiniObject *object, GQuark quark);
+gpointer        gst_mini_object_steal_qdata     (GstMiniObject *object, GQuark quark);
+
+
 gboolean        gst_mini_object_replace         (GstMiniObject **olddata, GstMiniObject *newdata);
 gboolean        gst_mini_object_take            (GstMiniObject **olddata, GstMiniObject *newdata);
 GstMiniObject * gst_mini_object_steal           (GstMiniObject **olddata);
diff --git a/gst/gstobject.c b/gst/gstobject.c
index e8d4880..eedd108 100644
--- a/gst/gstobject.c
+++ b/gst/gstobject.c
@@ -229,7 +229,7 @@
 
 /**
  * gst_object_ref:
- * @object: a #GstObject to reference
+ * @object: (type Gst.Object): a #GstObject to reference
  *
  * Increments the reference count on @object. This function
  * does not take the lock on @object because it relies on
@@ -239,7 +239,7 @@
  * constructs like :
  *  result = gst_object_ref (object->parent);
  *
- * Returns: (transfer full): A pointer to @object
+ * Returns: (transfer full) (type Gst.Object): A pointer to @object
  */
 gpointer
 gst_object_ref (gpointer object)
@@ -257,7 +257,7 @@
 
 /**
  * gst_object_unref:
- * @object: a #GstObject to unreference
+ * @object: (type Gst.Object): a #GstObject to unreference
  *
  * Decrements the reference count on @object.  If reference count hits
  * zero, destroy @object. This function does not take the lock
@@ -478,7 +478,7 @@
  * @orig: a #GstObject that initiated the notify.
  * @pspec: a #GParamSpec of the property.
  * @excluded_props: (array zero-terminated=1) (element-type gchar*)
- *     (allow-none):a set of user-specified properties to exclude or
+ *     (allow-none): a set of user-specified properties to exclude or
  *     NULL to show all changes.
  *
  * A default deep_notify signal callback for an object. The user data
@@ -507,19 +507,7 @@
     g_value_init (&value, pspec->value_type);
     g_object_get_property (G_OBJECT (orig), pspec->name, &value);
 
-    /* FIXME: handle flags */
-    if (G_IS_PARAM_SPEC_ENUM (pspec)) {
-      GEnumValue *enum_value;
-      GEnumClass *klass = G_ENUM_CLASS (g_type_class_ref (pspec->value_type));
-
-      enum_value = g_enum_get_value (klass, g_value_get_enum (&value));
-
-      str = g_strdup_printf ("%s (%d)", enum_value->value_nick,
-          enum_value->value);
-      g_type_class_unref (klass);
-    } else {
-      str = g_strdup_value_contents (&value);
-    }
+    str = gst_value_serialize (&value);
     name = gst_object_get_path_string (orig);
     g_print ("%s: %s = %s\n", name, pspec->name, str);
     g_free (name);
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 73981f3..49b65aa 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -808,6 +808,24 @@
   return gst_pad_activate_mode (pad, GST_PAD_MODE_PUSH, TRUE);
 }
 
+#ifndef GST_DISABLE_GST_DEBUG
+static const gchar *
+gst_pad_mode_get_name (GstPadMode mode)
+{
+  switch (mode) {
+    case GST_PAD_MODE_NONE:
+      return "none";
+    case GST_PAD_MODE_PUSH:
+      return "push";
+    case GST_PAD_MODE_PULL:
+      return "pull";
+    default:
+      break;
+  }
+  return "unknown";
+}
+#endif
+
 static void
 pre_activate (GstPad * pad, GstPadMode new_mode)
 {
@@ -824,7 +842,8 @@
     case GST_PAD_MODE_PUSH:
     case GST_PAD_MODE_PULL:
       GST_OBJECT_LOCK (pad);
-      GST_DEBUG_OBJECT (pad, "setting PAD_MODE %d, unset flushing", new_mode);
+      GST_DEBUG_OBJECT (pad, "setting pad into %s mode, unset flushing",
+          gst_pad_mode_get_name (new_mode));
       GST_PAD_UNSET_FLUSHING (pad);
       GST_PAD_MODE (pad) = new_mode;
       if (GST_PAD_IS_SINK (pad)) {
@@ -911,7 +930,8 @@
       GST_DEBUG_OBJECT (pad, "activating pad from none");
       ret = (GST_PAD_ACTIVATEFUNC (pad)) (pad, parent);
     } else {
-      GST_DEBUG_OBJECT (pad, "pad was active in mode %d", old);
+      GST_DEBUG_OBJECT (pad, "pad was active in %s mode",
+          gst_pad_mode_get_name (old));
       ret = TRUE;
     }
   } else {
@@ -919,7 +939,8 @@
       GST_DEBUG_OBJECT (pad, "pad was inactive");
       ret = TRUE;
     } else {
-      GST_DEBUG_OBJECT (pad, "deactivating pad from mode %d", old);
+      GST_DEBUG_OBJECT (pad, "deactivating pad from %s mode",
+          gst_pad_mode_get_name (old));
       ret = gst_pad_activate_mode (pad, old, FALSE);
     }
   }
@@ -929,11 +950,6 @@
   if (G_UNLIKELY (!ret))
     goto failed;
 
-  if (!active) {
-    GST_OBJECT_LOCK (pad);
-    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
-    GST_OBJECT_UNLOCK (pad);
-  }
   return ret;
 
   /* ERRORS */
@@ -994,10 +1010,12 @@
   if (old == new)
     goto was_ok;
 
-  if (active && old != mode) {
+  if (active && old != mode && old != GST_PAD_MODE_NONE) {
     /* pad was activate in the wrong direction, deactivate it
      * and reactivate it in the requested mode */
-    GST_DEBUG_OBJECT (pad, "deactivating pad from mode %d", old);
+    GST_DEBUG_OBJECT (pad, "deactivating pad from %s mode",
+        gst_pad_mode_get_name (old));
+
     if (G_UNLIKELY (!gst_pad_activate_mode (pad, old, FALSE)))
       goto deactivate_failed;
   }
@@ -1043,11 +1061,20 @@
 
   post_activate (pad, new);
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "%s in mode %d",
-      active ? "activated" : "deactivated", mode);
+  GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "%s in %s mode",
+      active ? "activated" : "deactivated", gst_pad_mode_get_name (mode));
 
 exit_success:
   res = TRUE;
+
+  /* Clear sticky flags on deactivation */
+  if (!active) {
+    GST_OBJECT_LOCK (pad);
+    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_NEED_RECONFIGURE);
+    GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
+    GST_OBJECT_UNLOCK (pad);
+  }
+
 exit:
   RELEASE_PARENT (parent);
 
@@ -1061,15 +1088,16 @@
   }
 was_ok:
   {
-    GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "already %s in mode %d",
-        active ? "activated" : "deactivated", mode);
+    GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "already %s in %s mode",
+        active ? "activated" : "deactivated", gst_pad_mode_get_name (mode));
     goto exit_success;
   }
 deactivate_failed:
   {
     GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad,
-        "failed to %s in switch to mode %d from mode %d",
-        (active ? "activate" : "deactivate"), mode, old);
+        "failed to %s in switch to %s mode from %s mode",
+        (active ? "activate" : "deactivate"), gst_pad_mode_get_name (mode),
+        gst_pad_mode_get_name (old));
     goto exit;
   }
 peer_failed:
@@ -1090,8 +1118,8 @@
 failure:
   {
     GST_OBJECT_LOCK (pad);
-    GST_CAT_INFO_OBJECT (GST_CAT_PADS, pad, "failed to %s in mode %d",
-        active ? "activate" : "deactivate", mode);
+    GST_CAT_INFO_OBJECT (GST_CAT_PADS, pad, "failed to %s in %s mode",
+        active ? "activate" : "deactivate", gst_pad_mode_get_name (mode));
     GST_PAD_SET_FLUSHING (pad);
     GST_PAD_MODE (pad) = old;
     GST_OBJECT_UNLOCK (pad);
@@ -1313,8 +1341,6 @@
  * Returns: TRUE if the pad is blocking.
  *
  * MT safe.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_pad_is_blocking (GstPad * pad)
@@ -1375,6 +1401,14 @@
 }
 
 /**
+ * gst_pad_set_activate_function:
+ * @p: a #GstPad.
+ * @f: the #GstPadActivateFunction to set.
+ *
+ * Calls gst_pad_set_activate_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_activate_function_full:
  * @pad: a #GstPad.
  * @activate: the #GstPadActivateFunction to set.
@@ -1404,6 +1438,14 @@
 }
 
 /**
+ * gst_pad_set_activatemode_function:
+ * @p: a #GstPad.
+ * @f: the #GstPadActivateModeFunction to set.
+ *
+ * Calls gst_pad_set_activatemode_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_activatemode_function_full:
  * @pad: a #GstPad.
  * @activatemode: the #GstPadActivateModeFunction to set.
@@ -1431,6 +1473,14 @@
 }
 
 /**
+ * gst_pad_set_chain_function:
+ * @p: a sink #GstPad.
+ * @f: the #GstPadChainFunction to set.
+ *
+ * Calls gst_pad_set_chain_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_chain_function_full:
  * @pad: a sink #GstPad.
  * @chain: the #GstPadChainFunction to set.
@@ -1458,6 +1508,14 @@
 }
 
 /**
+ * gst_pad_set_chain_list_function:
+ * @p: a sink #GstPad.
+ * @f: the #GstPadChainListFunction to set.
+ *
+ * Calls gst_pad_set_chain_list_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_chain_list_function_full:
  * @pad: a sink #GstPad.
  * @chainlist: the #GstPadChainListFunction to set.
@@ -1467,8 +1525,6 @@
  * Sets the given chain list function for the pad. The chainlist function is
  * called to process a #GstBufferList input buffer list. See
  * #GstPadChainListFunction for more details.
- *
- * Since: 0.10.24
  */
 void
 gst_pad_set_chain_list_function_full (GstPad * pad,
@@ -1489,6 +1545,14 @@
 }
 
 /**
+ * gst_pad_set_getrange_function:
+ * @p: a source #GstPad.
+ * @f: the #GstPadGetRangeFunction to set.
+ *
+ * Calls gst_pad_set_getrange_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_getrange_function_full:
  * @pad: a source #GstPad.
  * @get: the #GstPadGetRangeFunction to set.
@@ -1517,6 +1581,14 @@
 }
 
 /**
+ * gst_pad_set_event_function:
+ * @p: a #GstPad of either direction.
+ * @f: the #GstPadEventFunction to set.
+ *
+ * Calls gst_pad_set_event_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_event_function_full:
  * @pad: a #GstPad of either direction.
  * @event: the #GstPadEventFunction to set.
@@ -1542,6 +1614,14 @@
 }
 
 /**
+ * gst_pad_set_query_function:
+ * @p: a #GstPad of either direction.
+ * @f: the #GstPadQueryFunction to set.
+ *
+ * Calls gst_pad_set_query_function_full() with NULL for the user_data and
+ * notify.
+ */
+/**
  * gst_pad_set_query_function_full:
  * @pad: a #GstPad of either direction.
  * @query: the #GstPadQueryFunction to set.
@@ -1567,6 +1647,14 @@
 }
 
 /**
+ * gst_pad_set_iterate_internal_links_function:
+ * @p: a #GstPad of either direction.
+ * @f: the #GstPadIterIntLinkFunction to set.
+ *
+ * Calls gst_pad_set_iterate_internal_links_function_full() with NULL
+ * for the user_data and notify.
+ */
+/**
  * gst_pad_set_iterate_internal_links_function_full:
  * @pad: a #GstPad of either direction.
  * @iterintlink: the #GstPadIterIntLinkFunction to set.
@@ -1574,8 +1662,6 @@
  * @notify: notify called when @iterintlink will not be used anymore.
  *
  * Sets the given internal link iterator function for the pad.
- *
- * Since: 0.10.21
  */
 void
 gst_pad_set_iterate_internal_links_function_full (GstPad * pad,
@@ -1595,6 +1681,14 @@
 }
 
 /**
+ * gst_pad_set_link_function:
+ * @p: a #GstPad.
+ * @f: the #GstPadLinkFunction to set.
+ *
+ * Calls gst_pad_set_link_function_full() with NULL
+ * for the user_data and notify.
+ */
+/**
  * gst_pad_set_link_function_full:
  * @pad: a #GstPad.
  * @link: the #GstPadLinkFunction to set.
@@ -1630,6 +1724,14 @@
 }
 
 /**
+ * gst_pad_set_unlink_function:
+ * @p: a #GstPad.
+ * @f: the #GstPadUnlinkFunction to set.
+ *
+ * Calls gst_pad_set_unlink_function_full() with NULL
+ * for the user_data and notify.
+ */
+/**
  * gst_pad_set_unlink_function_full:
  * @pad: a #GstPad.
  * @unlink: the #GstPadUnlinkFunction to set.
@@ -2029,8 +2131,6 @@
  *
  * Returns: A result code indicating if the connection worked or
  *          what went wrong.
- *
- * Since: 0.10.30
  */
 GstPadLinkReturn
 gst_pad_link_full (GstPad * srcpad, GstPad * sinkpad, GstPadLinkCheck flags)
@@ -2257,41 +2357,6 @@
 }
 
 /**
- * gst_pad_set_caps:
- * @pad: a  #GstPad to set the capabilities of.
- * @caps: (transfer none): a #GstCaps to set.
- *
- * Sets the capabilities of this pad. The caps must be fixed. Any previous
- * caps on the pad will be unreffed. This function refs the caps so you should
- * unref if as soon as you don't need it anymore.
- * It is possible to set NULL caps, which will make the pad unnegotiated
- * again.
- *
- * Returns: TRUE if the caps could be set. FALSE if the caps were not fixed
- * or bad parameters were provided to this function.
- *
- * MT safe.
- */
-gboolean
-gst_pad_set_caps (GstPad * pad, GstCaps * caps)
-{
-  GstEvent *event;
-  gboolean res = TRUE;
-
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-  g_return_val_if_fail (caps != NULL && gst_caps_is_fixed (caps), FALSE);
-
-  event = gst_event_new_caps (caps);
-
-  if (GST_PAD_IS_SRC (pad))
-    res = gst_pad_push_event (pad, event);
-  else
-    res = gst_pad_send_event (pad, event);
-
-  return res;
-}
-
-/**
  * gst_pad_get_pad_template_caps:
  * @pad: a #GstPad to get the template capabilities from.
  *
@@ -2411,8 +2476,6 @@
  *
  * Returns: a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each
  * returned pad with gst_object_unref().
- *
- * Since: 0.10.21
  */
 GstIterator *
 gst_pad_iterate_internal_links_default (GstPad * pad, GstObject * parent)
@@ -2480,8 +2543,6 @@
  * Returns: (transfer full): a new #GstIterator of #GstPad or %NULL when the
  *     pad does not have an iterator function configured. Use
  *     gst_iterator_free() after usage.
- *
- * Since: 0.10.21
  */
 GstIterator *
 gst_pad_iterate_internal_links (GstPad * pad)
@@ -2514,7 +2575,7 @@
 /**
  * gst_pad_forward:
  * @pad: a #GstPad
- * @forward: a #GstPadForwardFunction
+ * @forward: (scope call): a #GstPadForwardFunction
  * @user_data: user data passed to @forward
  *
  * Calls @forward for all internally linked pads of @pad. This function deals with
@@ -2714,18 +2775,18 @@
   GstPadTemplate *templ;
   gboolean fixed_caps;
 
-  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "get pad caps");
-
-  gst_query_parse_caps (query, &filter);
+  GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "query caps %" GST_PTR_FORMAT,
+      query);
 
   /* first try to proxy if we must */
   if (GST_PAD_IS_PROXY_CAPS (pad)) {
     if ((gst_pad_proxy_query_caps (pad, query))) {
-      gst_query_parse_caps_result (query, &result);
-      goto filter_done;
+      goto done;
     }
   }
 
+  gst_query_parse_caps (query, &filter);
+
   /* no proxy or it failed, do default handling */
   fixed_caps = GST_PAD_IS_FIXED_CAPS (pad);
 
@@ -2758,7 +2819,6 @@
 filter_done_unlock:
   GST_OBJECT_UNLOCK (pad);
 
-filter_done:
   /* run the filter on the result */
   if (filter) {
     GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
@@ -2772,10 +2832,10 @@
         "using caps %p %" GST_PTR_FORMAT, result, result);
     result = gst_caps_ref (result);
   }
-
   gst_query_set_caps_result (query, result);
   gst_caps_unref (result);
 
+done:
   return TRUE;
 }
 
@@ -2790,7 +2850,7 @@
 query_forward_func (GstPad * pad, QueryData * data)
 {
   GST_LOG_OBJECT (pad, "query peer %p (%s) of %s:%s",
-      data->query, GST_EVENT_TYPE_NAME (data->query), GST_DEBUG_PAD_NAME (pad));
+      data->query, GST_QUERY_TYPE_NAME (data->query), GST_DEBUG_PAD_NAME (pad));
 
   data->result |= gst_pad_peer_query (pad, data->query);
 
@@ -2821,7 +2881,7 @@
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_SCHEDULING:
-      forward = FALSE;
+      forward = GST_PAD_IS_PROXY_SCHEDULING (pad);
       break;
     case GST_QUERY_ALLOCATION:
       forward = GST_PAD_IS_PROXY_ALLOCATION (pad);
@@ -3372,8 +3432,6 @@
  *
  * Returns: TRUE if the query could be performed. This function returns %FALSE
  * if @pad has no peer.
- *
- * Since: 0.10.15
  */
 gboolean
 gst_pad_peer_query (GstPad * pad, GstQuery * query)
@@ -3694,8 +3752,6 @@
  * MT safe.
  *
  * Returns: a #GstFlowReturn from the pad.
- *
- * Since: 0.10.24
  */
 GstFlowReturn
 gst_pad_chain_list (GstPad * pad, GstBufferList * list)
@@ -3871,8 +3927,6 @@
  * Returns: a #GstFlowReturn from the peer pad.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 GstFlowReturn
 gst_pad_push_list (GstPad * pad, GstBufferList * list)
@@ -5025,18 +5079,14 @@
       thread, task);
 }
 
-static GstTaskThreadCallbacks thr_callbacks = {
-  pad_enter_thread,
-  pad_leave_thread,
-};
-
 /**
  * gst_pad_start_task:
  * @pad: the #GstPad to start the task of
  * @func: the task function to call
- * @data: data passed to the task function
+ * @user_data: user data passed to the task function
+ * @notify: called when @user_data is no longer referenced
  *
- * Starts a task that repeatedly calls @func with @data. This function
+ * Starts a task that repeatedly calls @func with @user_data. This function
  * is mostly used in pad activation functions to start the dataflow.
  * The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
  * before @func is called.
@@ -5044,7 +5094,8 @@
  * Returns: a %TRUE if the task could be started.
  */
 gboolean
-gst_pad_start_task (GstPad * pad, GstTaskFunction func, gpointer data)
+gst_pad_start_task (GstPad * pad, GstTaskFunction func, gpointer user_data,
+    GDestroyNotify notify)
 {
   GstTask *task;
   gboolean res;
@@ -5057,9 +5108,10 @@
   GST_OBJECT_LOCK (pad);
   task = GST_PAD_TASK (pad);
   if (task == NULL) {
-    task = gst_task_new (func, data);
+    task = gst_task_new (func, user_data, notify);
     gst_task_set_lock (task, GST_PAD_GET_STREAM_LOCK (pad));
-    gst_task_set_thread_callbacks (task, &thr_callbacks, pad, NULL);
+    gst_task_set_enter_callback (task, pad_enter_thread, pad, NULL);
+    gst_task_set_leave_callback (task, pad_leave_thread, pad, NULL);
     GST_INFO_OBJECT (pad, "created task %p", task);
     GST_PAD_TASK (pad) = task;
     gst_object_ref (task);
diff --git a/gst/gstpad.h b/gst/gstpad.h
index 4e93f07..9bf812a 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -137,23 +137,22 @@
  * @GST_FLOW_NOT_SUPPORTED:	 This operation is not supported.
  * @GST_FLOW_CUSTOM_SUCCESS:	 Elements can use values starting from
  *                               this (and higher) to define custom success
- *                               codes. Since 0.10.7.
+ *                               codes.
  * @GST_FLOW_CUSTOM_SUCCESS_1:	 Pre-defined custom success code (define your
  *                               custom success code to this to avoid compiler
- *                               warnings). Since 0.10.29.
- * @GST_FLOW_CUSTOM_SUCCESS_2:	 Pre-defined custom success code. Since 0.10.29.
+ *                               warnings).
+ * @GST_FLOW_CUSTOM_SUCCESS_2:	 Pre-defined custom success code.
  * @GST_FLOW_CUSTOM_ERROR:	 Elements can use values starting from
  *                               this (and lower) to define custom error codes.
- *                               Since 0.10.7.
  * @GST_FLOW_CUSTOM_ERROR_1:	 Pre-defined custom error code (define your
  *                               custom error code to this to avoid compiler
- *                               warnings). Since 0.10.29.
- * @GST_FLOW_CUSTOM_ERROR_2:	 Pre-defined custom error code. Since 0.10.29.
+ *                               warnings).
+ * @GST_FLOW_CUSTOM_ERROR_2:	 Pre-defined custom error code.
  *
  * The result of passing data to a pad.
  *
  * Note that the custom return values should not be exposed outside of the
- * element scope and are available since 0.10.7.
+ * element scope.
  */
 /* FIXME 0.11: remove custom flow returns */
 typedef enum {
@@ -204,8 +203,6 @@
  * use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods
  * for linking the pads.
  * </para></warning>
- *
- * Since: 0.10.30
  */
 
 typedef enum {
@@ -220,8 +217,6 @@
  *
  * The default checks done when linking pads (i.e. the ones used by
  * gst_pad_link()).
- *
- * Since: 0.10.30
  */
 #define GST_PAD_LINK_CHECK_DEFAULT ((GstPadLinkCheck) (GST_PAD_LINK_CHECK_HIERARCHY | GST_PAD_LINK_CHECK_CAPS))
 
@@ -381,8 +376,6 @@
  * linked to the given pad on the inside of the parent element.
  *
  * the caller must call gst_iterator_free() after usage.
- *
- * Since 0.10.21
  */
 typedef GstIterator*           (*GstPadIterIntLinkFunction)    (GstPad *pad, GstObject *parent);
 
@@ -405,7 +398,7 @@
 
 /* linking */
 /**
- * GstPadLinkFunction
+ * GstPadLinkFunction:
  * @pad: the #GstPad that is linked.
  * @peer: the peer #GstPad of the link
  *
@@ -415,7 +408,7 @@
  */
 typedef GstPadLinkReturn	(*GstPadLinkFunction)		(GstPad *pad, GstPad *peer);
 /**
- * GstPadUnlinkFunction
+ * GstPadUnlinkFunction:
  * @pad: the #GstPad that is linked.
  *
  * Function signature to handle a unlinking the pad prom its peer.
@@ -553,7 +546,7 @@
 #define GST_PAD_PROBE_INFO_SIZE(d)         ((d)->size)
 
 /**
- * GstPadProbeCallback
+ * GstPadProbeCallback:
  * @pad: the #GstPad that is blocked
  * @info: #GstPadProbeInfo
  * @user_data: the gpointer to optional user data.
@@ -608,6 +601,9 @@
  * @GST_PAD_FLAG_PROXY_ALLOCATION: the default query handler will forward
  *                      allocation queries to the internally linked pads
  *                      instead of discarding them.
+ * @GST_PAD_FLAG_PROXY_SCHEDULING: the default query handler will forward
+ *                      scheduling queries to the internally linked pads
+ *                      instead of discarding them.
  * @GST_PAD_FLAG_LAST: offset to define more flags
  *
  * Pad state flags
@@ -623,6 +619,7 @@
   GST_PAD_FLAG_FIXED_CAPS       = (GST_OBJECT_FLAG_LAST << 7),
   GST_PAD_FLAG_PROXY_CAPS       = (GST_OBJECT_FLAG_LAST << 8),
   GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 9),
+  GST_PAD_FLAG_PROXY_SCHEDULING = (GST_OBJECT_FLAG_LAST << 10),
   /* padding */
   GST_PAD_FLAG_LAST        = (GST_OBJECT_FLAG_LAST << 16)
 } GstPadFlags;
@@ -772,6 +769,10 @@
 #define GST_PAD_SET_PROXY_ALLOCATION(pad)   (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PROXY_ALLOCATION))
 #define GST_PAD_UNSET_PROXY_ALLOCATION(pad) (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PROXY_ALLOCATION))
 
+#define GST_PAD_IS_PROXY_SCHEDULING(pad)    (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PROXY_SCHEDULING))
+#define GST_PAD_SET_PROXY_SCHEDULING(pad)   (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PROXY_SCHEDULING))
+#define GST_PAD_UNSET_PROXY_SCHEDULING(pad) (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PROXY_SCHEDULING))
+
 /**
  * GST_PAD_GET_STREAM_LOCK:
  * @pad: a #GstPad
@@ -926,7 +927,6 @@
 /* capsnego function for linked/unlinked pads */
 GstCaps *		gst_pad_get_current_caps                (GstPad * pad);
 gboolean		gst_pad_has_current_caps                (GstPad * pad);
-gboolean		gst_pad_set_caps			(GstPad * pad, GstCaps *caps);
 
 /* capsnego for linked pads */
 GstCaps *		gst_pad_get_allowed_caps		(GstPad * pad);
@@ -953,7 +953,7 @@
 
 /* pad tasks */
 gboolean		gst_pad_start_task			(GstPad *pad, GstTaskFunction func,
-								 gpointer data);
+								 gpointer user_data, GDestroyNotify notify);
 gboolean		gst_pad_pause_task			(GstPad *pad);
 gboolean		gst_pad_stop_task			(GstPad *pad);
 
diff --git a/gst/gstpadtemplate.c b/gst/gstpadtemplate.c
index a8f1716..a2dd97c 100644
--- a/gst/gstpadtemplate.c
+++ b/gst/gstpadtemplate.c
@@ -160,11 +160,9 @@
   gobject_class->set_property = gst_pad_template_set_property;
 
   /**
-   * GstPadTemplate:name-template
+   * GstPadTemplate:name-template:
    *
    * The name template of the pad template.
-   *
-   * Since: 0.10.21
    */
   g_object_class_install_property (gobject_class, PROP_NAME_TEMPLATE,
       g_param_spec_string ("name-template", "Name template",
@@ -172,11 +170,9 @@
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstPadTemplate:direction
+   * GstPadTemplate:direction:
    *
    * The direction of the pad described by the pad template.
-   *
-   * Since: 0.10.21
    */
   g_object_class_install_property (gobject_class, PROP_DIRECTION,
       g_param_spec_enum ("direction", "Direction",
@@ -185,11 +181,9 @@
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstPadTemplate:presence
+   * GstPadTemplate:presence:
    *
    * When the pad described by the pad template will become available.
-   *
-   * Since: 0.10.21
    */
   g_object_class_install_property (gobject_class, PROP_PRESENCE,
       g_param_spec_enum ("presence", "Presence",
@@ -198,11 +192,9 @@
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstPadTemplate:caps
+   * GstPadTemplate:caps:
    *
    * The capabilities of the pad described by the pad template.
-   *
-   * Since: 0.10.21
    */
   g_object_class_install_property (gobject_class, PROP_CAPS,
       g_param_spec_boxed ("caps", "Caps",
diff --git a/gst/gstpadtemplate.h b/gst/gstpadtemplate.h
index 7bbbf16..90f9b25 100644
--- a/gst/gstpadtemplate.h
+++ b/gst/gstpadtemplate.h
@@ -126,6 +126,7 @@
   GstPadPresence   presence;
   GstCaps	  *caps;
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
@@ -135,6 +136,7 @@
   /* signal callbacks */
   void (*pad_created)	(GstPadTemplate *templ, GstPad *pad);
 
+  /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };
 
diff --git a/gst/gstparamspecs.c b/gst/gstparamspecs.c
index bed692d..ba16fcd 100644
--- a/gst/gstparamspecs.c
+++ b/gst/gstparamspecs.c
@@ -163,8 +163,6 @@
  * instance_init function.
  *
  * Returns: (transfer full): a newly created parameter specification
- *
- * Since: 0.10.14
  */
 GParamSpec *
 gst_param_spec_fraction (const gchar * name, const gchar * nick,
diff --git a/gst/gstparamspecs.h b/gst/gstparamspecs.h
index 0e22f40..e7e5fd5 100644
--- a/gst/gstparamspecs.h
+++ b/gst/gstparamspecs.h
@@ -39,8 +39,6 @@
  *
  * Use this flag on GObject properties of GstElements to indicate that
  * they can be changed when the element is in the READY or lower state.
- *
- * Since: 0.10.23
  */
 #define GST_PARAM_MUTABLE_READY  (1 << (G_PARAM_USER_SHIFT + 2))
 
@@ -50,8 +48,6 @@
  * Use this flag on GObject properties of GstElements to indicate that
  * they can be changed when the element is in the PAUSED or lower state.
  * This flag implies GST_PARAM_MUTABLE_READY.
- *
- * Since: 0.10.23
  */
 #define GST_PARAM_MUTABLE_PAUSED  (1 << (G_PARAM_USER_SHIFT + 3))
 
@@ -61,8 +57,6 @@
  * Use this flag on GObject properties of GstElements to indicate that
  * they can be changed when the element is in the PLAYING or lower state.
  * This flag implies GST_PARAM_MUTABLE_PAUSED.
- *
- * Since: 0.10.23
  */
 #define GST_PARAM_MUTABLE_PLAYING  (1 << (G_PARAM_USER_SHIFT + 4))
 
diff --git a/gst/gstparse.c b/gst/gstparse.c
index 3e6714d..75662d0 100644
--- a/gst/gstparse.c
+++ b/gst/gstparse.c
@@ -96,8 +96,6 @@
  *
  * Returns: (transfer full): a newly-allocated parse context. Free with
  *     gst_parse_context_free() when no longer needed.
- *
- * Since: 0.10.20
  */
 GstParseContext *
 gst_parse_context_new (void)
@@ -119,8 +117,6 @@
  * @context: (transfer full): a #GstParseContext
  *
  * Frees a parse context previously allocated with gst_parse_context_new().
- *
- * Since: 0.10.20
  */
 void
 gst_parse_context_free (GstParseContext * context)
@@ -145,8 +141,6 @@
  * Returns: (transfer full) (array zero-terminated=1) (element-type gchar*): a
  *     NULL-terminated array of element factory name strings of missing
  *     elements. Free with g_strfreev() when no longer needed.
- *
- * Since: 0.10.20
  */
 gchar **
 gst_parse_context_get_missing_elements (GstParseContext * context)
@@ -181,14 +175,21 @@
 _gst_parse_escape (const gchar * str)
 {
   GString *gstr = NULL;
+  gboolean in_quotes;
 
   g_return_val_if_fail (str != NULL, NULL);
 
   gstr = g_string_sized_new (strlen (str));
 
+  in_quotes = FALSE;
+
   while (*str) {
-    if (*str == ' ')
+    if (*str == '"' && (!in_quotes || (in_quotes && *(str - 1) != '\\')))
+      in_quotes = !in_quotes;
+
+    if (*str == ' ' && !in_quotes)
       g_string_append_c (gstr, '\\');
+
     g_string_append_c (gstr, *str);
     str++;
   }
@@ -230,8 +231,6 @@
  *   or a partially-constructed bin or element will be returned and @error will
  *   be set (unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then
  *   %NULL will always be returned on failure)
- *
- * Since: 0.10.20
  */
 GstElement *
 gst_parse_launchv_full (const gchar ** argv, GstParseContext * context,
@@ -252,6 +251,7 @@
   argvp = argv;
   while (*argvp) {
     arg = *argvp;
+    GST_DEBUG ("escaping argument %s", arg);
     tmp = _gst_parse_escape (arg);
     g_string_append (str, tmp);
     g_free (tmp);
@@ -307,8 +307,6 @@
  * Returns: (transfer full): a new element on success, %NULL on failure. If
  *    more than one toplevel element is specified by the @pipeline_description,
  *    all elements are put into a #GstPipeline, which then is returned.
- *
- * Since: 0.10.20
  */
 GstElement *
 gst_parse_launch_full (const gchar * pipeline_description,
diff --git a/gst/gstparse.h b/gst/gstparse.h
index 4025031..630c3ce 100644
--- a/gst/gstparse.h
+++ b/gst/gstparse.h
@@ -66,8 +66,6 @@
  *      in some cases)
  *
  * Parsing options.
- *
- * Since: 0.10.20
  */
 typedef enum
 {
@@ -81,8 +79,6 @@
  * GstParseContext:
  *
  * Opaque structure.
- *
- * Since: 0.10.20
  */
 typedef struct _GstParseContext GstParseContext;
 
diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c
index 38eb09d..c15f003 100644
--- a/gst/gstpipeline.c
+++ b/gst/gstpipeline.c
@@ -155,13 +155,11 @@
   gobject_class->get_property = gst_pipeline_get_property;
 
   /**
-   * GstPipeline:delay
+   * GstPipeline:delay:
    *
    * The expected delay needed for elements to spin up to the
    * PLAYING state expressed in nanoseconds.
    * see gst_pipeline_set_delay() for more information on this option.
-   *
-   * Since: 0.10.5
    **/
   g_object_class_install_property (gobject_class, PROP_DELAY,
       g_param_spec_uint64 ("delay", "Delay",
@@ -175,8 +173,6 @@
    * Whether or not to automatically flush all messages on the
    * pipeline's bus when going from READY to NULL state. Please see
    * gst_pipeline_set_auto_flush_bus() for more information on this option.
-   *
-   * Since: 0.10.4
    **/
   g_object_class_install_property (gobject_class, PROP_AUTO_FLUSH_BUS,
       g_param_spec_boolean ("auto-flush-bus", "Auto Flush Bus",
@@ -279,12 +275,12 @@
 /* set the start_time to 0, this will cause us to select a new base_time and
  * make the running_time start from 0 again. */
 static void
-reset_start_time (GstPipeline * pipeline)
+reset_start_time (GstPipeline * pipeline, GstClockTime start_time)
 {
   GST_OBJECT_LOCK (pipeline);
   if (GST_ELEMENT_START_TIME (pipeline) != GST_CLOCK_TIME_NONE) {
     GST_DEBUG_OBJECT (pipeline, "reset start_time to 0");
-    GST_ELEMENT_START_TIME (pipeline) = 0;
+    GST_ELEMENT_START_TIME (pipeline) = start_time;
     pipeline->priv->last_start_time = -1;
   } else {
     GST_DEBUG_OBJECT (pipeline, "application asked to not reset stream_time");
@@ -476,7 +472,8 @@
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
     {
-      reset_start_time (pipeline);
+      /* READY to PAUSED starts running_time from 0 */
+      reset_start_time (pipeline, 0);
       break;
     }
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -544,17 +541,15 @@
   GstPipeline *pipeline = GST_PIPELINE_CAST (bin);
 
   switch (GST_MESSAGE_TYPE (message)) {
-    case GST_MESSAGE_ASYNC_DONE:
+    case GST_MESSAGE_RESET_TIME:
     {
-      gboolean reset_time;
+      GstClockTime running_time;
 
-      gst_message_parse_async_done (message, &reset_time);
+      gst_message_parse_reset_time (message, &running_time);
 
       /* reset our running time if we need to distribute a new base_time to the
        * children. */
-      if (reset_time)
-        reset_start_time (pipeline);
-
+      reset_start_time (pipeline, running_time);
       break;
     }
     case GST_MESSAGE_CLOCK_LOST:
@@ -749,8 +744,6 @@
  * used.
  *
  * MT safe.
- *
- * Since: 0.10.5
  */
 void
 gst_pipeline_set_delay (GstPipeline * pipeline, GstClockTime delay)
@@ -772,8 +765,6 @@
  * Returns: The configured delay.
  *
  * MT safe.
- *
- * Since: 0.10.5
  */
 GstClockTime
 gst_pipeline_get_delay (GstPipeline * pipeline)
@@ -809,8 +800,6 @@
  * automatic flushing is disabled else memory leaks will be introduced.
  *
  * MT safe.
- *
- * Since: 0.10.4
  */
 void
 gst_pipeline_set_auto_flush_bus (GstPipeline * pipeline, gboolean auto_flush)
@@ -833,8 +822,6 @@
  * going from READY to NULL state or not.
  *
  * MT safe.
- *
- * Since: 0.10.4
  */
 gboolean
 gst_pipeline_get_auto_flush_bus (GstPipeline * pipeline)
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index a7542fc..0ee39a3 100644
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
@@ -194,8 +194,6 @@
  * via gst_init_get_option_group()) before calling this function.
  *
  * Returns: TRUE if the plugin was registered correctly, otherwise FALSE.
- *
- * Since: 0.10.16
  */
 gboolean
 gst_plugin_register_static (gint major_version, gint minor_version,
@@ -261,9 +259,6 @@
  * via gst_init_get_option_group()) before calling this function.
  *
  * Returns: TRUE if the plugin was registered correctly, otherwise FALSE.
- *
- * Since: 0.10.24
- *
  */
 gboolean
 gst_plugin_register_static_full (gint major_version, gint minor_version,
@@ -791,6 +786,11 @@
     CHECK_PLUGIN_DESC_FIELD (plugin->orig_desc, package, filename);
     CHECK_PLUGIN_DESC_FIELD (plugin->orig_desc, origin, filename);
 
+    if (plugin->orig_desc->name != NULL && plugin->orig_desc->name[0] == '"') {
+      g_warning ("Invalid plugin name '%s' - fix your GST_PLUGIN_DEFINE "
+          "(remove quotes around plugin name)", plugin->orig_desc->name);
+    }
+
     if (plugin->orig_desc->release_datetime != NULL &&
         !check_release_datetime (plugin->orig_desc->release_datetime)) {
       GST_ERROR ("GstPluginDesc for '%s' has invalid datetime '%s'",
@@ -1035,8 +1035,6 @@
  * stored. This is the case when the registry is getting rebuilt.
  *
  * Returns: (transfer none): The cached data as a #GstStructure or %NULL.
- *
- * Since: 0.10.24
  */
 const GstStructure *
 gst_plugin_get_cache_data (GstPlugin * plugin)
@@ -1055,8 +1053,6 @@
  * the @plugin.
  *
  * The cache is flushed every time the registry is rebuilt.
- *
- * Since: 0.10.24
  */
 void
 gst_plugin_set_cache_data (GstPlugin * plugin, GstStructure * cache_data)
@@ -1733,8 +1729,6 @@
  * library and makes visualisations available as GStreamer elements, or a
  * codec loader which exposes elements and/or caps dependent on what external
  * codec libraries are currently installed.
- *
- * Since: 0.10.22
  */
 void
 gst_plugin_add_dependency (GstPlugin * plugin, const gchar ** env_vars,
@@ -1806,8 +1800,6 @@
  * Convenience wrapper function for gst_plugin_add_dependency() which
  * takes simple strings as arguments instead of string arrays, with multiple
  * arguments separated by predefined delimiters (see above).
- *
- * Since: 0.10.22
  */
 void
 gst_plugin_add_dependency_simple (GstPlugin * plugin,
diff --git a/gst/gstplugin.h b/gst/gstplugin.h
index 8d5f6c7..6807186 100644
--- a/gst/gstplugin.h
+++ b/gst/gstplugin.h
@@ -95,8 +95,6 @@
  *         the directory
  *
  * Flags used in connection with gst_plugin_add_dependency().
- *
- * Since: 0.10.22
  */
 typedef enum {
   GST_PLUGIN_DEPENDENCY_FLAG_NONE = 0,
@@ -131,9 +129,6 @@
  * user data to be passed to init function (useful for bindings).
  *
  * Returns: %TRUE if plugin initialised successfully
- *
- * Since: 0.10.24
- *
  */
 /* FIXME 0.11: Merge with GstPluginInitFunc */
 typedef gboolean (*GstPluginInitFullFunc) (GstPlugin *plugin, gpointer user_data);
@@ -154,7 +149,7 @@
  *     subset thereof), or NULL. Allowed are the following formats:
  *     "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with 'T' a separator and 'Z'
  *     indicating UTC/Zulu time). This field should be set via the
- *     GST_PACKAGE_RELEASE_DATETIME preprocessor macro (Since: 0.10.31)
+ *     GST_PACKAGE_RELEASE_DATETIME preprocessor macro.
  *
  * A plugin should export a variable of this type called plugin_desc. The plugin
  * loader will use the data provided there to initialize the plugin.
diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c
index 3e1228e..f22f2b4 100644
--- a/gst/gstpluginfeature.c
+++ b/gst/gstpluginfeature.c
@@ -229,8 +229,6 @@
  *
  * Returns: (transfer full) (element-type Gst.PluginFeature): a copy of @list,
  *     with each feature's reference count incremented.
- *
- * Since: 0.10.26
  */
 GList *
 gst_plugin_feature_list_copy (GList * list)
@@ -264,8 +262,6 @@
  *     plugin features
  *
  * Debug the plugin feature names in @list.
- *
- * Since: 0.10.31
  */
 void
 gst_plugin_feature_list_debug (GList * list)
@@ -374,8 +370,6 @@
  * equal but the name of p1 comes before the name of p2; zero if the rank
  * and names are equal; positive value if the rank of p1 < the rank of p2 or the
  * ranks are equal but the name of p2 comes after the name of p1
- *
- * Since: 0.10.31
  */
 gint
 gst_plugin_feature_rank_compare_func (gconstpointer p1, gconstpointer p2)
diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h
index a372281..69ba44d 100644
--- a/gst/gstpluginfeature.h
+++ b/gst/gstpluginfeature.h
@@ -124,8 +124,6 @@
  *     plugin features
  *
  * Debug the plugin feature names in @list.
- *
- * Since: 0.10.31
  */
 #ifndef GST_DISABLE_GST_DEBUG
 #define GST_PLUGIN_FEATURE_LIST_DEBUG(list) gst_plugin_feature_list_debug(list)
diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
index a51fa89..4109192 100644
--- a/gst/gstpluginloader.c
+++ b/gst/gstpluginloader.c
@@ -457,7 +457,9 @@
 
   /* Find the gst-plugin-scanner: first try the env-var if it is set,
    * otherwise use the installed version */
-  env = g_getenv ("GST_PLUGIN_SCANNER");
+  env = g_getenv ("GST_PLUGIN_SCANNER_1_0");
+  if (env == NULL)
+    env = g_getenv ("GST_PLUGIN_SCANNER");
 
   if (env != NULL && *env != '\0') {
     GST_LOG ("Trying GST_PLUGIN_SCANNER env var: %s", env);
diff --git a/gst/gstpoll.c b/gst/gstpoll.c
index 77be7e3..5a0a886 100644
--- a/gst/gstpoll.c
+++ b/gst/gstpoll.c
@@ -547,8 +547,6 @@
  *
  * Returns: (transfer full): a new #GstPoll, or %NULL in case of an error.
  *     Free with gst_poll_free().
- *
- * Since: 0.10.18
  */
 GstPoll *
 gst_poll_new (gboolean controllable)
@@ -622,8 +620,6 @@
  *
  * Returns: (transfer full): a new #GstPoll, or %NULL in case of an error.
  *     Free with gst_poll_free().
- *
- * Since: 0.10.23
  */
 GstPoll *
 gst_poll_new_timer (void)
@@ -646,8 +642,6 @@
  * @set: (transfer full): a file descriptor set.
  *
  * Free a file descriptor set.
- *
- * Since: 0.10.18
  */
 void
 gst_poll_free (GstPoll * set)
@@ -689,8 +683,6 @@
  *
  * Get a GPollFD for the reading part of the control socket. This is useful when
  * integrating with a GSource and GMainLoop.
- *
- * Since: 0.10.32
  */
 void
 gst_poll_get_read_gpollfd (GstPoll * set, GPollFD * fd)
@@ -717,8 +709,6 @@
  *
  * Initializes @fd. Alternatively you can initialize it with
  * #GST_POLL_FD_INIT.
- *
- * Since: 0.10.18
  */
 void
 gst_poll_fd_init (GstPollFD * fd)
@@ -765,7 +755,7 @@
 #endif
     MARK_REBUILD (set);
   } else {
-    GST_WARNING ("%p: couldn't find fd !", set);
+    GST_WARNING ("%p: fd already added !", set);
   }
 
   return TRUE;
@@ -779,8 +769,6 @@
  * Add a file descriptor to the file descriptor set.
  *
  * Returns: %TRUE if the file descriptor was successfully added to the set.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_add_fd (GstPoll * set, GstPollFD * fd)
@@ -808,8 +796,6 @@
  * Remove a file descriptor from the file descriptor set.
  *
  * Returns: %TRUE if the file descriptor was successfully removed from the set.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_remove_fd (GstPoll * set, GstPollFD * fd)
@@ -859,8 +845,6 @@
  * writability.
  *
  * Returns: %TRUE if the descriptor was successfully updated.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_fd_ctl_write (GstPoll * set, GstPollFD * fd, gboolean active)
@@ -940,8 +924,6 @@
  * readability.
  *
  * Returns: %TRUE if the descriptor was successfully updated.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_fd_ctl_read (GstPoll * set, GstPollFD * fd, gboolean active)
@@ -974,8 +956,6 @@
  * The reason why this is needed is because the underlying implementation
  * might not allow querying the fd more than once between calls to one of
  * the re-enabling operations.
- *
- * Since: 0.10.18
  */
 void
 gst_poll_fd_ignored (GstPoll * set, GstPollFD * fd)
@@ -1009,8 +989,6 @@
  * Check if @fd in @set has closed the connection.
  *
  * Returns: %TRUE if the connection was closed.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_fd_has_closed (const GstPoll * set, GstPollFD * fd)
@@ -1054,8 +1032,6 @@
  * Check if @fd in @set has an error.
  *
  * Returns: %TRUE if the descriptor has an error.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_fd_has_error (const GstPoll * set, GstPollFD * fd)
@@ -1129,8 +1105,6 @@
  * Check if @fd in @set has data to be read.
  *
  * Returns: %TRUE if the descriptor has data to be read.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_fd_can_read (const GstPoll * set, GstPollFD * fd)
@@ -1158,8 +1132,6 @@
  * Check if @fd in @set can be used for writing.
  *
  * Returns: %TRUE if the descriptor can be used for writing.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_fd_can_write (const GstPoll * set, GstPollFD * fd)
@@ -1214,8 +1186,6 @@
  * Returns: The number of #GstPollFD in @set that have activity or 0 when no
  * activity was detected after @timeout. If an error occurs, -1 is returned
  * and errno is set.
- *
- * Since: 0.10.18
  */
 gint
 gst_poll_wait (GstPoll * set, GstClockTime timeout)
@@ -1470,8 +1440,6 @@
  * gst_poll_set_flushing().
  *
  * Returns: %TRUE if the controllability of @set could be updated.
- *
- * Since: 0.10.18
  */
 gboolean
 gst_poll_set_controllable (GstPoll * set, gboolean controllable)
@@ -1493,8 +1461,6 @@
  * used after adding or removing descriptors to @set.
  *
  * If @set is not controllable, then this call will have no effect.
- *
- * Since: 0.10.18
  */
 void
 gst_poll_restart (GstPoll * set)
@@ -1517,8 +1483,6 @@
  * to gst_poll_wait() will return -1, with errno set to EBUSY.
  *
  * Unsetting the flushing state will restore normal operation of @set.
- *
- * Since: 0.10.18
  */
 void
 gst_poll_set_flushing (GstPoll * set, gboolean flushing)
@@ -1553,8 +1517,6 @@
  *
  * Returns: %TRUE on success. %FALSE when @set is not controllable or when the
  * byte could not be written.
- *
- * Since: 0.10.23
  */
 gboolean
 gst_poll_write_control (GstPoll * set)
@@ -1579,8 +1541,6 @@
  *
  * Returns: %TRUE on success. %FALSE when @set is not controllable or when there
  * was no byte to read.
- *
- * Since: 0.10.23
  */
 gboolean
 gst_poll_read_control (GstPoll * set)
diff --git a/gst/gstpoll.h b/gst/gstpoll.h
index 0bec885..b066276 100644
--- a/gst/gstpoll.h
+++ b/gst/gstpoll.h
@@ -58,8 +58,6 @@
  * used. This macro can used be to initialize a variable, but it cannot
  * be assigned to a variable. In that case you have to use
  * gst_poll_fd_init().
- *
- * Since: 0.10.18
  */
 #define GST_POLL_FD_INIT  { -1, -1 }
 
diff --git a/gst/gstpreset.c b/gst/gstpreset.c
index 3277f21..fb20fe8 100644
--- a/gst/gstpreset.c
+++ b/gst/gstpreset.c
@@ -919,8 +919,6 @@
  *
  * Returns: (transfer full) (array zero-terminated=1) (element-type gchar*):
  *     list with names, ue g_strfreev() after usage.
- *
- * Since: 0.10.20
  */
 gchar **
 gst_preset_get_preset_names (GstPreset * preset)
@@ -938,8 +936,6 @@
  *
  * Returns: (transfer full) (array zero-terminated=1) (element-type gchar*): an
  *   array of property names which should be freed with g_strfreev() after use.
- *
- * Since: 0.10.20
  */
 gchar **
 gst_preset_get_property_names (GstPreset * preset)
@@ -957,8 +953,6 @@
  * Load the given preset.
  *
  * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name
- *
- * Since: 0.10.20
  */
 gboolean
 gst_preset_load_preset (GstPreset * preset, const gchar * name)
@@ -978,8 +972,6 @@
  * is already a preset by this @name it will be overwritten.
  *
  * Returns: %TRUE for success, %FALSE
- *
- * Since: 0.10.20
  */
 gboolean
 gst_preset_save_preset (GstPreset * preset, const gchar * name)
@@ -1000,8 +992,6 @@
  * overwritten.
  *
  * Returns: %TRUE for success, %FALSE if e.g. there is no preset with @old_name
- *
- * Since: 0.10.20
  */
 gboolean
 gst_preset_rename_preset (GstPreset * preset, const gchar * old_name,
@@ -1023,8 +1013,6 @@
  * Delete the given preset.
  *
  * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name
- *
- * Since: 0.10.20
  */
 gboolean
 gst_preset_delete_preset (GstPreset * preset, const gchar * name)
@@ -1047,8 +1035,6 @@
  * @value will unset an existing value.
  *
  * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name
- *
- * Since: 0.10.20
  */
 gboolean
 gst_preset_set_meta (GstPreset * preset, const gchar * name, const gchar * tag,
@@ -1073,8 +1059,6 @@
  *
  * Returns: %TRUE for success, %FALSE if e.g. there is no preset with that @name
  * or no value for the given @tag
- *
- * Since: 0.10.20
  */
 gboolean
 gst_preset_get_meta (GstPreset * preset, const gchar * name, const gchar * tag,
@@ -1097,8 +1081,6 @@
  * system presets.
  *
  * Returns: %TRUE for success, %FALSE if the dir already has been set
- *
- * Since: 0.10.36
  */
 gboolean
 gst_preset_set_app_dir (const gchar * app_dir)
@@ -1119,8 +1101,6 @@
  * application.
  *
  * Returns: the directory or %NULL, don't free or modify the string
- *
- * Since: 0.10.36
  */
 const gchar *
 gst_preset_get_app_dir (void)
diff --git a/gst/gstquark.c b/gst/gstquark.c
index 2d55fa3..dc439ed 100644
--- a/gst/gstquark.c
+++ b/gst/gstquark.c
@@ -41,7 +41,7 @@
   "latency", "uri", "object", "taglist", "GstEventSegment",
   "GstEventBufferSize", "GstEventQOS", "GstEventSeek", "GstEventLatency",
   "GstMessageError", "GstMessageWarning", "GstMessageInfo",
-  "GstMessageBuffering", "GstMessageState", "GstMessageClockProvide",
+  "GstMessageBuffering", "GstMessageStateChanged", "GstMessageClockProvide",
   "GstMessageClockLost", "GstMessageNewClock", "GstMessageStructureChange",
   "GstMessageSegmentStart", "GstMessageSegmentDone", "GstMessageDuration",
   "GstMessageAsyncDone", "GstMessageRequestState", "GstMessageStreamStatus",
@@ -61,8 +61,11 @@
   "GstEventTocSelect", "uid", "GstQueryToc", GST_ELEMENT_METADATA_LONGNAME,
   GST_ELEMENT_METADATA_KLASS, GST_ELEMENT_METADATA_DESCRIPTION,
   GST_ELEMENT_METADATA_AUTHOR, "toc", "toc-entry", "updated", "extend-uid",
-  "uid", "tags", "sub-entries", "info", "info-structure",
-  "time-structure", "GstMessageTag", "GstEventTag"
+  "uid", "tags", "sub-entries", "info", "GstMessageTag", "GstEventTag",
+  "GstMessageResetTime",
+  "GstMessageToc", "GstEventTocGlobal", "GstEventTocCurrent",
+  "GstEventSegmentDone",
+  "GstEventStreamStart", "stream-id"
 };
 
 GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquark.h b/gst/gstquark.h
index 969ce79..e77af84 100644
--- a/gst/gstquark.h
+++ b/gst/gstquark.h
@@ -89,7 +89,7 @@
   GST_QUARK_MESSAGE_WARNING = 60,
   GST_QUARK_MESSAGE_INFO = 61,
   GST_QUARK_MESSAGE_BUFFERING = 62,
-  GST_QUARK_MESSAGE_STATE = 63,
+  GST_QUARK_MESSAGE_STATE_CHANGED = 63,
   GST_QUARK_MESSAGE_CLOCK_PROVIDE = 64,
   GST_QUARK_MESSAGE_CLOCK_LOST = 65,
   GST_QUARK_MESSAGE_NEW_CLOCK = 66,
@@ -179,11 +179,16 @@
   GST_QUARK_TAGS = 150,
   GST_QUARK_SUB_ENTRIES = 151,
   GST_QUARK_INFO = 152,
-  GST_QUARK_INFO_STRUCTURE = 153,
-  GST_QUARK_TIME_STRUCTURE = 154,
-  GST_QUARK_MESSAGE_TAG = 155,
-  GST_QUARK_EVENT_TAG = 156,
-  GST_QUARK_MAX = 157
+  GST_QUARK_MESSAGE_TAG = 153,
+  GST_QUARK_EVENT_TAG = 154,
+  GST_QUARK_MESSAGE_RESET_TIME = 155,
+  GST_QUARK_MESSAGE_TOC = 156,
+  GST_QUARK_EVENT_TOC_GLOBAL = 157,
+  GST_QUARK_EVENT_TOC_CURRENT = 158,
+  GST_QUARK_EVENT_SEGMENT_DONE = 159,
+  GST_QUARK_EVENT_STREAM_START = 160,
+  GST_QUARK_STREAM_ID = 161,
+  GST_QUARK_MAX = 162
 } GstQuarkId;
 
 extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquery.c b/gst/gstquery.c
index 5fadc9d..021c527 100644
--- a/gst/gstquery.c
+++ b/gst/gstquery.c
@@ -110,7 +110,6 @@
   {GST_QUERY_ACCEPT_CAPS, "accept-caps", 0},
   {GST_QUERY_CAPS, "caps", 0},
   {GST_QUERY_DRAIN, "drain", 0},
-  {GST_QUERY_TOC, "toc", 0},
 
   {0, NULL, 0}
 };
@@ -202,7 +201,7 @@
     gst_structure_free (s);
   }
 
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (query), query);
+  g_slice_free1 (sizeof (GstQueryImpl), query);
 }
 
 static GstQuery *
@@ -220,17 +219,6 @@
   return copy;
 }
 
-static void
-gst_query_init (GstQueryImpl * query, gsize size, GstQueryType type)
-{
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (query), _gst_query_type, size);
-
-  query->query.mini_object.copy = (GstMiniObjectCopyFunction) _gst_query_copy;
-  query->query.mini_object.free = (GstMiniObjectFreeFunction) _gst_query_free;
-
-  GST_QUERY_TYPE (query) = type;
-}
-
 /**
  * gst_query_new_position:
  * @format: the default #GstFormat for the new query
@@ -398,8 +386,6 @@
  * Free-function: gst_query_unref
  *
  * Returns: (transfer full): a #GstQuery
- *
- * Since: 0.10.12
  */
 GstQuery *
 gst_query_new_latency (void)
@@ -425,8 +411,6 @@
  * @max_latency: the maximal latency of the upstream elements
  *
  * Answer a latency query by setting the requested values in the given format.
- *
- * Since: 0.10.12
  */
 void
 gst_query_set_latency (GstQuery * query, gboolean live,
@@ -451,8 +435,6 @@
  * @max_latency: (out) (allow-none): the storage for the max latency or NULL
  *
  * Parse a latency query answer.
- *
- * Since: 0.10.12
  */
 void
 gst_query_parse_latency (GstQuery * query, gboolean * live,
@@ -702,8 +684,12 @@
             &query->query.mini_object.refcount))
       goto had_parent;
   }
-  gst_query_init (query, sizeof (GstQueryImpl), type);
 
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (query), 0, _gst_query_type,
+      (GstMiniObjectCopyFunction) _gst_query_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_query_free);
+
+  GST_QUERY_TYPE (query) = type;
   GST_QUERY_STRUCTURE (query) = structure;
 
   return GST_QUERY_CAST (query);
@@ -711,7 +697,7 @@
   /* ERRORS */
 had_parent:
   {
-    g_slice_free1 (GST_MINI_OBJECT_SIZE (query), query);
+    g_slice_free1 (sizeof (GstQueryImpl), query);
     g_warning ("structure is already owned by another object");
     return NULL;
   }
@@ -881,8 +867,6 @@
  * Free-function: gst_query_unref
  *
  * Returns: (transfer full): a new #GstQuery
- *
- * Since: 0.10.4
  */
 GstQuery *
 gst_query_new_formats (void)
@@ -951,8 +935,6 @@
  *
  * Set the formats query result fields in @query. The number of formats passed
  * in the @formats array must be equal to @n_formats.
- *
- * Since: 0.10.4
  */
 void
 gst_query_set_formatsv (GstQuery * query, gint n_formats,
@@ -981,8 +963,6 @@
  * @n_formats: (out) (allow-none): the number of formats in this query.
  *
  * Parse the number of formats in the formats @query.
- *
- * Since: 0.10.4
  */
 void
 gst_query_parse_n_formats (GstQuery * query, guint * n_formats)
@@ -1047,8 +1027,6 @@
  * Free-function: gst_query_unref
  *
  * Returns: (transfer full): a new #GstQuery
- *
- * Since: 0.10.20
  */
 GstQuery *
 gst_query_new_buffering (GstFormat format)
@@ -1083,8 +1061,6 @@
  *
  * Set the percentage of buffered data. This is a value between 0 and 100.
  * The @busy indicator is %TRUE when the buffering is in progress.
- *
- * Since: 0.10.20
  */
 void
 gst_query_set_buffering_percent (GstQuery * query, gboolean busy, gint percent)
@@ -1109,8 +1085,6 @@
  *
  * Get the percentage of buffered data. This is a value between 0 and 100.
  * The @busy indicator is %TRUE when the buffering is in progress.
- *
- * Since: 0.10.20
  */
 void
 gst_query_parse_buffering_percent (GstQuery * query, gboolean * busy,
@@ -1138,8 +1112,6 @@
  * @buffering_left: amount of buffering time left
  *
  * Configures the buffering stats values in @query.
- *
- * Since: 0.10.20
  */
 void
 gst_query_set_buffering_stats (GstQuery * query, GstBufferingMode mode,
@@ -1167,8 +1139,6 @@
  * @buffering_left: (out) (allow-none): amount of buffering time left, or NULL
  *
  * Extracts the buffering stats values from @query.
- *
- * Since: 0.10.20
  */
 void
 gst_query_parse_buffering_stats (GstQuery * query,
@@ -1205,8 +1175,6 @@
  * @estimated_total: estimated total amount of download time
  *
  * Set the available query result fields in @query.
- *
- * Since: 0.10.20
  */
 void
 gst_query_set_buffering_range (GstQuery * query, GstFormat format,
@@ -1238,8 +1206,6 @@
  * Parse an available query, writing the format into @format, and
  * other results into the passed parameters, if the respective parameters
  * are non-NULL
- *
- * Since: 0.10.20
  */
 void
 gst_query_parse_buffering_range (GstQuery * query, GstFormat * format,
@@ -1283,8 +1249,6 @@
  * start position of the array should be inferior to @start.
  *
  * Returns: a #gboolean indicating if the range was added or not.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_query_add_buffering_range (GstQuery * query, gint64 start, gint64 stop)
@@ -1327,8 +1291,6 @@
  * buffered-ranges array of the query's structure.
  *
  * Returns: the range array size as a #guint.
- *
- * Since: 0.10.31
  */
 guint
 gst_query_get_n_buffering_ranges (GstQuery * query)
@@ -1357,8 +1319,6 @@
  * at the @index of the buffered ranges array.
  *
  * Returns: a #gboolean indicating if the parsing succeeded.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_query_parse_nth_buffering_range (GstQuery * query, guint index,
@@ -1397,8 +1357,6 @@
  * Free-function: gst_query_unref
  *
  * Returns: (transfer full): a new #GstQuery
- *
- * Since: 0.10.22
  */
 GstQuery *
 gst_query_new_uri (void)
@@ -1420,8 +1378,6 @@
  * @uri: the URI to set
  *
  * Answer a URI query by setting the requested URI.
- *
- * Since: 0.10.22
  */
 void
 gst_query_set_uri (GstQuery * query, const gchar * uri)
@@ -1445,8 +1401,6 @@
  * Parse an URI query, writing the URI into @uri as a newly
  * allocated string, if the respective parameters are non-NULL.
  * Free the string with g_free() after usage.
- *
- * Since: 0.10.22
  */
 void
 gst_query_parse_uri (GstQuery * query, gchar ** uri)
@@ -1593,12 +1547,14 @@
  * gst_query_parse_nth_allocation_pool:
  * @query: A valid #GstQuery of type GST_QUERY_ALLOCATION.
  * @index: index to parse
- * @pool: (out) (allow-none) (transfer none): the #GstBufferPool
+ * @pool: (out) (allow-none) (transfer full): the #GstBufferPool
  * @size: (out) (allow-none): the size
  * @min_buffers: (out) (allow-none): the min buffers
  * @max_buffers: (out) (allow-none): the max buffers
  *
  * Get the pool parameters in @query.
+ *
+ * Unref @pool with gst_object_unref() when it's not needed any more.
  */
 void
 gst_query_parse_nth_allocation_pool (GstQuery * query, guint index,
@@ -1666,27 +1622,48 @@
   g_array_index (array, AllocationPool, index) = ap;
 }
 
+typedef struct
+{
+  GType api;
+  GstStructure *params;
+} AllocationMeta;
+
+static void
+allocation_meta_free (AllocationMeta * am)
+{
+  if (am->params)
+    gst_structure_free (am->params);
+}
+
 /**
  * gst_query_add_allocation_meta:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @api: the metadata API
+ * @params: (transfer none) (allow-none): API specific parameters
  *
- * Add @api as aone of the supported metadata API to @query.
+ * Add @api with @params as one of the supported metadata API to @query.
  */
 void
-gst_query_add_allocation_meta (GstQuery * query, GType api)
+gst_query_add_allocation_meta (GstQuery * query, GType api,
+    const GstStructure * params)
 {
   GArray *array;
   GstStructure *structure;
+  AllocationMeta am;
 
   g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION);
   g_return_if_fail (api != 0);
   g_return_if_fail (gst_query_is_writable (query));
 
   structure = GST_QUERY_STRUCTURE (query);
-  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+  array =
+      ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
+      (GDestroyNotify) allocation_meta_free);
 
-  g_array_append_val (array, api);
+  am.api = api;
+  am.params = (params ? gst_structure_copy (params) : NULL);
+
+  g_array_append_val (array, am);
 }
 
 /**
@@ -1707,7 +1684,9 @@
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+  array =
+      ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
+      (GDestroyNotify) allocation_meta_free);
 
   return array->len;
 }
@@ -1716,6 +1695,7 @@
  * gst_query_parse_nth_allocation_meta:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @index: position in the metadata API array to read
+ * @params: (out) (allow-none): API specific flags
  *
  * Parse an available query and get the metadata API
  * at @index of the metadata API array.
@@ -1723,19 +1703,28 @@
  * Returns: a #GType of the metadata API at @index.
  */
 GType
-gst_query_parse_nth_allocation_meta (GstQuery * query, guint index)
+gst_query_parse_nth_allocation_meta (GstQuery * query, guint index,
+    const GstStructure ** params)
 {
   GArray *array;
   GstStructure *structure;
+  AllocationMeta *am;
 
   g_return_val_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_ALLOCATION, 0);
 
   structure = GST_QUERY_STRUCTURE (query);
-  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+  array =
+      ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
+      (GDestroyNotify) allocation_meta_free);
 
   g_return_val_if_fail (index < array->len, 0);
 
-  return g_array_index (array, GType, index);
+  am = &g_array_index (array, AllocationMeta, index);
+
+  if (params)
+    *params = am->params;
+
+  return am->api;
 }
 
 /**
@@ -1755,23 +1744,28 @@
   g_return_if_fail (gst_query_is_writable (query));
 
   structure = GST_QUERY_STRUCTURE (query);
-  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+  array =
+      ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
+      (GDestroyNotify) allocation_meta_free);
   g_return_if_fail (index < array->len);
 
   g_array_remove_index (array, index);
 }
 
 /**
- * gst_query_has_allocation_meta:
+ * gst_query_find_allocation_meta:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @api: the metadata API
+ * @index: (out) (allow-none): the index
  *
- * Check if @query has metadata @api set.
+ * Check if @query has metadata @api set. When this function returns TRUE,
+ * @index will contain the index where the requested API and the flags can be
+ * found.
  *
  * Returns: TRUE when @api is in the list of metadata.
  */
 gboolean
-gst_query_has_allocation_meta (GstQuery * query, GType api)
+gst_query_find_allocation_meta (GstQuery * query, GType api, guint * index)
 {
   GArray *array;
   GstStructure *structure;
@@ -1781,12 +1775,18 @@
   g_return_val_if_fail (api != 0, FALSE);
 
   structure = GST_QUERY_STRUCTURE (query);
-  array = ensure_array (structure, GST_QUARK (META), sizeof (GType), NULL);
+  array =
+      ensure_array (structure, GST_QUARK (META), sizeof (AllocationMeta),
+      (GDestroyNotify) allocation_meta_free);
 
   len = array->len;
   for (i = 0; i < len; i++) {
-    if (g_array_index (array, GType, i) == api)
+    AllocationMeta *am = &g_array_index (array, AllocationMeta, i);
+    if (am->api == api) {
+      if (index)
+        *index = i;
       return TRUE;
+    }
   }
   return FALSE;
 }
@@ -1801,14 +1801,14 @@
 allocation_param_free (AllocationParam * ap)
 {
   if (ap->allocator)
-    gst_allocator_unref (ap->allocator);
+    gst_object_unref (ap->allocator);
 }
 
 /**
  * gst_query_add_allocation_param:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
- * @allocator: the memory allocator
- * @params: a #GstAllocationParams
+ * @allocator: (transfer none) (allow-none): the memory allocator
+ * @params: (transfer none) (allow-none): a #GstAllocationParams
  *
  * Add @allocator and its @params as a supported memory allocator.
  */
@@ -1829,7 +1829,7 @@
       sizeof (AllocationParam), (GDestroyNotify) allocation_param_free);
 
   if ((ap.allocator = allocator))
-    gst_allocator_ref (allocator);
+    gst_object_ref (allocator);
   if (params)
     ap.params = *params;
   else
@@ -1869,8 +1869,8 @@
  * gst_query_parse_nth_allocation_param:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @index: position in the allocator array to read
- * @allocator: (transfer none): variable to hold the result
- * @params: parameters for the allocator
+ * @allocator: (out) (transfer none) (allow-none): variable to hold the result
+ * @params: (out) (allow-none): parameters for the allocator
  *
  * Parse an available query and get the alloctor and its params
  * at @index of the allocator array.
@@ -1894,7 +1894,7 @@
 
   if (allocator)
     if ((*allocator = ap->allocator))
-      gst_allocator_ref (*allocator);
+      gst_object_ref (*allocator);
   if (params)
     *params = ap->params;
 }
@@ -1903,8 +1903,8 @@
  * gst_query_set_nth_allocation_param:
  * @query: a GST_QUERY_ALLOCATION type query #GstQuery
  * @index: position in the allocator array to set
- * @allocator: (transfer full): new allocator to set
- * @params: parameters for the allocator
+ * @allocator: (transfer none) (allow-none): new allocator to set
+ * @params: (transfer none) (allow-none): parameters for the allocator
  *
  * Parse an available query and get the alloctor and its params
  * at @index of the allocator array.
@@ -1928,7 +1928,7 @@
   allocation_param_free (old);
 
   if ((ap.allocator = allocator))
-    gst_allocator_ref (allocator);
+    gst_object_ref (allocator);
   if (params)
     ap.params = *params;
   else
@@ -2166,6 +2166,13 @@
           GST_QUARK (CAPS)));
 }
 
+/**
+ * gst_query_set_accept_caps_result:
+ * @query: a GST_QUERY_ACCEPT_CAPS type query #GstQuery
+ * @result: the result to set
+ *
+ * Set @result as the result for the @query.
+ */
 void
 gst_query_set_accept_caps_result (GstQuery * query, gboolean result)
 {
@@ -2179,6 +2186,13 @@
       GST_QUARK (RESULT), G_TYPE_BOOLEAN, result, NULL);
 }
 
+/**
+ * gst_query_parse_accept_caps_result:
+ * @query: a GST_QUERY_ACCEPT_CAPS type query #GstQuery
+ * @result: location for the result
+ *
+ * Parse the result from @query and store in @result.
+ */
 void
 gst_query_parse_accept_caps_result (GstQuery * query, gboolean * result)
 {
@@ -2293,6 +2307,7 @@
           GST_QUARK (CAPS)));
 }
 
+#if 0
 void
 gst_query_intersect_caps_result (GstQuery * query, GstCaps * filter,
     GstCapsIntersectMode mode)
@@ -2304,6 +2319,7 @@
   gst_query_set_caps_result (query, res);
   gst_caps_unref (res);
 }
+#endif
 
 /**
  * gst_query_new_drain:
@@ -2325,93 +2341,3 @@
 
   return query;
 }
-
-/**
- * gst_query_new_toc:
- *
- * Constructs a new query TOC query object. Use gst_query_unref()
- * when done with it. A TOC query is used to query the full TOC with
- * the UID marker for TOC extending (to insert some new entries).
- *
- * Returns: A #GstQuery.
- */
-GstQuery *
-gst_query_new_toc (void)
-{
-  GstQuery *query;
-  GstStructure *structure;
-
-  structure = gst_structure_new_id_empty (GST_QUARK (QUERY_TOC));
-  query = gst_query_new_custom (GST_QUERY_TOC, structure);
-
-  return query;
-}
-
-/**
- * gst_query_set_toc:
- * @query: a #GstQuery with query type GST_QUERY_TOC.
- * @toc: the GstToc to set.
- * @extend_uid: UID which can be used for TOC extending (may be NULL),
- * 0 means root TOC level.
- *
- * Answer a TOC query by setting appropriate #GstToc structure.
- */
-void
-gst_query_set_toc (GstQuery * query, GstToc * toc, const gchar * extend_uid)
-{
-  GstStructure *structure;
-  GstStructure *old_structure;
-
-  g_return_if_fail (query != NULL);
-  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_TOC);
-  g_return_if_fail (toc != NULL);
-
-  structure = __gst_toc_to_structure (toc);
-
-  g_return_if_fail (structure != NULL);
-
-  /* that shouldn't be happen in normal usage */
-  old_structure = GST_QUERY_STRUCTURE (query);
-  if (old_structure) {
-    gst_structure_set_parent_refcount (old_structure, NULL);
-    gst_structure_free (old_structure);
-  }
-
-  if (extend_uid != NULL)
-    __gst_toc_structure_set_extend_uid (structure, extend_uid);
-
-  gst_structure_set_parent_refcount (structure, &(query->mini_object.refcount));
-  GST_QUERY_STRUCTURE (query) = structure;
-}
-
-/**
- * gst_query_parse_toc:
- * @query: a #GstQuery.
- * @toc: (out): the storage for the received TOC (may be NULL).
- * @extend_uid: (out): the storage for the received extend UID marker (may be NULL),
- * 0 means root TOC level.
- *
- * Parse a TOC query, writing the TOC into @toc as a newly
- * allocated #GstToc and extend UID into @extend_uid, if the respective parameters
- * are non-NULL. Use @extend_uid value to insert new entries into the TOC (@extend_uid will
- * act as root entry for newly inserted entries).
- * Free @toc with gst_toc_free() and @extend_uid with g_free() after usage.
- */
-void
-gst_query_parse_toc (GstQuery * query, GstToc ** toc, gchar ** extend_uid)
-{
-  const GstStructure *structure;
-
-  g_return_if_fail (query != NULL);
-  g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_TOC);
-
-  structure = gst_query_get_structure (query);
-
-  g_return_if_fail (structure != NULL);
-
-  if (toc != NULL)
-    *toc = __gst_toc_from_structure (structure);
-
-  if (extend_uid != NULL)
-    *extend_uid = __gst_toc_structure_get_extend_uid (structure);
-}
diff --git a/gst/gstquery.h b/gst/gstquery.h
index c060ce0..5c88f55 100644
--- a/gst/gstquery.h
+++ b/gst/gstquery.h
@@ -33,6 +33,7 @@
 #include <gst/gststructure.h>
 #include <gst/gstformat.h>
 #include <gst/gstpad.h>
+#include <gst/gstallocator.h>
 #include <gst/gsttoc.h>
 
 G_BEGIN_DECLS
@@ -92,18 +93,14 @@
  * @GST_QUERY_SEGMENT: segment start/stop positions
  * @GST_QUERY_CONVERT: convert values between formats
  * @GST_QUERY_FORMATS: query supported formats for convert
- * @GST_QUERY_BUFFERING: query available media for efficient seeking. Since
- * 0.10.20.
- * @GST_QUERY_CUSTOM: a custom application or element defined query. Since
- * 0.10.22.
- * @GST_QUERY_URI: query the URI of the source or sink. Since 0.10.22.
+ * @GST_QUERY_BUFFERING: query available media for efficient seeking.
+ * @GST_QUERY_CUSTOM: a custom application or element defined query.
+ * @GST_QUERY_URI: query the URI of the source or sink.
  * @GST_QUERY_ALLOCATION: the buffer allocation properties
  * @GST_QUERY_SCHEDULING: the scheduling properties
  * @GST_QUERY_ACCEPT_CAPS: the accept caps query
  * @GST_QUERY_CAPS: the caps query
  * @GST_QUERY_DRAIN: wait till all serialized data is consumed downstream
- * @GST_QUERY_TOC: query the full table of contents (TOC) with the marker
- * for an entry which can be used to extend received TOC. Since 0.10.37.
  *
  * Standard predefined Query types
  */
@@ -127,8 +124,7 @@
   GST_QUERY_SCHEDULING   = GST_QUERY_MAKE_TYPE (150, FLAG(UPSTREAM)),
   GST_QUERY_ACCEPT_CAPS  = GST_QUERY_MAKE_TYPE (160, FLAG(BOTH)),
   GST_QUERY_CAPS         = GST_QUERY_MAKE_TYPE (170, FLAG(BOTH)),
-  GST_QUERY_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
-  GST_QUERY_TOC          = GST_QUERY_MAKE_TYPE (190, FLAG(BOTH))
+  GST_QUERY_DRAIN        = GST_QUERY_MAKE_TYPE (180, FLAG(DOWNSTREAM) | FLAG(SERIALIZED))
 } GstQueryType;
 #undef FLAG
 
@@ -150,8 +146,6 @@
  * @query: the query to query
  *
  * Get a constant string representation of the #GstQueryType of the query.
- *
- * Since: 0.10.4
  */
 #define GST_QUERY_TYPE_NAME(query) (gst_query_type_get_name(GST_QUERY_TYPE(query)))
 
@@ -430,11 +424,12 @@
                                                       const GstAllocationParams *params);
 
 /* metadata */
-void            gst_query_add_allocation_meta        (GstQuery *query, GType api);
+void            gst_query_add_allocation_meta        (GstQuery *query, GType api, const GstStructure *params);
 guint           gst_query_get_n_allocation_metas     (GstQuery *query);
-GType           gst_query_parse_nth_allocation_meta  (GstQuery *query, guint index);
+GType           gst_query_parse_nth_allocation_meta  (GstQuery *query, guint index,
+                                                      const GstStructure **params);
 void            gst_query_remove_nth_allocation_meta (GstQuery *query, guint index);
-gboolean        gst_query_has_allocation_meta        (GstQuery *query, GType api);
+gboolean        gst_query_find_allocation_meta       (GstQuery *query, GType api, guint *index);
 
 
 /* scheduling query */
@@ -475,16 +470,9 @@
 void            gst_query_set_caps_result          (GstQuery *query, GstCaps *caps);
 void            gst_query_parse_caps_result        (GstQuery *query, GstCaps **caps);
 
-void            gst_query_intersect_caps_result    (GstQuery *query, GstCaps *filter,
-                                                    GstCapsIntersectMode mode);
 /* drain query */
 GstQuery *      gst_query_new_drain                (void) G_GNUC_MALLOC;
 
-/* TOC query */
-GstQuery *      gst_query_new_toc                 (void);
-void            gst_query_set_toc                 (GstQuery *query, GstToc *toc, const gchar *extend_uid);
-void            gst_query_parse_toc               (GstQuery *query, GstToc **toc, gchar **extend_uid);
-
 G_END_DECLS
 
 #endif /* __GST_QUERY_H__ */
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index c77cffe..85b174d 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -1121,10 +1121,9 @@
             filename, file_size, file_mtime)) {
       g_warning ("External plugin loader failed. This most likely means that "
           "the plugin loader helper binary was not found or could not be run. "
-          "%s", (g_getenv ("GST_PLUGIN_PATH") != NULL) ?
-          "If you are running an uninstalled GStreamer setup, you might need "
-          "to update your gst-uninstalled script so that the "
-          "GST_PLUGIN_SCANNER environment variable gets set." : "");
+          "You might need to set the GST_PLUGIN_SCANNER environment variable "
+          "if your setup is unusual. This should normally not be required "
+          "though.");
       context->helper_state = REGISTRY_SCAN_HELPER_DISABLED;
     }
   }
@@ -1553,7 +1552,9 @@
 
   /* GST_PLUGIN_PATH specifies a list of directories to scan for
    * additional plugins.  These take precedence over the system plugins */
-  plugin_path = g_getenv ("GST_PLUGIN_PATH");
+  plugin_path = g_getenv ("GST_PLUGIN_PATH_1_0");
+  if (plugin_path == NULL)
+    plugin_path = g_getenv ("GST_PLUGIN_PATH");
   if (plugin_path) {
     char **list;
     int i;
@@ -1571,7 +1572,9 @@
   /* GST_PLUGIN_SYSTEM_PATH specifies a list of plugins that are always
    * loaded by default.  If not set, this defaults to the system-installed
    * path, and the plugins installed in the user's home directory */
-  plugin_path = g_getenv ("GST_PLUGIN_SYSTEM_PATH");
+  plugin_path = g_getenv ("GST_PLUGIN_SYSTEM_PATH_1_0");
+  if (plugin_path == NULL)
+    plugin_path = g_getenv ("GST_PLUGIN_SYSTEM_PATH");
   if (plugin_path == NULL) {
     char *home_plugins;
 
@@ -1661,7 +1664,10 @@
   gboolean have_cache = TRUE;
 
   default_registry = gst_registry_get ();
-  registry_file = g_strdup (g_getenv ("GST_REGISTRY"));
+
+  registry_file = g_strdup (g_getenv ("GST_REGISTRY_1_0"));
+  if (registry_file == NULL)
+    registry_file = g_strdup (g_getenv ("GST_REGISTRY"));
   if (registry_file == NULL) {
     registry_file = g_build_filename (g_get_user_cache_dir (),
         "gstreamer-" GST_API_VERSION, "registry." TARGET_CPU ".bin", NULL);
@@ -1721,8 +1727,6 @@
  *
  * Returns: %TRUE if GStreamer will use the child helper process when
  * rebuilding the registry.
- *
- * Since: 0.10.10
  */
 gboolean
 gst_registry_fork_is_enabled (void)
@@ -1737,8 +1741,6 @@
  * Applications might want to disable/enable spawning of a child helper process
  * when rebuilding the registry. See gst_registry_fork_is_enabled() for more
  * information.
- *
- * Since: 0.10.10
  */
 void
 gst_registry_fork_set_enabled (gboolean enabled)
@@ -1768,8 +1770,6 @@
  *
  * Returns: %TRUE if the registry has been updated successfully (does not
  *          imply that there were changes), otherwise %FALSE.
- *
- * Since: 0.10.12
  */
 gboolean
 gst_update_registry (void)
@@ -1808,8 +1808,6 @@
  * every time a feature is added or removed from the registry.
  *
  * Returns: the feature list cookie.
- *
- * Since: 0.10.26
  */
 guint32
 gst_registry_get_feature_list_cookie (GstRegistry * registry)
diff --git a/gst/gstsample.c b/gst/gstsample.c
index 4a7551b..618d328 100644
--- a/gst/gstsample.c
+++ b/gst/gstsample.c
@@ -74,15 +74,15 @@
   if (sample->caps)
     gst_caps_unref (sample->caps);
 
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (sample), sample);
+  g_slice_free1 (sizeof (GstSample), sample);
 }
 
 /**
  * gst_sample_new:
- * @buffer: a #GstBuffer
- * @caps: a #GstCaps
- * @segment: a #GstSegment
- * @info: a #GstStructure
+ * @buffer: (transfer none) (allow-none): a #GstBuffer, or NULL
+ * @caps: (transfer none) (allow-none): a #GstCaps, or NULL
+ * @segment: transfer none) (allow-none): a #GstSegment, or NULL
+ * @info: (transfer full) (allow-none): a #GstStructure, or NULL
  *
  * Create a new #GstSample with the provided details.
  *
@@ -90,8 +90,6 @@
  *
  * Returns: (transfer full): the new #GstSample. gst_sample_unref()
  *     after usage.
- *
- * Since: 0.10.24
  */
 GstSample *
 gst_sample_new (GstBuffer * buffer, GstCaps * caps, const GstSegment * segment,
@@ -103,11 +101,9 @@
 
   GST_LOG ("new %p", sample);
 
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (sample), _gst_sample_type,
-      sizeof (GstSample));
-
-  sample->mini_object.copy = (GstMiniObjectCopyFunction) _gst_sample_copy;
-  sample->mini_object.free = (GstMiniObjectFreeFunction) _gst_sample_free;
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (sample), 0, _gst_sample_type,
+      (GstMiniObjectCopyFunction) _gst_sample_copy, NULL,
+      (GstMiniObjectFreeFunction) _gst_sample_free);
 
   sample->buffer = buffer ? gst_buffer_ref (buffer) : NULL;
   sample->caps = caps ? gst_caps_ref (caps) : NULL;
diff --git a/gst/gstsample.h b/gst/gstsample.h
index 45cd7ee..97a3843 100644
--- a/gst/gstsample.h
+++ b/gst/gstsample.h
@@ -42,7 +42,7 @@
  *
  * The opaque structure of a #GstSample. A sample contains a typed memory
  * block and the associated timing information. It is mainly used to
- * exchange buffers with and application.
+ * exchange buffers with an application.
  */
 typedef struct _GstSample GstSample;
 
diff --git a/gst/gstsegment.c b/gst/gstsegment.c
index 0e5cc17..0badbca 100644
--- a/gst/gstsegment.c
+++ b/gst/gstsegment.c
@@ -52,11 +52,10 @@
  * with a start value of 0 and a stop/duration of -1, which is undefined. The default
  * rate and applied_rate is 1.0.
  *
- * If the segment is used for managing seeks, the segment duration should be set with
- * gst_segment_set_duration(). The public duration field contains the duration of the
- * segment. When using the segment for seeking, the start and time members should
- * normally be left to their default 0 value. The stop position is left to -1 unless
- * explicitly configured to a different value after a seek event.
+ * The public duration field contains the duration of the segment. When using
+ * the segment for seeking, the start and time members should normally be left
+ * to their default 0 value. The stop position is left to -1 unless explicitly
+ * configured to a different value after a seek event.
  *
  * The current position in the segment should be set by changing the position
  * member in the structure.
@@ -64,7 +63,7 @@
  * For elements that perform seeks, the current segment should be updated with the
  * gst_segment_do_seek() and the values from the seek event. This method will update
  * all the segment fields. The position field will contain the new playback position.
- * If the cur_type was different from GST_SEEK_TYPE_NONE, playback continues from
+ * If the start_type was different from GST_SEEK_TYPE_NONE, playback continues from
  * the position position, possibly with updated flags or rate.
  *
  * For elements that want to use #GstSegment to track the playback region,
@@ -93,8 +92,6 @@
  * Free-function: gst_segment_free
  *
  * Returns: (transfer full): a new #GstSegment, free with gst_segment_free().
- *
- * Since: 0.10.20
  */
 GstSegment *
 gst_segment_copy (const GstSegment * segment)
@@ -177,6 +174,7 @@
   segment->applied_rate = 1.0;
   segment->format = format;
   segment->base = 0;
+  segment->offset = 0;
   segment->start = 0;
   segment->stop = -1;
   segment->time = 0;
@@ -243,13 +241,6 @@
 
   position = segment->position;
 
-  if (flags & GST_SEEK_FLAG_FLUSH) {
-    /* flush resets the running_time */
-    base = 0;
-  } else {
-    base = gst_segment_to_running_time (segment, format, position);
-  }
-
   /* segment->start is never invalid */
   switch (start_type) {
     case GST_SEEK_TYPE_NONE:
@@ -314,13 +305,13 @@
     }
   }
 
-  segment->rate = rate;
-  segment->applied_rate = 1.0;
-  segment->base = base;
-  segment->flags = (GstSegmentFlags) flags;
-  segment->start = start;
-  segment->stop = stop;
-  segment->time = start;
+  if (flags & GST_SEEK_FLAG_FLUSH) {
+    /* flush resets the running_time */
+    base = 0;
+  } else {
+    /* remember the elapsed time */
+    base = gst_segment_to_running_time (segment, format, position);
+  }
 
   if (update_start && rate > 0.0) {
     position = start;
@@ -335,11 +326,39 @@
         position = 0;
     }
   }
+
   /* set update arg to reflect update of position */
   if (update)
     *update = position != segment->position;
 
-  /* update new position */
+  /* update new values */
+  /* be explicit about our GstSeekFlag -> GstSegmentFlag conversion */
+  segment->flags = GST_SEGMENT_FLAG_NONE;
+  if ((flags & GST_SEEK_FLAG_FLUSH) != 0)
+    segment->flags |= GST_SEGMENT_FLAG_RESET;
+  if ((flags & GST_SEEK_FLAG_SKIP) != 0)
+    segment->flags |= GST_SEGMENT_FLAG_SKIP;
+  if ((flags & GST_SEEK_FLAG_SEGMENT) != 0)
+    segment->flags |= GST_SEGMENT_FLAG_SEGMENT;
+
+  segment->rate = rate;
+  segment->applied_rate = 1.0;
+
+  segment->base = base;
+  if (rate > 0.0)
+    segment->offset = position - start;
+  else {
+    if (stop != -1)
+      segment->offset = stop - position;
+    else if (segment->duration != -1)
+      segment->offset = segment->duration - position;
+    else
+      segment->offset = 0;
+  }
+
+  segment->start = start;
+  segment->stop = stop;
+  segment->time = start;
   segment->position = position;
 
   return TRUE;
@@ -379,26 +398,20 @@
   g_return_val_if_fail (segment != NULL, -1);
   g_return_val_if_fail (segment->format == format, -1);
 
-  /* if we have the position for the same format as the segment, we can compare
-   * the start and stop values, otherwise we assume 0 and -1 */
-  if (G_LIKELY (segment->format == format)) {
-    start = segment->start;
-    stop = segment->stop;
-    time = segment->time;
-  } else {
-    start = 0;
-    stop = -1;
-    time = 0;
-  }
+  stop = segment->stop;
 
   /* outside of the segment boundary stop */
   if (G_UNLIKELY (stop != -1 && position > stop))
     return -1;
 
+  start = segment->start;
+
   /* before the segment boundary */
   if (G_UNLIKELY (position < start))
     return -1;
 
+  time = segment->time;
+
   /* time must be known */
   if (G_UNLIKELY (time == -1))
     return -1;
@@ -436,8 +449,7 @@
  * @position: the position in the segment
  *
  * Translate @position to the total running time using the currently configured
- * and previously accumulated segments. Position is a value between @segment
- * start and stop time.
+ * segment. Position is a value between @segment start and stop time.
  *
  * This function is typically used by elements that need to synchronize to the
  * global clock in a pipeline. The runnning time is a constantly increasing value
@@ -454,7 +466,7 @@
     guint64 position)
 {
   guint64 result;
-  guint64 start, stop, base;
+  guint64 start, stop;
   gdouble abs_rate;
 
   if (G_UNLIKELY (position == -1))
@@ -463,22 +475,17 @@
   g_return_val_if_fail (segment != NULL, -1);
   g_return_val_if_fail (segment->format == format, -1);
 
-  /* if we have the position for the same format as the segment, we can compare
-   * the start and stop values, otherwise we assume 0 and -1 */
-  if (G_LIKELY (segment->format == format)) {
-    start = segment->start;
-    stop = segment->stop;
-    base = segment->base;
-  } else {
-    start = 0;
-    stop = -1;
-    base = 0;
-  }
+  start = segment->start;
+
+  if (segment->rate > 0.0)
+    start += segment->offset;
 
   /* before the segment boundary */
   if (G_UNLIKELY (position < start))
     return -1;
 
+  stop = segment->stop;
+
   if (G_LIKELY (segment->rate > 0.0)) {
     /* outside of the segment boundary stop */
     if (G_UNLIKELY (stop != -1 && position > stop))
@@ -489,7 +496,11 @@
   } else {
     /* cannot continue if no stop position set or outside of
      * the segment. */
-    if (G_UNLIKELY (stop == -1 || position > stop))
+    if (G_UNLIKELY (stop == -1))
+      return -1;
+
+    stop -= segment->offset;
+    if (G_UNLIKELY (position > stop))
       return -1;
 
     /* bring to uncorrected position in segment */
@@ -503,7 +514,7 @@
     result /= abs_rate;
 
   /* correct for base of the segment */
-  result += base;
+  result += segment->base;
 
   return result;
 }
@@ -585,8 +596,6 @@
  *
  * Returns: the position in the segment for @running_time. This function returns
  * -1 when @running_time is -1 or when it is not inside @segment.
- *
- * Since: 0.10.24
  */
 guint64
 gst_segment_to_position (const GstSegment * segment, GstFormat format,
@@ -602,17 +611,7 @@
   g_return_val_if_fail (segment != NULL, -1);
   g_return_val_if_fail (segment->format == format, FALSE);
 
-  /* if we have the position for the same format as the segment, we can compare
-   * the start and stop values, otherwise we assume 0 and -1 */
-  if (G_LIKELY (segment->format == format)) {
-    start = segment->start;
-    stop = segment->stop;
-    base = segment->base;
-  } else {
-    start = 0;
-    stop = -1;
-    base = 0;
-  }
+  base = segment->base;
 
   /* this running_time was for a previous segment */
   if (running_time < base)
@@ -626,6 +625,9 @@
   if (G_UNLIKELY (abs_rate != 1.0))
     result = ceil (result * abs_rate);
 
+  start = segment->start;
+  stop = segment->stop;
+
   if (G_LIKELY (segment->rate > 0.0)) {
     /* bring to corrected position in segment */
     result += start;
@@ -657,8 +659,6 @@
  *
  * Returns: %TRUE if the segment could be updated successfully. If %FALSE is
  * returned, @running_time is -1 or not in @segment.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_segment_set_running_time (GstSegment * segment, GstFormat format,
diff --git a/gst/gstsegment.h b/gst/gstsegment.h
index 9d3a8d1..580106b 100644
--- a/gst/gstsegment.h
+++ b/gst/gstsegment.h
@@ -58,18 +58,17 @@
  * @GST_SEEK_FLAG_SEGMENT: perform a segment seek.
  * @GST_SEEK_FLAG_SKIP: when doing fast foward or fast reverse playback, allow
  *                     elements to skip frames instead of generating all
- *                     frames. Since 0.10.22.
+ *                     frames.
  * @GST_SEEK_FLAG_SNAP_BEFORE: go to a location before the requested position,
  *                     if KEY_UNIT this means the keyframe at or before the
  *                     requested position the one at or before the seek target.
- *                     Since 0.10.37.
  * @GST_SEEK_FLAG_SNAP_AFTER: go to a location after the requested position,
  *                     if KEY_UNIT this means the keyframe at of after the
- *                     requested position. Since 0.10.37.
+ *                     requested position.
  * @GST_SEEK_FLAG_SNAP_NEAREST: go to a position near the requested position,
  *                     if KEY_UNIT this means the keyframe closest to the
  *                     requested position, if both keyframes are at an equal
- *                     distance, behaves like SNAP_BEFORE. Since 0.10.37.
+ *                     distance, behaves like SNAP_BEFORE.
  *
  * Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
  * can be used together.
@@ -126,14 +125,17 @@
  * @GST_SEGMENT_FLAG_RESET: reset the pipeline running_time to the segment
  *                          running_time
  * @GST_SEGMENT_FLAG_SKIP: perform skip playback
+ * @GST_SEGMENT_FLAG_SEGMENT: send SEGMENT_DONE instead of EOS
  *
  * Flags for the GstSegment structure. Currently mapped to the corresponding
  * values of the seek flags.
  */
+/* Note: update gst_segment_do_seek() when adding new flags here */
 typedef enum {
   GST_SEGMENT_FLAG_NONE            = GST_SEEK_FLAG_NONE,
   GST_SEGMENT_FLAG_RESET           = GST_SEEK_FLAG_FLUSH,
-  GST_SEGMENT_FLAG_SKIP            = GST_SEEK_FLAG_SKIP
+  GST_SEGMENT_FLAG_SKIP            = GST_SEEK_FLAG_SKIP,
+  GST_SEGMENT_FLAG_SEGMENT         = GST_SEEK_FLAG_SEGMENT
 } GstSegmentFlags;
 
 /**
@@ -142,7 +144,8 @@
  * @rate: the rate of the segment
  * @applied_rate: the already applied rate to the segment
  * @format: the format of the segment values
- * @base: the base time of the segment
+ * @base: the base of the segment
+ * @offset: the offset to apply to @start or @stop
  * @start: the start of the segment
  * @stop: the stop of the segment
  * @time: the stream time of the segment
@@ -161,6 +164,7 @@
 
   GstFormat       format;
   guint64         base;
+  guint64         offset;
   guint64         start;
   guint64         stop;
   guint64         time;
diff --git a/gst/gststructure.c b/gst/gststructure.c
index fdc65e1..56b66bc 100644
--- a/gst/gststructure.c
+++ b/gst/gststructure.c
@@ -543,8 +543,6 @@
  * Sets the field with the given GQuark @field to @value.  If the field
  * does not exist, it is created.  If the field exists, the previous
  * value is replaced and freed.
- *
- * Since: 0.10.31
  */
 void
 gst_structure_id_take_value (GstStructure * structure, GQuark field,
@@ -566,8 +564,6 @@
  * Sets the field with the given name @field to @value.  If the field
  * does not exist, it is created.  If the field exists, the previous
  * value is replaced and freed. The function will take ownership of @value.
- *
- * Since: 0.10.31
  */
 void
 gst_structure_take_value (GstStructure * structure, const gchar * fieldname,
@@ -689,8 +685,6 @@
  * setting of the structure if the caller already knows the associated
  * quark values.
  * The last variable argument must be NULL.
- *
- * Since: 0.10.10
  */
 void
 gst_structure_id_set (GstStructure * structure, GQuark field, ...)
@@ -711,8 +705,6 @@
  * @varargs: variable arguments
  *
  * va_list form of gst_structure_id_set().
- *
- * Since: 0.10.10
  */
 void
 gst_structure_id_set_valist (GstStructure * structure,
@@ -740,8 +732,6 @@
  * Free-function: gst_structure_free
  *
  * Returns: (transfer full): a new #GstStructure
- *
- * Since: 0.10.24
  */
 GstStructure *
 gst_structure_new_id (GQuark name_quark, GQuark field_quark, ...)
@@ -1176,8 +1166,6 @@
  * Check if @structure contains a field named @field.
  *
  * Returns: TRUE if the structure contains a field with the given name
- *
- * Since: 0.10.26
  */
 gboolean
 gst_structure_id_has_field (const GstStructure * structure, GQuark field)
@@ -1221,8 +1209,6 @@
  * Check if @structure contains a field named @field and with GType @type.
  *
  * Returns: TRUE if the structure contains a field with the given name and type
- *
- * Since: 0.10.26
  */
 gboolean
 gst_structure_id_has_field_typed (const GstStructure * structure,
@@ -1347,8 +1333,6 @@
  * Returns: %TRUE if the value could be set correctly. If there was no field
  * with @fieldname or the existing field did not contain a uint, this function
  * returns %FALSE.
- *
- * Since: 0.10.15
  */
 gboolean
 gst_structure_get_uint (const GstStructure * structure,
@@ -1432,8 +1416,6 @@
  * Returns: TRUE if the value could be set correctly. If there was no field
  * with @fieldname or the existing field did not contain a data, this function
  * returns FALSE.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_structure_get_date_time (const GstStructure * structure,
@@ -1699,6 +1681,8 @@
       {"datetime", GST_TYPE_DATE_TIME}
       ,
       {"bitmask", GST_TYPE_BITMASK}
+      ,
+      {"taglist", GST_TYPE_TAG_LIST}
     };
     _num = G_N_ELEMENTS (dyn_abbrs);
     /* permanently allocate and copy the array now */
@@ -2552,8 +2536,6 @@
  * @target string if that field is not fixed yet.
  *
  * Returns: TRUE if the structure could be fixated
- *
- * Since: 0.10.30
  */
 gboolean
 gst_structure_fixate_field_string (GstStructure * structure,
@@ -2735,7 +2717,7 @@
   guint _flags = (flags);                                                     \
   GType _value_type = G_VALUE_TYPE (_value);                                  \
   GTypeValueTable *_vtable = g_type_value_table_peek (_value_type);           \
-  gchar *_lcopy_format = _vtable->lcopy_format;                               \
+  const gchar *_lcopy_format = _vtable->lcopy_format;                         \
   GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, };      \
   guint _n_values = 0;                                                        \
                                                                               \
@@ -2763,8 +2745,6 @@
  * gst_structure_get() for more details.
  *
  * Returns: TRUE, or FALSE if there was a problem reading any of the fields
- *
- * Since: 0.10.24
  */
 gboolean
 gst_structure_get_valist (const GstStructure * structure,
@@ -2806,13 +2786,13 @@
 /* ERRORS */
 no_such_field:
   {
-    GST_WARNING ("Expected field '%s' in structure: %" GST_PTR_FORMAT,
+    GST_INFO ("Expected field '%s' in structure: %" GST_PTR_FORMAT,
         field_name, structure);
     return FALSE;
   }
 wrong_type:
   {
-    GST_WARNING ("Expected field '%s' in structure to be of type '%s', but "
+    GST_INFO ("Expected field '%s' in structure to be of type '%s', but "
         "field was of type '%s': %" GST_PTR_FORMAT, field_name,
         GST_STR_NULL (g_type_name (expected_type)),
         G_VALUE_TYPE_NAME (gst_structure_get_value (structure, field_name)),
@@ -2832,8 +2812,6 @@
  * gst_structure_id_get() for more details.
  *
  * Returns: TRUE, or FALSE if there was a problem reading any of the fields
- *
- * Since: 0.10.24
  */
 gboolean
 gst_structure_id_get_valist (const GstStructure * structure,
@@ -2875,13 +2853,13 @@
 /* ERRORS */
 no_such_field:
   {
-    GST_WARNING ("Expected field '%s' in structure: %" GST_PTR_FORMAT,
+    GST_DEBUG ("Expected field '%s' in structure: %" GST_PTR_FORMAT,
         GST_STR_NULL (g_quark_to_string (field_id)), structure);
     return FALSE;
   }
 wrong_type:
   {
-    GST_WARNING ("Expected field '%s' in structure to be of type '%s', but "
+    GST_DEBUG ("Expected field '%s' in structure to be of type '%s', but "
         "field was of type '%s': %" GST_PTR_FORMAT,
         g_quark_to_string (field_id),
         GST_STR_NULL (g_type_name (expected_type)),
@@ -2910,8 +2888,6 @@
  * Returns: FALSE 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 TRUE.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_structure_get (const GstStructure * structure, const char *first_fieldname,
@@ -2955,8 +2931,6 @@
  * Returns: FALSE 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 TRUE.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_structure_id_get (const GstStructure * structure, GQuark first_field_id,
@@ -2999,8 +2973,6 @@
  * Tests if the two #GstStructure are equal.
  *
  * Returns: TRUE if the two structures have the same name and field.
- *
- * Since: 0.10.36
  **/
 gboolean
 gst_structure_is_equal (const GstStructure * structure1,
@@ -3072,8 +3044,6 @@
  * Interesects @struct1 and @struct2 and returns the intersection.
  *
  * Returns: Intersection of @struct1 and @struct2
- *
- * Since: 0.10.36
  */
 GstStructure *
 gst_structure_intersect (const GstStructure * struct1,
@@ -3143,8 +3113,6 @@
  * would not be empty.
  *
  * Returns: %TRUE if intersection would not be empty
- *
- * Since: 0.10.36
  */
 gboolean
 gst_structure_can_intersect (const GstStructure * struct1,
@@ -3196,8 +3164,6 @@
  * @subset has a value that is a subset of the value in @superset.
  *
  * Returns: %TRUE if @subset is a subset of @superset
- *
- * Since: 0.10.36
  */
 gboolean
 gst_structure_is_subset (const GstStructure * subset,
diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c
index 9cac9ee..8385e1a 100644
--- a/gst/gstsystemclock.c
+++ b/gst/gstsystemclock.c
@@ -304,9 +304,7 @@
     clock = g_object_new (GST_TYPE_SYSTEM_CLOCK,
         "name", "GstSystemClock", NULL);
 
-    /* we created the global clock; take ownership so
-     * we can hand out instances later */
-    gst_object_ref_sink (clock);
+    g_assert (!g_object_is_floating (G_OBJECT (clock)));
 
     _the_system_clock = clock;
     g_mutex_unlock (&_gst_sysclock_mutex);
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index 5658fe7..7de389f 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -52,21 +52,16 @@
 
 #define GST_TAG_IS_VALID(tag)           (gst_tag_get_info (tag) != NULL)
 
-/* FIXME 0.11: make taglists refcounted maybe? */
-/* a tag list is basically a structure, but we don't make this fact public */
 typedef struct _GstTagListImpl
 {
   GstTagList taglist;
 
   GstStructure *structure;
+  GstTagScope scope;
 } GstTagListImpl;
 
-#define GST_TAG_LIST_STRUCTURE(taglist) ((GstTagListImpl*)(taglist))->structure
-
-
-/* FIXME 0.11: use GParamSpecs or something similar for tag registrations,
- * possibly even gst_tag_register(). Especially value ranges might be
- * useful for some tags. */
+#define GST_TAG_LIST_STRUCTURE(taglist)  ((GstTagListImpl*)(taglist))->structure
+#define GST_TAG_LIST_SCOPE(taglist)  ((GstTagListImpl*)(taglist))->scope
 
 typedef struct
 {
@@ -387,7 +382,7 @@
       G_TYPE_STRING, _("application name"),
       _("Application used to create the media"), NULL);
   gst_tag_register_static (GST_TAG_APPLICATION_DATA, GST_TAG_FLAG_META,
-      GST_TYPE_BUFFER, _("application data"),
+      GST_TYPE_SAMPLE, _("application data"),
       _("Arbitrary application data to be serialized into the media"), NULL);
   gst_tag_register_static (GST_TAG_IMAGE_ORIENTATION, GST_TAG_FLAG_META,
       G_TYPE_STRING, _("image orientation"),
@@ -580,7 +575,7 @@
 }
 
 /**
- * gst_tag_get_nick
+ * gst_tag_get_nick:
  * @tag: the tag
  *
  * Returns the human-readable name of this tag, You must not change or free
@@ -662,17 +657,6 @@
   return info->merge_func == NULL;
 }
 
-static void
-gst_tag_list_init (GstTagList * taglist, gsize size)
-{
-  gst_mini_object_init (GST_MINI_OBJECT_CAST (taglist),
-      gst_tag_list_get_type (), size);
-
-  taglist->mini_object.copy = (GstMiniObjectCopyFunction) __gst_tag_list_copy;
-  taglist->mini_object.dispose = NULL;
-  taglist->mini_object.free = (GstMiniObjectFreeFunction) __gst_tag_list_free;
-}
-
 /* takes ownership of the structure */
 static GstTagList *
 gst_tag_list_new_internal (GstStructure * s)
@@ -683,9 +667,12 @@
 
   tag_list = (GstTagList *) g_slice_new (GstTagListImpl);
 
-  gst_tag_list_init (tag_list, sizeof (GstTagListImpl));
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (tag_list), 0, GST_TYPE_TAG_LIST,
+      (GstMiniObjectCopyFunction) __gst_tag_list_copy, NULL,
+      (GstMiniObjectFreeFunction) __gst_tag_list_free);
 
   GST_TAG_LIST_STRUCTURE (tag_list) = s;
+  GST_TAG_LIST_SCOPE (tag_list) = GST_TAG_SCOPE_STREAM;
 
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_TAGS, "created taglist %p", tag_list);
@@ -700,13 +687,12 @@
   g_return_if_fail (GST_IS_TAG_LIST (list));
 
 #ifdef DEBUG_REFCOUNT
-  GST_CAT_TRACE (GST_CAT_TAGS, "freeing caps %p", list);
+  GST_CAT_TRACE (GST_CAT_TAGS, "freeing taglist %p", list);
 #endif
 
   gst_structure_free (GST_TAG_LIST_STRUCTURE (list));
 
-  /* why not just pass sizeof (GstTagListImpl) here? */
-  g_slice_free1 (GST_MINI_OBJECT_SIZE (list), list);
+  g_slice_free1 (sizeof (GstTagListImpl), list);
 }
 
 static GstTagList *
@@ -757,8 +743,6 @@
  *
  * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_unref()
  *     when no longer needed.
- *
- * Since: 0.10.24
  */
 GstTagList *
 gst_tag_list_new (const gchar * tag, ...)
@@ -787,8 +771,6 @@
  *
  * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_unref()
  *     when no longer needed.
- *
- * Since: 0.10.24
  */
 GstTagList *
 gst_tag_list_new_valist (va_list var_args)
@@ -805,6 +787,40 @@
 }
 
 /**
+ * gst_tag_list_set_scope:
+ * @list: a #GstTagList
+ * @scope: new scope for @list
+ *
+ * Sets the scope of @list to @scope. By default the scope
+ * of a taglist is #GST_TAG_SCOPE_STREAM.
+ *
+ */
+void
+gst_tag_list_set_scope (GstTagList * list, GstTagScope scope)
+{
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (gst_tag_list_is_writable (list));
+
+  GST_TAG_LIST_SCOPE (list) = scope;
+}
+
+/**
+ * gst_tag_list_get_scope:
+ * @list: a #GstTagList
+ *
+ * Gets the scope of @list.
+ *
+ * Returns: The scope of @list
+ */
+GstTagScope
+gst_tag_list_get_scope (const GstTagList * list)
+{
+  g_return_val_if_fail (GST_IS_TAG_LIST (list), GST_TAG_SCOPE_STREAM);
+
+  return GST_TAG_LIST_SCOPE (list);
+}
+
+/**
  * gst_tag_list_to_string:
  * @list: a #GstTagList
  *
@@ -812,8 +828,6 @@
  *
  * Returns: a newly-allocated string, or NULL in case of an error. The
  *    string must be freed with g_free() when no longer needed.
- *
- * Since: 0.10.36
  */
 gchar *
 gst_tag_list_to_string (const GstTagList * list)
@@ -830,8 +844,6 @@
  * Deserializes a tag list.
  *
  * Returns: a new #GstTagList, or NULL in case of an error.
- *
- * Since: 0.10.36
  */
 GstTagList *
 gst_tag_list_new_from_string (const gchar * str)
@@ -887,8 +899,6 @@
  * Checks if the given taglist is empty.
  *
  * Returns: TRUE if the taglist is empty, otherwise FALSE.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_tag_list_is_empty (const GstTagList * list)
@@ -928,8 +938,6 @@
  * Checks if the two given taglists are equal.
  *
  * Returns: TRUE if the taglists are equal, otherwise FALSE
- *
- * Since: 0.10.36
  */
 gboolean
 gst_tag_list_is_equal (const GstTagList * list1, const GstTagList * list2)
@@ -993,6 +1001,14 @@
     }
   }
 
+  if (G_UNLIKELY (!G_VALUE_HOLDS (value, info->type) &&
+          !GST_VALUE_HOLDS_LIST (value))) {
+    g_warning ("tag '%s' should hold value of type '%s', but value of "
+        "type '%s' passed", info->nick, g_type_name (info->type),
+        g_type_name (G_VALUE_TYPE (value)));
+    return;
+  }
+
   tag_quark = info->name_quark;
 
   if (info->merge_func
@@ -1291,8 +1307,6 @@
  * @value: GValue for this tag
  *
  * Sets the GValue for a given tag using the specified mode.
- *
- * Since: 0.10.24
  */
 void
 gst_tag_list_add_value (GstTagList * list, GstTagMergeMode mode,
@@ -1715,7 +1729,7 @@
  * to retrieve the first string associated with this tag unmodified.
  *
  * The resulting string in @value will be in UTF-8 encoding and should be
- * freed by the caller using g_free when no longer needed. Since 0.10.24 the
+ * freed by the caller using g_free when no longer needed. The
  * returned string is also guaranteed to be non-NULL and non-empty.
  *
  * Free-function: g_free
@@ -1734,7 +1748,7 @@
  * list.
  *
  * The resulting string in @value will be in UTF-8 encoding and should be
- * freed by the caller using g_free when no longer needed. Since 0.10.24 the
+ * freed by the caller using g_free when no longer needed. The
  * returned string is also guaranteed to be non-NULL and non-empty.
  *
  * Free-function: g_free
@@ -1862,8 +1876,6 @@
  *
  * Returns: TRUE, if a datetime was copied, FALSE if the tag didn't exist in
  *              thegiven list or if it was #NULL.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_tag_list_get_date_time (const GstTagList * list, const gchar * tag,
@@ -1900,8 +1912,6 @@
  *
  * Returns: TRUE, if a value was copied, FALSE if the tag didn't exist in the
  *              given list or if it was #NULL.
- *
- * Since: 0.10.31
  */
 gboolean
 gst_tag_list_get_date_time_index (const GstTagList * list,
@@ -1920,71 +1930,71 @@
 }
 
 /**
- * gst_tag_list_get_buffer:
+ * gst_tag_list_get_sample:
  * @list: a #GstTagList to get the tag from
  * @tag: tag to read out
- * @value: (out callee-allocates) (transfer full): address of a GstBuffer
+ * @sample: (out callee-allocates) (transfer full): address of a GstSample
  *     pointer variable to store the result into
  *
- * Copies the first buffer for the given tag in the taglist into the variable
- * pointed to by @value. Free the buffer with gst_buffer_unref() when it is
- * no longer needed.
+ * Copies the first sample for the given tag in the taglist into the variable
+ * pointed to by @sample. Free the sample with gst_sample_unref() when it is
+ * no longer needed. You can retrieve the buffer from the sample using
+ * gst_sample_get_buffer() and the associated caps (if any) with
+ * gst_sample_get_caps().
  *
- * Free-function: gst_buffer_unref
+ * Free-function: gst_sample_unref
  *
- * Returns: TRUE, if a buffer was copied, FALSE if the tag didn't exist in the
- *              given list or if it was #NULL.
- *
- * Since: 0.10.23
+ * Returns: TRUE, if a sample was returned, FALSE if the tag didn't exist in
+ *              the given list or if it was #NULL.
  */
 gboolean
-gst_tag_list_get_buffer (const GstTagList * list, const gchar * tag,
-    GstBuffer ** value)
+gst_tag_list_get_sample (const GstTagList * list, const gchar * tag,
+    GstSample ** sample)
 {
   GValue v = { 0, };
 
   g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE);
   g_return_val_if_fail (tag != NULL, FALSE);
-  g_return_val_if_fail (value != NULL, FALSE);
+  g_return_val_if_fail (sample != NULL, FALSE);
 
   if (!gst_tag_list_copy_value (&v, list, tag))
     return FALSE;
-  *value = g_value_dup_boxed (&v);
+  *sample = g_value_dup_boxed (&v);
   g_value_unset (&v);
-  return (*value != NULL);
+  return (*sample != NULL);
 }
 
 /**
- * gst_tag_list_get_buffer_index:
+ * gst_tag_list_get_sample_index:
  * @list: a #GstTagList to get the tag from
  * @tag: tag to read out
  * @index: number of entry to read out
- * @value: (out callee-allocates) (transfer full): address of a GstBuffer
+ * @sample: (out callee-allocates) (transfer full): address of a GstSample
  *     pointer variable to store the result into
  *
- * Gets the buffer that is at the given index for the given tag in the given
- * list and copies it into the variable pointed to by @value. Free the buffer
- * with gst_buffer_unref() when it is no longer needed.
+ * Gets the sample that is at the given index for the given tag in the given
+ * list and copies it into the variable pointed to by @smple. Free the sample
+ * with gst_sample_unref() when it is no longer needed. You can retrieve the
+ * buffer from the sample using gst_sample_get_buffer() and the associated
+ * caps (if any) with gst_sample_get_caps().
  *
- * Free-function: gst_buffer_unref
+ * Free-function: gst_sample_unref
  *
- * Returns: TRUE, if a buffer was copied, FALSE if the tag didn't exist in the
+ * Returns: TRUE, if a sample was copied, FALSE if the tag didn't exist in the
  *              given list or if it was #NULL.
- *
- * Since: 0.10.23
  */
 gboolean
-gst_tag_list_get_buffer_index (const GstTagList * list,
-    const gchar * tag, guint index, GstBuffer ** value)
+gst_tag_list_get_sample_index (const GstTagList * list,
+    const gchar * tag, guint index, GstSample ** sample)
 {
   const GValue *v;
 
   g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE);
   g_return_val_if_fail (tag != NULL, FALSE);
-  g_return_val_if_fail (value != NULL, FALSE);
+  g_return_val_if_fail (sample != NULL, FALSE);
 
   if ((v = gst_tag_list_get_value_index (list, tag, index)) == NULL)
     return FALSE;
-  *value = g_value_dup_boxed (v);
-  return (*value != NULL);
+  *sample = g_value_dup_boxed (v);
+  return (*sample != NULL);
 }
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index 7940a31..e6f1648 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -211,10 +211,27 @@
 gboolean               gst_tag_is_fixed        (const gchar * tag);
 
 /* tag lists */
+
+/**
+ * GstTagEventScope:
+ * @GST_TAG_SCOPE_STREAM: tags specific to this single stream
+ * @GST_TAG_SCOPE_GLOBAL: global tags for the complete medium
+ *
+ * GstTagScope specifies if a taglist applies to the complete
+ * medium or only to one single stream.
+ */
+typedef enum {
+  GST_TAG_SCOPE_STREAM,
+  GST_TAG_SCOPE_GLOBAL
+} GstTagScope;
+
 GstTagList * gst_tag_list_new_empty         (void) G_GNUC_MALLOC;
 GstTagList * gst_tag_list_new               (const gchar * tag, ...) G_GNUC_MALLOC;
 GstTagList * gst_tag_list_new_valist        (va_list var_args) G_GNUC_MALLOC;
 
+void         gst_tag_list_set_scope         (GstTagList * list, GstTagScope scope);
+GstTagScope  gst_tag_list_get_scope         (const GstTagList * list);
+
 gchar      * gst_tag_list_to_string         (const GstTagList * list) G_GNUC_MALLOC;
 GstTagList * gst_tag_list_new_from_string   (const gchar      * str) G_GNUC_MALLOC;
 
@@ -347,13 +364,13 @@
                                              const gchar      * tag,
                                              guint              index,
                                              GstDateTime     ** value);
-gboolean     gst_tag_list_get_buffer        (const GstTagList * list,
+gboolean     gst_tag_list_get_sample        (const GstTagList * list,
                                              const gchar      * tag,
-                                             GstBuffer       ** value);
-gboolean     gst_tag_list_get_buffer_index  (const GstTagList * list,
+                                             GstSample       ** sample);
+gboolean     gst_tag_list_get_sample_index  (const GstTagList * list,
                                              const gchar      * tag,
                                              guint              index,
-                                             GstBuffer       ** value);
+                                             GstSample       ** sample);
 
 /* refcounting */
 /**
@@ -468,8 +485,6 @@
  * commonly used title, as used for sorting (string)
  *
  * The title as it should be sorted, e.g. 'Doll House, The'
- *
- * Since: 0.10.15
  */
 #define GST_TAG_TITLE_SORTNAME         "title-sortname"
 /**
@@ -488,8 +503,6 @@
  *
  * The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or
  * 'Guitar Heroes, The'
- *
- * Since: 0.10.15
  */
 #define GST_TAG_ARTIST_SORTNAME        "artist-sortname"
 /**
@@ -506,32 +519,24 @@
  * album containing this data, as used for sorting (string)
  *
  * The album name as it should be sorted, e.g. 'Jazz Guitar, The'
- *
- * Since: 0.10.15
  */
 #define GST_TAG_ALBUM_SORTNAME         "album-sortname"
 /**
  * GST_TAG_ALBUM_ARTIST:
  *
  * The artist of the entire album, as it should be displayed.
- *
- * Since: 0.10.25
  */
 #define GST_TAG_ALBUM_ARTIST           "album-artist"
 /**
  * GST_TAG_ALBUM_ARTIST_SORTNAME:
  *
  * The artist of the entire album, as it should be sorted.
- *
- * Since: 0.10.25
  */
 #define GST_TAG_ALBUM_ARTIST_SORTNAME  "album-artist-sortname"
 /**
  * GST_TAG_COMPOSER:
  *
  * person(s) who composed the recording (string)
- *
- * Since: 0.10.15
  */
 #define GST_TAG_COMPOSER               "composer"
 /**
@@ -544,8 +549,6 @@
  * GST_TAG_DATE_TIME:
  *
  * date and time the data was created (#GstDateTime structure)
- *
- * Since: 0.10.31
  */
 #define GST_TAG_DATE_TIME              "datetime"
 /**
@@ -571,8 +574,6 @@
  *
  * This tag is used for unknown Vorbis comment tags,
  * unknown APE tags and certain ID3v2 comment fields.
- *
- * Since: 0.10.10
  */
 #define GST_TAG_EXTENDED_COMMENT       "extended-comment"
 /**
@@ -610,8 +611,6 @@
  * GST_TAG_HOMEPAGE:
  *
  * Homepage for this media (i.e. artist or movie homepage) (string)
- *
- * Since: 0.10.23
  */
 #define GST_TAG_HOMEPAGE               "homepage"
 /**
@@ -648,8 +647,6 @@
  * GST_TAG_COPYRIGHT_URI:
  *
  * URI to location where copyright details can be found (string)
- *
- * Since: 0.10.14
  */
 #define GST_TAG_COPYRIGHT_URI          "copyright-uri"
 /**
@@ -661,8 +658,6 @@
  *
  * Note: do not use this field to describe the encoding application. Use
  * #GST_TAG_APPLICATION_NAME or #GST_TAG_COMMENT for that.
- *
- * Since: 0.10.33
  */
 #define GST_TAG_ENCODED_BY             "encoded-by"
 /**
@@ -681,8 +676,6 @@
  * GST_TAG_LICENSE_URI:
  *
  * URI to location where license details can be found (string)
- *
- * Since: 0.10.14
  */
 #define GST_TAG_LICENSE_URI            "license-uri"
 /**
@@ -719,16 +712,12 @@
  * GST_TAG_SUBTITLE_CODEC:
  *
  * codec/format the subtitle data is stored in (string)
- *
- * Since: 0.10.23
  */
 #define GST_TAG_SUBTITLE_CODEC         "subtitle-codec"
 /**
  * GST_TAG_CONTAINER_FORMAT:
  *
  * container format the data is stored in (string)
- *
- * Since: 0.10.24
  */
 #define GST_TAG_CONTAINER_FORMAT       "container-format"
 /**
@@ -802,8 +791,6 @@
  * GST_TAG_REFERENCE_LEVEL:
  *
  * reference level of track and album gain values (double)
- *
- * Since: 0.10.12
  */
 #define GST_TAG_REFERENCE_LEVEL        "replaygain-reference-level"
 /**
@@ -823,8 +810,6 @@
  * Free-form name of the language the content is in, if a language code
  * is not available. This tag should not be set in addition to a language
  * code. It is undefined what language or locale the language name is in.
- *
- * Since: 0.10.37
  */
 #define GST_TAG_LANGUAGE_NAME          "language-name"
 /**
@@ -832,8 +817,6 @@
  *
  * image (sample) (sample taglist should specify the content type and preferably
  * also set "image-type" field as #GstTagImageType)
- *
- * Since: 0.10.6
  */
 #define GST_TAG_IMAGE                  "image"
 /**
@@ -841,8 +824,6 @@
  *
  * image that is meant for preview purposes, e.g. small icon-sized version
  * (sample) (sample taglist should specify the content type)
- *
- * Since: 0.10.7
  */
 #define GST_TAG_PREVIEW_IMAGE          "preview-image"
 
@@ -852,8 +833,6 @@
  * generic file attachment (sample) (sample taglist should specify the content
  * type and if possible set "filename" to the file name of the
  * attachment)
- *
- * Since: 0.10.21
  */
 #define GST_TAG_ATTACHMENT             "attachment"
 
@@ -861,8 +840,6 @@
  * GST_TAG_BEATS_PER_MINUTE:
  *
  * number of beats per minute in audio (double)
- *
- * Since: 0.10.12
  */
 #define GST_TAG_BEATS_PER_MINUTE       "beats-per-minute"
 
@@ -870,8 +847,6 @@
  * GST_TAG_KEYWORDS:
  *
  * comma separated keywords describing the content (string).
- *
- * Since: 0.10.21
  */
 #define GST_TAG_KEYWORDS               "keywords"
 
@@ -880,8 +855,6 @@
  *
  * human readable descriptive location of where the media has been recorded or
  * produced. (string).
- *
- * Since: 0.10.21
  */
 #define GST_TAG_GEO_LOCATION_NAME               "geo-location-name"
 
@@ -891,8 +864,6 @@
  * geo latitude location of where the media has been recorded or produced in
  * degrees according to WGS84 (zero at the equator, negative values for southern
  * latitudes) (double).
- *
- * Since: 0.10.21
  */
 #define GST_TAG_GEO_LOCATION_LATITUDE               "geo-location-latitude"
 
@@ -902,8 +873,6 @@
  * geo longitude location of where the media has been recorded or produced in
  * degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,
  * negative values for western longitudes). (double).
- *
- * Since: 0.10.21
  */
 #define GST_TAG_GEO_LOCATION_LONGITUDE               "geo-location-longitude"
 
@@ -912,24 +881,18 @@
  *
  * geo elevation of where the media has been recorded or produced in meters
  * according to WGS84 (zero is average sea level) (double).
- *
- * Since: 0.10.21
  */
 #define GST_TAG_GEO_LOCATION_ELEVATION               "geo-location-elevation"
 /**
  * GST_TAG_GEO_LOCATION_COUNTRY:
  *
  * The country (english name) where the media has been produced (string).
- *
- * Since: 0.10.29
  */
 #define GST_TAG_GEO_LOCATION_COUNTRY                 "geo-location-country"
 /**
  * GST_TAG_GEO_LOCATION_CITY:
  *
  * The city (english name) where the media has been produced (string).
- *
- * Since: 0.10.29
  */
 #define GST_TAG_GEO_LOCATION_CITY                    "geo-location-city"
 /**
@@ -940,8 +903,6 @@
  *
  * This tag has been added as this is how it is handled/named in XMP's
  * Iptc4xmpcore schema.
- *
- * Since: 0.10.29
  */
 #define GST_TAG_GEO_LOCATION_SUBLOCATION             "geo-location-sublocation"
 /**
@@ -949,8 +910,6 @@
  *
  * Represents the expected error on the horizontal positioning in
  * meters (double).
- *
- * Since: 0.10.31
  */
 #define GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR   "geo-location-horizontal-error"
 /**
@@ -960,8 +919,6 @@
  * Represented in m/s. (double)
  *
  * See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION
- *
- * Since 0.10.30
  */
 #define GST_TAG_GEO_LOCATION_MOVEMENT_SPEED       "geo-location-movement-speed"
 /**
@@ -972,8 +929,6 @@
  * 0 means the geographic north, and increases clockwise (double from 0 to 360)
  *
  * See also #GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION
- *
- * Since: 0.10.30
  */
 #define GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION "geo-location-movement-direction"
 /**
@@ -984,56 +939,42 @@
  * 0 means the geographic north, and increases clockwise (double from 0 to 360)
  *
  * See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION
- *
- * Since: 0.10.30
  */
 #define GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION  "geo-location-capture-direction"
 /**
  * GST_TAG_SHOW_NAME:
  *
  * Name of the show, used for displaying (string)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_SHOW_NAME                         "show-name"
 /**
  * GST_TAG_SHOW_SORTNAME:
  *
  * Name of the show, used for sorting (string)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_SHOW_SORTNAME                     "show-sortname"
 /**
  * GST_TAG_SHOW_EPISODE_NUMBER:
  *
  * Number of the episode within a season/show (unsigned integer)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_SHOW_EPISODE_NUMBER               "show-episode-number"
 /**
  * GST_TAG_SHOW_SEASON_NUMBER:
  *
  * Number of the season of a show/series (unsigned integer)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_SHOW_SEASON_NUMBER                "show-season-number"
 /**
  * GST_TAG_LYRICS:
  *
  * The lyrics of the media (string)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_LYRICS                            "lyrics"
 /**
  * GST_TAG_COMPOSER_SORTNAME:
  *
  * The composer's name, used for sorting (string)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_COMPOSER_SORTNAME                 "composer-sortname"
 /**
@@ -1041,8 +982,6 @@
  *
  * Groups together media that are related and spans multiple tracks. An
  * example are multiple pieces of a concerto. (string)
- *
- * Since: 0.10.26
  */
 #define GST_TAG_GROUPING                          "grouping"
 /**
@@ -1051,43 +990,33 @@
  * Rating attributed by a person (likely the application user).
  * The higher the value, the more the user likes this media
  * (unsigned int from 0 to 100)
- *
- * Since: 0.10.29
  */
 #define GST_TAG_USER_RATING                       "user-rating"
 /**
  * GST_TAG_DEVICE_MANUFACTURER:
  *
  * Manufacturer of the device used to create the media (string)
- *
- * Since: 0.10.30
  */
 #define GST_TAG_DEVICE_MANUFACTURER               "device-manufacturer"
 /**
  * GST_TAG_DEVICE_MODEL:
  *
  * Model of the device used to create the media (string)
- *
- * Since: 0.10.30
  */
 #define GST_TAG_DEVICE_MODEL                      "device-model"
 /**
  * GST_TAG_APPLICATION_NAME:
  *
  * Name of the application used to create the media (string)
- *
- * Since: 0.10.31
  */
 #define GST_TAG_APPLICATION_NAME                  "application-name"
 /**
  * GST_TAG_APPLICATION_DATA:
  *
- * Arbitrary application data (buffer)
+ * Arbitrary application data (sample)
  *
- * Some formats allow application's to add their own arbitrary data
- * into files. This data is application's dependent.
- *
- * Since: 0.10.31
+ * Some formats allow applications to add their own arbitrary data
+ * into files. This data is application dependent.
  */
 #define GST_TAG_APPLICATION_DATA          "application-data"
 /**
@@ -1112,8 +1041,6 @@
  *
  * Rotations indicated by the values are in clockwise direction and
  * 'flip' means an horizontal mirroring.
- *
- * Since: 0.10.30
  */
 #define GST_TAG_IMAGE_ORIENTATION            "image-orientation"
 
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index b538c59..80d920c 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -89,35 +89,14 @@
 #define GST_TAG_DATA_LOCK(data) g_mutex_lock(&data->lock)
 #define GST_TAG_DATA_UNLOCK(data) g_mutex_unlock(&data->lock)
 
-GType
-gst_tag_setter_get_type (void)
+G_DEFINE_INTERFACE_WITH_CODE (GstTagSetter, gst_tag_setter, GST_TYPE_ELEMENT,
+    gst_tag_key = g_quark_from_static_string ("gst-tag-setter-data");
+    );
+
+static void
+gst_tag_setter_default_init (GstTagSetterInterface * klass)
 {
-  static volatile gsize tag_setter_type = 0;
-
-  if (g_once_init_enter (&tag_setter_type)) {
-    GType _type;
-    static const GTypeInfo tag_setter_info = {
-      sizeof (GstTagSetterInterface),   /* class_size */
-      NULL,                     /* base_init */
-      NULL,                     /* base_finalize */
-      NULL,
-      NULL,                     /* class_finalize */
-      NULL,                     /* class_data */
-      0,
-      0,
-      NULL
-    };
-
-    _type = g_type_register_static (G_TYPE_INTERFACE, "GstTagSetter",
-        &tag_setter_info, 0);
-
-    g_type_interface_add_prerequisite (_type, GST_TYPE_ELEMENT);
-
-    gst_tag_key = g_quark_from_static_string ("GST_TAG_SETTER");
-    g_once_init_leave (&tag_setter_type, _type);
-  }
-
-  return tag_setter_type;
+  /* nothing to do here, it's a dummy interface */
 }
 
 static void
@@ -167,8 +146,6 @@
  *
  * Reset the internal taglist. Elements should call this from within the
  * state-change handler.
- *
- * Since: 0.10.22
  */
 void
 gst_tag_setter_reset_tags (GstTagSetter * setter)
@@ -334,8 +311,6 @@
  * @value: GValue to set for the tag
  *
  * Adds the given tag / GValue pair on the setter using the given merge mode.
- *
- * Since: 0.10.24
  */
 void
 gst_tag_setter_add_tag_value (GstTagSetter * setter,
diff --git a/gst/gsttask.c b/gst/gsttask.c
index 96c687b..34d4ffb 100644
--- a/gst/gsttask.c
+++ b/gst/gsttask.c
@@ -92,9 +92,13 @@
 struct _GstTaskPrivate
 {
   /* callbacks for managing the thread of this task */
-  GstTaskThreadCallbacks thr_callbacks;
-  gpointer thr_user_data;
-  GDestroyNotify thr_notify;
+  GstTaskThreadFunc enter_func;
+  gpointer enter_user_data;
+  GDestroyNotify enter_notify;
+
+  GstTaskThreadFunc leave_func;
+  gpointer leave_user_data;
+  GDestroyNotify leave_notify;
 
   /* configured pool */
   GstTaskPool *pool;
@@ -203,10 +207,14 @@
 
   GST_DEBUG ("task %p finalize", task);
 
-  if (priv->thr_notify)
-    priv->thr_notify (priv->thr_user_data);
-  priv->thr_notify = NULL;
-  priv->thr_user_data = NULL;
+  if (priv->enter_notify)
+    priv->enter_notify (priv->enter_user_data);
+
+  if (priv->leave_notify)
+    priv->leave_notify (priv->leave_user_data);
+
+  if (task->notify)
+    task->notify (task->user_data);
 
   gst_object_unref (priv->pool);
 
@@ -273,9 +281,9 @@
   task->thread = tself;
   GST_OBJECT_UNLOCK (task);
 
-  /* fire the enter_thread callback when we need to */
-  if (priv->thr_callbacks.enter_thread)
-    priv->thr_callbacks.enter_thread (task, tself, priv->thr_user_data);
+  /* fire the enter_func callback when we need to */
+  if (priv->enter_func)
+    priv->enter_func (task, tself, priv->enter_user_data);
 
   /* locking order is TASK_LOCK, LOCK */
   g_rec_mutex_lock (lock);
@@ -305,7 +313,7 @@
       GST_OBJECT_UNLOCK (task);
     }
 
-    task->func (task->data);
+    task->func (task->user_data);
   }
 done:
   g_rec_mutex_unlock (lock);
@@ -314,11 +322,11 @@
   task->thread = NULL;
 
 exit:
-  if (priv->thr_callbacks.leave_thread) {
-    /* fire the leave_thread callback when we need to. We need to do this before
+  if (priv->leave_func) {
+    /* fire the leave_func callback when we need to. We need to do this before
      * we signal the task and with the task lock released. */
     GST_OBJECT_UNLOCK (task);
-    priv->thr_callbacks.leave_thread (task, tself, priv->thr_user_data);
+    priv->leave_func (task, tself, priv->leave_user_data);
     GST_OBJECT_LOCK (task);
   }
   /* now we allow messing with the lock again by setting the running flag to
@@ -365,10 +373,11 @@
 /**
  * gst_task_new:
  * @func: The #GstTaskFunction to use
- * @data: (closure): User data to pass to @func
+ * @user_data: User data to pass to @func
+ * @notify: the function to call when @user_data is no longer needed.
  *
  * Create a new Task that will repeatedly call the provided @func
- * with @data as a parameter. Typically the task will run in
+ * with @user_data as a parameter. Typically the task will run in
  * a new thread.
  *
  * The function cannot be changed after the task has been created. You
@@ -386,13 +395,14 @@
  * MT safe.
  */
 GstTask *
-gst_task_new (GstTaskFunction func, gpointer data)
+gst_task_new (GstTaskFunction func, gpointer user_data, GDestroyNotify notify)
 {
   GstTask *task;
 
   task = g_object_newv (GST_TYPE_TASK, 0, NULL);
   task->func = func;
-  task->data = data;
+  task->user_data = user_data;
+  task->notify = notify;
 
   GST_DEBUG ("Created task %p", task);
 
@@ -443,8 +453,6 @@
  *
  * Returns: (transfer full): the #GstTaskPool used by @task. gst_object_unref()
  * after usage.
- *
- * Since: 0.10.24
  */
 GstTaskPool *
 gst_task_get_pool (GstTask * task)
@@ -472,8 +480,6 @@
  * will be created by @task will now use @pool.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 void
 gst_task_set_pool (GstTask * task, GstTaskPool * pool)
@@ -498,56 +504,79 @@
     gst_object_unref (old);
 }
 
-
 /**
- * gst_task_set_thread_callbacks:
+ * gst_task_set_enter_callback:
  * @task: The #GstTask to use
- * @callbacks: (in): a #GstTaskThreadCallbacks pointer
- * @user_data: (closure): user data passed to the callbacks
+ * @enter_func: (in): a #GstTaskThreadFunc
+ * @user_data: user data passed to @enter_func
  * @notify: called when @user_data is no longer referenced
  *
- * Set callbacks which will be executed when a new thread is needed, the thread
- * function is entered and left and when the thread is joined.
- *
- * By default a thread for @task will be created from a default thread pool.
- *
- * Objects can use custom GThreads or can perform additional configuration of
- * the threads (such as changing the thread priority) by installing callbacks.
- *
- * MT safe.
- *
- * Since: 0.10.24
+ * Call @enter_func when the task function of @task is entered. @user_data will
+ * be passed to @enter_func and @notify will be called when @user_data is no
+ * longer referenced.
  */
 void
-gst_task_set_thread_callbacks (GstTask * task,
-    GstTaskThreadCallbacks * callbacks, gpointer user_data,
-    GDestroyNotify notify)
+gst_task_set_enter_callback (GstTask * task, GstTaskThreadFunc enter_func,
+    gpointer user_data, GDestroyNotify notify)
 {
   GDestroyNotify old_notify;
 
   g_return_if_fail (task != NULL);
   g_return_if_fail (GST_IS_TASK (task));
-  g_return_if_fail (callbacks != NULL);
 
   GST_OBJECT_LOCK (task);
-  old_notify = task->priv->thr_notify;
+  if ((old_notify = task->priv->enter_notify)) {
+    gpointer old_data = task->priv->enter_user_data;
 
-  if (old_notify) {
-    gpointer old_data;
-
-    old_data = task->priv->thr_user_data;
-
-    task->priv->thr_user_data = NULL;
-    task->priv->thr_notify = NULL;
+    task->priv->enter_user_data = NULL;
+    task->priv->enter_notify = NULL;
     GST_OBJECT_UNLOCK (task);
 
     old_notify (old_data);
 
     GST_OBJECT_LOCK (task);
   }
-  task->priv->thr_callbacks = *callbacks;
-  task->priv->thr_user_data = user_data;
-  task->priv->thr_notify = notify;
+  task->priv->enter_func = enter_func;
+  task->priv->enter_user_data = user_data;
+  task->priv->enter_notify = notify;
+  GST_OBJECT_UNLOCK (task);
+}
+
+/**
+ * gst_task_set_leave_callback:
+ * @task: The #GstTask to use
+ * @leave_func: (in): a #GstTaskThreadFunc
+ * @user_data: user data passed to @leave_func
+ * @notify: called when @user_data is no longer referenced
+ *
+ * Call @leave_func when the task function of @task is left. @user_data will
+ * be passed to @leave_func and @notify will be called when @user_data is no
+ * longer referenced.
+ */
+void
+gst_task_set_leave_callback (GstTask * task, GstTaskThreadFunc leave_func,
+    gpointer user_data, GDestroyNotify notify)
+{
+  GDestroyNotify old_notify;
+
+  g_return_if_fail (task != NULL);
+  g_return_if_fail (GST_IS_TASK (task));
+
+  GST_OBJECT_LOCK (task);
+  if ((old_notify = task->priv->leave_notify)) {
+    gpointer old_data = task->priv->leave_user_data;
+
+    task->priv->leave_user_data = NULL;
+    task->priv->leave_notify = NULL;
+    GST_OBJECT_UNLOCK (task);
+
+    old_notify (old_data);
+
+    GST_OBJECT_LOCK (task);
+  }
+  task->priv->leave_func = leave_func;
+  task->priv->leave_user_data = user_data;
+  task->priv->leave_notify = notify;
   GST_OBJECT_UNLOCK (task);
 }
 
@@ -621,8 +650,6 @@
  * MT safe.
  *
  * Returns: %TRUE if the state could be changed.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_task_set_state (GstTask * task, GstTaskState state)
diff --git a/gst/gsttask.h b/gst/gsttask.h
index 5c1600e..6464d86 100644
--- a/gst/gsttask.h
+++ b/gst/gsttask.h
@@ -30,12 +30,12 @@
 
 /**
  * GstTaskFunction:
- * @data: user data passed to the function
+ * @user_data: user data passed to the function
  *
  * A function that will repeatedly be called in the thread created by
  * a #GstTask.
  */
-typedef void         (*GstTaskFunction)          (void *data);
+typedef void         (*GstTaskFunction)          (gpointer user_data);
 
 /* --- standard type macros --- */
 #define GST_TYPE_TASK                   (gst_task_get_type ())
@@ -110,23 +110,14 @@
 #define GST_TASK_GET_LOCK(task)         (GST_TASK_CAST(task)->lock)
 
 /**
- * GstTaskThreadCallbacks:
- * @enter_thread: a thread is entered, this callback is called when the new
- *   thread enters its function.
- * @leave_thread: a thread is exiting, this is called when the thread is about
- *   to leave its function
+ * GstTaskThreadFunc:
+ * @task: The #GstTask
+ * @thread: The #GThread
+ * @user_data: user data
  *
  * Custom GstTask thread callback functions that can be installed.
- *
- * Since: 0.10.24
  */
-typedef struct {
-  /* manage the lifetime of the thread */
-  void      (*enter_thread)     (GstTask *task, GThread *thread, gpointer user_data);
-  void      (*leave_thread)     (GstTask *task, GThread *thread, gpointer user_data);
-  /*< private >*/
-  gpointer     _gst_reserved[GST_PADDING];
-} GstTaskThreadCallbacks;
+typedef void (*GstTaskThreadFunc) (GstTask *task, GThread *thread, gpointer user_data);
 
 /**
  * GstTask:
@@ -134,7 +125,8 @@
  * @cond: used to pause/resume the task
  * @lock: The lock taken when iterating the task function
  * @func: the function executed by this task
- * @data: data passed to the task function
+ * @user_data: user_data passed to the task function
+ * @notify: GDestroyNotify for @user_data
  * @running: a flag indicating that the task is running
  *
  * The #GstTask object.
@@ -149,7 +141,8 @@
   GRecMutex       *lock;
 
   GstTaskFunction  func;
-  gpointer         data;
+  gpointer         user_data;
+  GDestroyNotify   notify;
 
   gboolean         running;
 
@@ -175,16 +168,22 @@
 
 GType           gst_task_get_type       (void);
 
-GstTask*        gst_task_new            (GstTaskFunction func, gpointer data);
+GstTask*        gst_task_new            (GstTaskFunction func,
+                                         gpointer user_data, GDestroyNotify notify);
+
 void            gst_task_set_lock       (GstTask *task, GRecMutex *mutex);
 
 GstTaskPool *   gst_task_get_pool       (GstTask *task);
 void            gst_task_set_pool       (GstTask *task, GstTaskPool *pool);
 
-void            gst_task_set_thread_callbacks  (GstTask *task,
-                                                GstTaskThreadCallbacks *callbacks,
-                                                gpointer user_data,
-                                                GDestroyNotify notify);
+void            gst_task_set_enter_callback  (GstTask *task,
+                                              GstTaskThreadFunc enter_func,
+                                              gpointer user_data,
+                                              GDestroyNotify notify);
+void            gst_task_set_leave_callback  (GstTask *task,
+                                              GstTaskThreadFunc leave_func,
+                                              gpointer user_data,
+                                              GDestroyNotify notify);
 
 GstTaskState    gst_task_get_state      (GstTask *task);
 gboolean        gst_task_set_state      (GstTask *task, GstTaskState state);
diff --git a/gst/gsttaskpool.c b/gst/gsttaskpool.c
index d5981e6..ba7413b 100644
--- a/gst/gsttaskpool.c
+++ b/gst/gsttaskpool.c
@@ -159,8 +159,6 @@
  * GThreadPool for threads.
  *
  * Returns: (transfer full): a new #GstTaskPool. gst_object_unref() after usage.
- *
- * Since: 0.10.24
  */
 GstTaskPool *
 gst_task_pool_new (void)
@@ -180,8 +178,6 @@
  * Prepare the taskpool for accepting gst_task_pool_push() operations.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 void
 gst_task_pool_prepare (GstTaskPool * pool, GError ** error)
@@ -204,8 +200,6 @@
  * to ensure proper cleanup of internal data structures in test suites.
  *
  * MT safe.
- *
- * Since: 0.10.24
  */
 void
 gst_task_pool_cleanup (GstTaskPool * pool)
@@ -223,17 +217,15 @@
 /**
  * gst_task_pool_push:
  * @pool: a #GstTaskPool
- * @func: the function to call
+ * @func: (scope async): the function to call
  * @user_data: (closure): data to pass to @func
  * @error: return location for an error
  *
  * Start the execution of a new thread from @pool.
  *
- * Returns: a pointer that should be used for the gst_task_pool_join
- * function. This pointer can be NULL, you must check @error to detect
- * errors.
- *
- * Since: 0.10.24
+ * Returns: (transfer none): a pointer that should be used for the
+ * gst_task_pool_join function. This pointer can be NULL, you must
+ * check @error to detect errors.
  */
 gpointer
 gst_task_pool_push (GstTaskPool * pool, GstTaskPoolFunction func,
@@ -265,8 +257,6 @@
  *
  * Join a task and/or return it to the pool. @id is the id obtained from 
  * gst_task_pool_push().
- *
- * Since: 0.10.24
  */
 void
 gst_task_pool_join (GstTaskPool * pool, gpointer id)
diff --git a/gst/gsttaskpool.h b/gst/gsttaskpool.h
index 6f2ac66..4eccbfb 100644
--- a/gst/gsttaskpool.h
+++ b/gst/gsttaskpool.h
@@ -40,13 +40,11 @@
 
 /**
  * GstTaskPoolFunction:
- * @data: user data for the task function
+ * @user_data: user data for the task function
  *
  * Task function, see gst_task_pool_push().
- *
- * Since: 0.10.24
  */
-typedef void   (*GstTaskPoolFunction)          (void *data);
+typedef void   (*GstTaskPoolFunction)          (void *user_data);
 
 /**
  * GstTaskPool:
diff --git a/gst/gsttoc.c b/gst/gsttoc.c
index b79717b..0a15156 100644
--- a/gst/gsttoc.c
+++ b/gst/gsttoc.c
@@ -22,7 +22,7 @@
 /**
  * SECTION:gsttoc
  * @short_description: Generic table of contents support
- * @see_also: #GstStructure, #GstEvent, #GstMessage, #GstQuery, #GstPad
+ * @see_also: #GstStructure, #GstEvent, #GstMessage, #GstQuery
  *
  * #GstToc functions are used to create/free #GstToc and #GstTocEntry structures.
  * Also they are used to convert #GstToc into #GstStructure and vice versa.
@@ -72,135 +72,234 @@
 #include "gstpad.h"
 #include "gstquark.h"
 
-G_DEFINE_BOXED_TYPE (GstToc, gst_toc,
-    (GBoxedCopyFunc) gst_toc_copy, (GBoxedFreeFunc) gst_toc_free);
-G_DEFINE_BOXED_TYPE (GstTocEntry, gst_toc_entry,
-    (GBoxedCopyFunc) gst_toc_entry_copy, (GBoxedFreeFunc) gst_toc_entry_free);
+struct _GstTocEntry
+{
+  GstMiniObject mini_object;
+
+  GstToc *toc;
+  GstTocEntry *parent;
+
+  gchar *uid;
+  GstTocEntryType type;
+  GstClockTime start, stop;
+  GList *subentries;
+  GstTagList *tags;
+};
+
+struct _GstToc
+{
+  GstMiniObject mini_object;
+
+  GstTocScope scope;
+  GList *entries;
+  GstTagList *tags;
+};
+
+#undef gst_toc_copy
+static GstToc *gst_toc_copy (const GstToc * toc);
+static void gst_toc_free (GstToc * toc);
+#undef gst_toc_entry_copy
+static GstTocEntry *gst_toc_entry_copy (const GstTocEntry * toc);
+static void gst_toc_entry_free (GstTocEntry * toc);
+
+GST_DEFINE_MINI_OBJECT_TYPE (GstToc, gst_toc);
+GST_DEFINE_MINI_OBJECT_TYPE (GstTocEntry, gst_toc_entry);
 
 /**
  * gst_toc_new:
+ * @scope: scope of this TOC
  *
- * Create new #GstToc structure.
+ * Create a new #GstToc structure.
  *
- * Returns: newly allocated #GstToc structure, free it with gst_toc_free().
- *
- * Since: 0.10.37
+ * Returns: (transfer full): newly allocated #GstToc structure, free it
+ *     with gst_toc_unref().
  */
 GstToc *
-gst_toc_new (void)
+gst_toc_new (GstTocScope scope)
 {
   GstToc *toc;
 
+  g_return_val_if_fail (scope == GST_TOC_SCOPE_GLOBAL ||
+      scope == GST_TOC_SCOPE_CURRENT, NULL);
+
   toc = g_slice_new0 (GstToc);
+
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (toc), 0, GST_TYPE_TOC,
+      (GstMiniObjectCopyFunction) gst_toc_copy, NULL,
+      (GstMiniObjectFreeFunction) gst_toc_free);
+
+  toc->scope = scope;
   toc->tags = gst_tag_list_new_empty ();
-  toc->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
 
   return toc;
 }
 
 /**
+ * gst_toc_get_scope:
+ * @toc: a #GstToc instance
+ *
+ * Returns: scope of @toc
+ */
+GstTocScope
+gst_toc_get_scope (const GstToc * toc)
+{
+  g_return_val_if_fail (toc != NULL, GST_TOC_SCOPE_GLOBAL);
+
+  return toc->scope;
+}
+
+/**
+ * gst_toc_set_tags:
+ * @toc: A #GstToc instance
+ * @tags: (allow-none) (transfer full): A #GstTagList or %NULL
+ *
+ * Set a #GstTagList with tags for the complete @toc.
+ */
+void
+gst_toc_set_tags (GstToc * toc, GstTagList * tags)
+{
+  g_return_if_fail (toc != NULL);
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (toc)));
+
+  if (toc->tags)
+    gst_tag_list_unref (toc->tags);
+  toc->tags = tags;
+}
+
+/**
+ * gst_toc_merge_tags:
+ * @toc: A #GstToc instance
+ * @tags: (allow-none): A #GstTagList or %NULL
+ * @mode: A #GstTagMergeMode
+ *
+ * Merge @tags into the existing tags of @toc using @mode.
+ */
+void
+gst_toc_merge_tags (GstToc * toc, GstTagList * tags, GstTagMergeMode mode)
+{
+  g_return_if_fail (toc != NULL);
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (toc)));
+
+  if (!toc->tags) {
+    toc->tags = gst_tag_list_ref (tags);
+  } else {
+    GstTagList *tmp = gst_tag_list_merge (toc->tags, tags, mode);
+    gst_tag_list_unref (toc->tags);
+    toc->tags = tmp;
+  }
+}
+
+/**
+ * gst_toc_get_tags:
+ * @toc: A #GstToc instance
+ *
+ * Gets the tags for @toc.
+ *
+ * Returns: (transfer none): A #GstTagList for @entry
+ */
+GstTagList *
+gst_toc_get_tags (const GstToc * toc)
+{
+  g_return_val_if_fail (toc != NULL, NULL);
+
+  return toc->tags;
+}
+
+/**
+ * gst_toc_append_entry:
+ * @toc: A #GstToc instance
+ * @entry: (transfer full): A #GstTocEntry
+ *
+ * Appends the #GstTocEntry @entry to @toc.
+ */
+void
+gst_toc_append_entry (GstToc * toc, GstTocEntry * entry)
+{
+  g_return_if_fail (toc != NULL);
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (toc)));
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (entry)));
+  g_return_if_fail (entry->toc == NULL);
+  g_return_if_fail (entry->parent == NULL);
+
+  toc->entries = g_list_append (toc->entries, entry);
+  entry->toc = toc;
+
+  GST_LOG ("appended %s entry with uid %s to toc %p",
+      gst_toc_entry_type_get_nick (entry->type), entry->uid, toc);
+
+  gst_toc_dump (toc);
+}
+
+/**
+ * gst_toc_get_entries:
+ * @toc: A #GstToc instance
+ *
+ * Gets the list of #GstTocEntry of @toc.
+ *
+ * Returns: (transfer none) (element-type Gst.TocEntry): A #GList of #GstTocEntry for @entry
+ */
+GList *
+gst_toc_get_entries (const GstToc * toc)
+{
+  g_return_val_if_fail (toc != NULL, NULL);
+
+  return toc->entries;
+}
+
+static GstTocEntry *
+gst_toc_entry_new_internal (GstTocEntryType type, const gchar * uid)
+{
+  GstTocEntry *entry;
+
+  entry = g_slice_new0 (GstTocEntry);
+
+  gst_mini_object_init (GST_MINI_OBJECT_CAST (entry), 0, GST_TYPE_TOC_ENTRY,
+      (GstMiniObjectCopyFunction) gst_toc_entry_copy, NULL,
+      (GstMiniObjectFreeFunction) gst_toc_entry_free);
+
+  entry->uid = g_strdup (uid);
+  entry->type = type;
+  entry->tags = NULL;
+  entry->start = entry->stop = GST_CLOCK_TIME_NONE;
+
+  return entry;
+}
+
+/**
  * gst_toc_entry_new:
  * @type: entry type.
  * @uid: unique ID (UID) in the whole TOC.
  *
  * Create new #GstTocEntry structure.
  *
- * Returns: newly allocated #GstTocEntry structure, free it with gst_toc_entry_free().
- *
- * Since: 0.10.37
+ * Returns: newly allocated #GstTocEntry structure, free it with gst_toc_entry_unref().
  */
 GstTocEntry *
 gst_toc_entry_new (GstTocEntryType type, const gchar * uid)
 {
-  GstTocEntry *entry;
-
   g_return_val_if_fail (uid != NULL, NULL);
 
-  entry = g_slice_new0 (GstTocEntry);
-  entry->uid = g_strdup (uid);
-  entry->type = type;
-  entry->tags = gst_tag_list_new_empty ();
-  entry->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
-
-  return entry;
+  return gst_toc_entry_new_internal (type, uid);
 }
 
-/**
- * gst_toc_entry_new_with_pad:
- * @type: entry type.
- * @uid: unique ID (UID) in the whole TOC.
- * @pad: #GstPad related to this entry.
- *
- * Create new #GstTocEntry structure with #GstPad related.
- *
- * Returns: newly allocated #GstTocEntry structure, free it with gst_toc_entry_free()
- * when done.
- *
- * Since: 0.10.37
- */
-GstTocEntry *
-gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar * uid,
-    GstPad * pad)
-{
-  GstTocEntry *entry;
-
-  g_return_val_if_fail (uid != NULL, NULL);
-
-  entry = g_slice_new0 (GstTocEntry);
-  entry->uid = g_strdup (uid);
-  entry->type = type;
-  entry->tags = gst_tag_list_new_empty ();
-  entry->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
-
-  if (pad != NULL && GST_IS_PAD (pad))
-    entry->pads = g_list_append (entry->pads, gst_object_ref (pad));
-
-  return entry;
-}
-
-/**
- * gst_toc_free:
- * @toc: #GstToc structure to free.
- *
- * Free unused #GstToc structure.
- *
- * Since: 0.10.37
- */
-void
+static void
 gst_toc_free (GstToc * toc)
 {
-  g_return_if_fail (toc != NULL);
-
-  g_list_foreach (toc->entries, (GFunc) gst_toc_entry_free, NULL);
+  g_list_foreach (toc->entries, (GFunc) gst_mini_object_unref, NULL);
   g_list_free (toc->entries);
 
   if (toc->tags != NULL)
     gst_tag_list_unref (toc->tags);
 
-  if (toc->info != NULL)
-    gst_structure_free (toc->info);
-
   g_slice_free (GstToc, toc);
 }
 
-/**
- * gst_toc_entry_free:
- * @entry: #GstTocEntry structure to free.
- *
- * Free unused #GstTocEntry structure. Note that #GstTocEntry.uid will
- * be freed with g_free() and all #GstPad objects in the #GstTocEntry.pads
- * list will be unrefed with gst_object_unref().
- *
- * Since: 0.10.37
- */
-void
+static void
 gst_toc_entry_free (GstTocEntry * entry)
 {
-  GList *cur;
-
   g_return_if_fail (entry != NULL);
 
-  g_list_foreach (entry->subentries, (GFunc) gst_toc_entry_free, NULL);
+  g_list_foreach (entry->subentries, (GFunc) gst_mini_object_unref, NULL);
   g_list_free (entry->subentries);
 
   g_free (entry->uid);
@@ -208,448 +307,33 @@
   if (entry->tags != NULL)
     gst_tag_list_unref (entry->tags);
 
-  if (entry->info != NULL)
-    gst_structure_free (entry->info);
-
-  cur = entry->pads;
-  while (cur != NULL) {
-    if (GST_IS_PAD (cur->data))
-      gst_object_unref (cur->data);
-    cur = cur->next;
-  }
-
-  g_list_free (entry->pads);
-
   g_slice_free (GstTocEntry, entry);
 }
 
-static GstStructure *
-gst_toc_structure_new (GstTagList * tags, GstStructure * info)
-{
-  GstStructure *ret;
-
-  ret = gst_structure_new_id_empty (GST_QUARK (TOC));
-
-  if (tags != NULL) {
-    gst_structure_id_set (ret, GST_QUARK (TAGS), GST_TYPE_TAG_LIST, tags, NULL);
-  }
-
-  if (info != NULL) {
-    gst_structure_id_set (ret, GST_QUARK (INFO), GST_TYPE_STRUCTURE, info,
-        NULL);
-  }
-
-  return ret;
-}
-
-static GstStructure *
-gst_toc_entry_structure_new (GstTocEntryType type, const gchar * uid,
-    GstTagList * tags, GstStructure * info)
-{
-  GstStructure *ret;
-
-  ret = gst_structure_new_id_empty (GST_QUARK (TOC_ENTRY));
-
-  gst_structure_id_set (ret, GST_QUARK (TYPE), GST_TYPE_TOC_ENTRY_TYPE, type,
-      NULL);
-  gst_structure_id_set (ret, GST_QUARK (UID), G_TYPE_STRING, uid, NULL);
-
-  if (tags != NULL) {
-    gst_structure_id_set (ret, GST_QUARK (TAGS), GST_TYPE_TAG_LIST, tags, NULL);
-  }
-
-  if (info != NULL) {
-    gst_structure_id_set (ret, GST_QUARK (INFO), GST_TYPE_STRUCTURE, info,
-        NULL);
-  }
-
-  return ret;
-}
-
-static guint
-gst_toc_entry_structure_n_subentries (const GstStructure * entry)
-{
-  if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
-              GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)))
-    return 0;
-  else
-    return gst_value_array_get_size ((gst_structure_id_get_value (entry,
-                GST_QUARK (SUB_ENTRIES))));
-}
-
-static const GstStructure *
-gst_toc_entry_structure_nth_subentry (const GstStructure * entry, guint nth)
-{
-  guint count;
-  const GValue *array;
-
-  count = gst_toc_entry_structure_n_subentries (entry);
-
-  if (count < nth)
-    return NULL;
-
-  if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
-              GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)))
-    return NULL;
-  else {
-    array =
-        gst_value_array_get_value (gst_structure_id_get_value (entry,
-            GST_QUARK (SUB_ENTRIES)), nth);
-    return gst_value_get_structure (array);
-  }
-}
-
 static GstTocEntry *
-gst_toc_entry_from_structure (const GstStructure * entry, guint level)
+gst_toc_entry_find_sub_entry (const GstTocEntry * entry, const gchar * uid)
 {
-  GstTocEntry *ret, *subentry;
-  const GValue *val;
-  const GstStructure *subentry_struct;
-  GstTagList *list;
-  GstStructure *st;
-  gint count, i;
-  const gchar *uid;
-  guint chapters_count = 0, editions_count = 0;
-
-  g_return_val_if_fail (entry != NULL, NULL);
-  g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
-          GST_QUARK (UID), G_TYPE_STRING), NULL);
-  g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
-          GST_QUARK (TYPE), GST_TYPE_TOC_ENTRY_TYPE), NULL);
-
-  val = gst_structure_id_get_value (entry, GST_QUARK (UID));
-  uid = g_value_get_string (val);
-
-  ret = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, uid);
-
-  gst_structure_get_enum (entry, g_quark_to_string (GST_QUARK (TYPE)),
-      GST_TYPE_TOC_ENTRY_TYPE, (gint *) & (ret->type));
-
-  if (gst_structure_id_has_field_typed (entry,
-          GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)) {
-    count = gst_toc_entry_structure_n_subentries (entry);
-
-    for (i = 0; i < count; ++i) {
-      subentry_struct = gst_toc_entry_structure_nth_subentry (entry, i);
-      subentry = gst_toc_entry_from_structure (subentry_struct, level + 1);
-
-      /* skip empty editions */
-      if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
-              && subentry->subentries == NULL)) {
-        g_warning
-            ("Empty edition found while deserializing TOC from GstStructure, skipping");
-        continue;
-      }
-
-      if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
-        ++editions_count;
-      else
-        ++chapters_count;
-
-      /* check for mixed content */
-      if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
-        g_critical
-            ("Mixed editions and chapters in the TOC contents, the TOC is broken");
-        gst_toc_entry_free (subentry);
-        gst_toc_entry_free (ret);
-        return NULL;
-      }
-
-      if (G_UNLIKELY (subentry == NULL)) {
-        gst_toc_entry_free (ret);
-        return NULL;
-      }
-
-      ret->subentries = g_list_prepend (ret->subentries, subentry);
-    }
-
-    ret->subentries = g_list_reverse (ret->subentries);
-  }
-
-  if (gst_structure_id_has_field_typed (entry, GST_QUARK (TAGS),
-          GST_TYPE_TAG_LIST)) {
-    val = gst_structure_id_get_value (entry, GST_QUARK (TAGS));
-
-    if (G_LIKELY (GST_IS_TAG_LIST (g_value_get_boxed (val)))) {
-      list = gst_tag_list_copy (GST_TAG_LIST (g_value_get_boxed (val)));
-      gst_tag_list_unref (ret->tags);
-      ret->tags = list;
-    }
-  }
-
-  if (gst_structure_id_has_field_typed (entry,
-          GST_QUARK (INFO), GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (entry, GST_QUARK (INFO));
-
-    if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
-      st = gst_structure_copy (gst_value_get_structure (val));
-      gst_structure_free (ret->info);
-      ret->info = st;
-    }
-  }
-
-  return ret;
-}
-
-GstToc *
-__gst_toc_from_structure (const GstStructure * toc)
-{
-  GstToc *ret;
-  GstTocEntry *subentry;
-  const GstStructure *subentry_struct;
-  const GValue *val;
-  GstTagList *list;
-  GstStructure *st;
-  guint count, i;
-  guint editions_count = 0, chapters_count = 0;
-
-  g_return_val_if_fail (toc != NULL, NULL);
-
-  ret = gst_toc_new ();
-
-  if (gst_structure_id_has_field_typed (toc,
-          GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)) {
-    count = gst_toc_entry_structure_n_subentries (toc);
-
-    for (i = 0; i < count; ++i) {
-      subentry_struct = gst_toc_entry_structure_nth_subentry (toc, i);
-      subentry = gst_toc_entry_from_structure (subentry_struct, 0);
-
-      /* skip empty editions */
-      if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
-              && subentry->subentries == NULL)) {
-        g_warning
-            ("Empty edition found while deserializing TOC from GstStructure, skipping");
-        continue;
-      }
-
-      /* check for success */
-      if (G_UNLIKELY (subentry == NULL)) {
-        g_critical ("Couldn't serialize deserializing TOC from GstStructure");
-        gst_toc_free (ret);
-        return NULL;
-      }
-
-      if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
-        ++editions_count;
-      else
-        ++chapters_count;
-
-      /* check for mixed content */
-      if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
-        g_critical
-            ("Mixed editions and chapters in the TOC contents, the TOC is broken");
-        gst_toc_entry_free (subentry);
-        gst_toc_free (ret);
-        return NULL;
-      }
-
-      ret->entries = g_list_prepend (ret->entries, subentry);
-    }
-
-    ret->entries = g_list_reverse (ret->entries);
-  }
-
-  if (gst_structure_id_has_field_typed (toc, GST_QUARK (TAGS),
-          GST_TYPE_TAG_LIST)) {
-    val = gst_structure_id_get_value (toc, GST_QUARK (TAGS));
-
-    if (G_LIKELY (GST_IS_TAG_LIST (g_value_get_boxed (val)))) {
-      list = gst_tag_list_copy (GST_TAG_LIST (g_value_get_boxed (val)));
-      gst_tag_list_unref (ret->tags);
-      ret->tags = list;
-    }
-  }
-
-  if (gst_structure_id_has_field_typed (toc,
-          GST_QUARK (INFO), GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (toc, GST_QUARK (INFO));
-
-    if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
-      st = gst_structure_copy (gst_value_get_structure (val));
-      gst_structure_free (ret->info);
-      ret->info = st;
-    }
-  }
-
-  if (G_UNLIKELY (ret->entries == NULL)) {
-    gst_toc_free (ret);
-    return NULL;
-  }
-
-  return ret;
-}
-
-static GstStructure *
-gst_toc_entry_to_structure (const GstTocEntry * entry, guint level)
-{
-  GstStructure *ret, *subentry_struct;
-  GstTocEntry *subentry;
   GList *cur;
-  GValue subentries_val = { 0 };
-  GValue entry_val = { 0 };
-  guint chapters_count = 0, editions_count = 0;
+  GstTocEntry *subentry, *subsubentry;
 
   g_return_val_if_fail (entry != NULL, NULL);
-
-  ret =
-      gst_toc_entry_structure_new (entry->type, entry->uid, entry->tags,
-      entry->info);
-
-  g_value_init (&subentries_val, GST_TYPE_ARRAY);
-  g_value_init (&entry_val, GST_TYPE_STRUCTURE);
+  g_return_val_if_fail (uid != NULL, NULL);
 
   cur = entry->subentries;
   while (cur != NULL) {
     subentry = cur->data;
 
-    if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
-      ++editions_count;
-    else
-      ++chapters_count;
+    if (g_strcmp0 (subentry->uid, uid) == 0)
+      return subentry;
 
-    /* check for mixed content */
-    if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
-      g_critical
-          ("Mixed editions and chapters in the TOC contents, the TOC is broken");
-      gst_structure_free (ret);
-      g_value_unset (&entry_val);
-      g_value_unset (&subentries_val);
-      return NULL;
-    }
-
-    /* skip empty editions */
-    if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
-            && subentry->subentries == NULL)) {
-      g_warning
-          ("Empty edition found while serializing TOC to GstStructure, skipping");
-      cur = cur->next;
-      continue;
-    }
-
-    subentry_struct = gst_toc_entry_to_structure (subentry, level + 1);
-
-    /* check for success */
-    if (G_UNLIKELY (subentry_struct == NULL)) {
-      gst_structure_free (ret);
-      g_value_unset (&subentries_val);
-      g_value_unset (&entry_val);
-      return NULL;
-    }
-
-    /* skip empty editions */
-    if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
-            && subentry->subentries == NULL)) {
-      g_warning
-          ("Empty edition found while serializing TOC to GstStructure, skipping");
-      cur = cur->next;
-      continue;
-    }
-
-    gst_value_set_structure (&entry_val, subentry_struct);
-    gst_value_array_append_value (&subentries_val, &entry_val);
-    gst_structure_free (subentry_struct);
+    subsubentry = gst_toc_entry_find_sub_entry (subentry, uid);
+    if (subsubentry != NULL)
+      return subsubentry;
 
     cur = cur->next;
   }
 
-  gst_structure_id_set_value (ret, GST_QUARK (SUB_ENTRIES), &subentries_val);
-
-  g_value_unset (&subentries_val);
-  g_value_unset (&entry_val);
-  return ret;
-}
-
-GstStructure *
-__gst_toc_to_structure (const GstToc * toc)
-{
-  GValue val = { 0 };
-  GValue subentries_val = { 0 };
-  GstStructure *ret, *subentry_struct;
-  GstTocEntry *subentry;
-  GList *cur;
-  guint editions_count = 0, chapters_count = 0;
-
-  g_return_val_if_fail (toc != NULL, NULL);
-  g_return_val_if_fail (toc->entries != NULL, NULL);
-
-  ret = gst_toc_structure_new (toc->tags, toc->info);
-
-  g_value_init (&val, GST_TYPE_STRUCTURE);
-  g_value_init (&subentries_val, GST_TYPE_ARRAY);
-  cur = toc->entries;
-
-  while (cur != NULL) {
-    subentry = cur->data;
-
-    if (subentry->type == GST_TOC_ENTRY_TYPE_EDITION)
-      ++editions_count;
-    else
-      ++chapters_count;
-
-    /* check for mixed content */
-    if (G_UNLIKELY (chapters_count > 0 && editions_count > 0)) {
-      g_critical
-          ("Mixed editions and chapters in the TOC contents, the TOC is broken");
-      gst_structure_free (ret);
-      g_value_unset (&val);
-      g_value_unset (&subentries_val);
-      return NULL;
-    }
-
-    /* skip empty editions */
-    if (G_UNLIKELY (subentry->type == GST_TOC_ENTRY_TYPE_EDITION
-            && subentry->subentries == NULL)) {
-      g_warning
-          ("Empty edition found while serializing TOC to GstStructure, skipping");
-      cur = cur->next;
-      continue;
-    }
-
-    subentry_struct = gst_toc_entry_to_structure (subentry, 0);
-
-    /* check for success */
-    if (G_UNLIKELY (subentry_struct == NULL)) {
-      g_critical ("Couldn't serialize TOC to GstStructure");
-      gst_structure_free (ret);
-      g_value_unset (&val);
-      g_value_unset (&subentries_val);
-      return NULL;
-    }
-
-    gst_value_set_structure (&val, subentry_struct);
-    gst_value_array_append_value (&subentries_val, &val);
-    gst_structure_free (subentry_struct);
-
-    cur = cur->next;
-  }
-
-  gst_structure_id_set_value (ret, GST_QUARK (SUB_ENTRIES), &subentries_val);
-
-  g_value_unset (&val);
-  g_value_unset (&subentries_val);
-  return ret;
-}
-
-static gboolean
-gst_toc_check_entry_for_uid (const GstTocEntry * entry, const gchar * uid)
-{
-  GList *cur;
-
-  g_return_val_if_fail (entry != NULL, FALSE);
-  g_return_val_if_fail (uid != NULL, FALSE);
-
-  if (g_strcmp0 (entry->uid, uid) == 0)
-    return TRUE;
-
-  cur = entry->subentries;
-  while (cur != NULL) {
-    if (gst_toc_check_entry_for_uid (cur->data, uid))
-      return TRUE;
-    cur = cur->next;
-  }
-
-  return FALSE;
+  return NULL;
 }
 
 /**
@@ -659,22 +343,27 @@
  *
  * Find #GstTocEntry with given @uid in the @toc.
  *
- * Returns: #GstTocEntry with specified @uid from the @toc, or NULL if not found.
- *
- * Since: 0.10.37
+ * Returns: (transfer none): #GstTocEntry with specified @uid from the @toc, or NULL if not found.
  */
 GstTocEntry *
 gst_toc_find_entry (const GstToc * toc, const gchar * uid)
 {
   GList *cur;
+  GstTocEntry *entry, *subentry;
 
   g_return_val_if_fail (toc != NULL, NULL);
   g_return_val_if_fail (uid != NULL, NULL);
 
   cur = toc->entries;
   while (cur != NULL) {
-    if (gst_toc_check_entry_for_uid (cur->data, uid))
-      return cur->data;
+    entry = cur->data;
+
+    if (g_strcmp0 (entry->uid, uid) == 0)
+      return entry;
+
+    subentry = gst_toc_entry_find_sub_entry (entry, uid);
+    if (subentry != NULL)
+      return subentry;
     cur = cur->next;
   }
 
@@ -688,42 +377,29 @@
  * Copy #GstTocEntry with all subentries (deep copy).
  *
  * Returns: newly allocated #GstTocEntry in case of success, NULL otherwise;
- * free it when done with gst_toc_entry_free().
- *
- * Since: 0.10.37
+ * free it when done with gst_toc_entry_unref().
  */
-GstTocEntry *
+static GstTocEntry *
 gst_toc_entry_copy (const GstTocEntry * entry)
 {
   GstTocEntry *ret, *sub;
-  GList *cur;
   GstTagList *list;
-  GstStructure *st;
+  GList *cur;
 
   g_return_val_if_fail (entry != NULL, NULL);
 
   ret = gst_toc_entry_new (entry->type, entry->uid);
 
-  if (GST_IS_STRUCTURE (entry->info)) {
-    st = gst_structure_copy (entry->info);
-    gst_structure_free (ret->info);
-    ret->info = st;
-  }
+  ret->start = entry->start;
+  ret->stop = entry->stop;
 
   if (GST_IS_TAG_LIST (entry->tags)) {
     list = gst_tag_list_copy (entry->tags);
-    gst_tag_list_unref (ret->tags);
+    if (ret->tags)
+      gst_tag_list_unref (ret->tags);
     ret->tags = list;
   }
 
-  cur = entry->pads;
-  while (cur != NULL) {
-    if (GST_IS_PAD (cur->data))
-      ret->pads = g_list_prepend (ret->pads, gst_object_ref (cur->data));
-    cur = cur->next;
-  }
-  ret->pads = g_list_reverse (ret->pads);
-
   cur = entry->subentries;
   while (cur != NULL) {
     sub = gst_toc_entry_copy (cur->data);
@@ -746,27 +422,18 @@
  *
  * Returns: newly allocated #GstToc in case of success, NULL otherwise;
  * free it when done with gst_toc_free().
- *
- * Since: 0.10.37
  */
-GstToc *
+static GstToc *
 gst_toc_copy (const GstToc * toc)
 {
   GstToc *ret;
   GstTocEntry *entry;
   GList *cur;
   GstTagList *list;
-  GstStructure *st;
 
   g_return_val_if_fail (toc != NULL, NULL);
 
-  ret = gst_toc_new ();
-
-  if (GST_IS_STRUCTURE (toc->info)) {
-    st = gst_structure_copy (toc->info);
-    gst_structure_free (ret->info);
-    ret->info = st;
-  }
+  ret = gst_toc_new (toc->scope);
 
   if (GST_IS_TAG_LIST (toc->tags)) {
     list = gst_tag_list_copy (toc->tags);
@@ -784,49 +451,29 @@
     cur = cur->next;
   }
   ret->entries = g_list_reverse (ret->entries);
-
   return ret;
 }
 
 /**
- * gst_toc_entry_set_start_stop:
+ * gst_toc_entry_set_start_stop_times:
  * @entry: #GstTocEntry to set values.
  * @start: start value to set.
  * @stop: stop value to set.
  *
  * Set @start and @stop values for the @entry.
- *
- * Since: 0.10.37
  */
 void
-gst_toc_entry_set_start_stop (GstTocEntry * entry, gint64 start, gint64 stop)
+gst_toc_entry_set_start_stop_times (GstTocEntry * entry, gint64 start,
+    gint64 stop)
 {
-  const GValue *val;
-  GstStructure *structure = NULL;
-
   g_return_if_fail (entry != NULL);
-  g_return_if_fail (GST_IS_STRUCTURE (entry->info));
 
-  if (gst_structure_id_has_field_typed (entry->info, GST_QUARK (TIME),
-          GST_TYPE_STRUCTURE)) {
-    val = gst_structure_id_get_value (entry->info, GST_QUARK (TIME));
-    structure = gst_structure_copy (gst_value_get_structure (val));
-  }
-
-  if (structure == NULL)
-    structure = gst_structure_new_id_empty (GST_QUARK (TIME_STRUCTURE));
-
-  gst_structure_id_set (structure, GST_QUARK (START),
-      G_TYPE_INT64, start, GST_QUARK (STOP), G_TYPE_INT64, stop, NULL);
-
-  gst_structure_id_set (entry->info, GST_QUARK (TIME),
-      GST_TYPE_STRUCTURE, structure, NULL);
-
-  gst_structure_free (structure);
+  entry->start = start;
+  entry->stop = stop;
 }
 
 /**
- * gst_toc_entry_get_start_stop:
+ * gst_toc_entry_get_start_stop_times:
  * @entry: #GstTocEntry to get values from.
  * @start: (out): the storage for the start value, leave #NULL if not need.
  * @stop: (out): the storage for the stop value, leave #NULL if not need.
@@ -835,46 +482,19 @@
  *
  * Returns: TRUE if all non-NULL storage pointers were filled with appropriate values,
  * FALSE otherwise.
- *
- * Since: 0.10.37
  */
 gboolean
-gst_toc_entry_get_start_stop (const GstTocEntry * entry, gint64 * start,
+gst_toc_entry_get_start_stop_times (const GstTocEntry * entry, gint64 * start,
     gint64 * stop)
 {
   gboolean ret = TRUE;
-  const GValue *val;
-  const GstStructure *structure;
 
   g_return_val_if_fail (entry != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_STRUCTURE (entry->info), FALSE);
 
-  if (!gst_structure_id_has_field_typed (entry->info,
-          GST_QUARK (TIME), GST_TYPE_STRUCTURE))
-    return FALSE;
-
-  val = gst_structure_id_get_value (entry->info, GST_QUARK (TIME));
-  structure = gst_value_get_structure (val);
-
-  if (start != NULL) {
-    if (gst_structure_id_has_field_typed (structure,
-            GST_QUARK (START), G_TYPE_INT64))
-      *start =
-          g_value_get_int64 (gst_structure_id_get_value (structure,
-              GST_QUARK (START)));
-    else
-      ret = FALSE;
-  }
-
-  if (stop != NULL) {
-    if (gst_structure_id_has_field_typed (structure,
-            GST_QUARK (STOP), G_TYPE_INT64))
-      *stop =
-          g_value_get_int64 (gst_structure_id_get_value (structure,
-              GST_QUARK (STOP)));
-    else
-      ret = FALSE;
-  }
+  if (start != NULL)
+    *start = entry->start;
+  if (stop != NULL)
+    *stop = entry->stop;
 
   return ret;
 }
@@ -885,67 +505,252 @@
  *
  * Converts @type to a string representation.
  *
- * Returns: Returns the human-readable @type. Can be NULL if an error occurred.
- * Since: 0.11.92
+ * Returns: Returns a human-readable string for @type. This string is
+ *    only for debugging purpose and should not be displayed in a user
+ *    interface.
  */
 const gchar *
 gst_toc_entry_type_get_nick (GstTocEntryType type)
 {
-  const gchar *entry_types[] = { "chapter", "edition" };
-
-  g_return_val_if_fail ((gint) type >= 0
-      && (gint) type < G_N_ELEMENTS (entry_types), NULL);
-  return entry_types[type];
+  switch (type) {
+    case GST_TOC_ENTRY_TYPE_ANGLE:
+      return "angle";
+    case GST_TOC_ENTRY_TYPE_VERSION:
+      return "version";
+    case GST_TOC_ENTRY_TYPE_EDITION:
+      return "edition";
+    case GST_TOC_ENTRY_TYPE_TITLE:
+      return "title";
+    case GST_TOC_ENTRY_TYPE_TRACK:
+      return "track";
+    case GST_TOC_ENTRY_TYPE_CHAPTER:
+      return "chapter";
+    default:
+      break;
+  }
+  return "invalid";
 }
 
+/**
+ * gst_toc_entry_get_entry_type:
+ * @entry: a #GstTocEntry
+ *
+ * Returns: @entry's entry type
+ */
+GstTocEntryType
+gst_toc_entry_get_entry_type (const GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, GST_TOC_ENTRY_TYPE_INVALID);
+
+  return entry->type;
+}
+
+/**
+ * gst_toc_entry_is_alternative:
+ * @entry: a #GstTocEntry
+ *
+ * Returns: %TRUE if @entry's type is an alternative type, otherwise %FALSE
+ */
 gboolean
-__gst_toc_structure_get_updated (const GstStructure * toc)
+gst_toc_entry_is_alternative (const GstTocEntry * entry)
 {
-  const GValue *val;
+  g_return_val_if_fail (entry != NULL, FALSE);
 
-  g_return_val_if_fail (GST_IS_STRUCTURE (toc), FALSE);
-
-  if (G_LIKELY (gst_structure_id_has_field_typed (toc,
-              GST_QUARK (UPDATED), G_TYPE_BOOLEAN))) {
-    val = gst_structure_id_get_value (toc, GST_QUARK (UPDATED));
-    return g_value_get_boolean (val);
-  }
-
-  return FALSE;
+  return GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE (entry->type);
 }
 
+/**
+ * gst_toc_entry_is_sequence:
+ * @entry: a #GstTocEntry
+ *
+ * Returns: %TRUE if @entry's type is a sequence type, otherwise %FALSE
+ */
+gboolean
+gst_toc_entry_is_sequence (const GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, FALSE);
+
+  return GST_TOC_ENTRY_TYPE_IS_SEQUENCE (entry->type);
+}
+
+/**
+ * gst_toc_entry_get_uid:
+ * @entry: A #GstTocEntry instance
+ *
+ * Gets the UID of @entry.
+ *
+ * Returns: (transfer none): The UID of @entry
+ */
+const gchar *
+gst_toc_entry_get_uid (const GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  return entry->uid;
+}
+
+/**
+ * gst_toc_entry_append_sub_entry:
+ * @entry: A #GstTocEntry instance
+ * @subentry: (transfer full): A #GstTocEntry
+ *
+ * Appends the #GstTocEntry @subentry to @entry.
+ */
+void
+gst_toc_entry_append_sub_entry (GstTocEntry * entry, GstTocEntry * subentry)
+{
+  g_return_if_fail (entry != NULL);
+  g_return_if_fail (subentry != NULL);
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (entry)));
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST
+          (subentry)));
+  g_return_if_fail (subentry->toc == NULL);
+  g_return_if_fail (subentry->parent == NULL);
+
+  entry->subentries = g_list_append (entry->subentries, subentry);
+  subentry->toc = entry->toc;
+  subentry->parent = entry;
+
+  GST_LOG ("appended %s subentry with uid %s to entry %s",
+      gst_toc_entry_type_get_nick (subentry->type), subentry->uid, entry->uid);
+}
+
+/**
+ * gst_toc_entry_get_uid:
+ * @entry: A #GstTocEntry instance
+ *
+ * Gets the sub-entries of @entry.
+ *
+ * Returns: (transfer none) (element-type Gst.TocEntry): A #GList of #GstTocEntry of @entry
+ */
+GList *
+gst_toc_entry_get_sub_entries (const GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  return entry->subentries;
+}
+
+/**
+ * gst_toc_entry_set_tags:
+ * @entry: A #GstTocEntry instance
+ * @tags: (allow-none) (transfer full): A #GstTagList or %NULL
+ *
+ * Set a #GstTagList with tags for the complete @entry.
+ */
+void
+gst_toc_entry_set_tags (GstTocEntry * entry, GstTagList * tags)
+{
+  g_return_if_fail (entry != NULL);
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (entry)));
+
+  if (entry->tags)
+    gst_tag_list_unref (entry->tags);
+  entry->tags = tags;
+}
+
+/**
+ * gst_toc_entry_merge_tags:
+ * @entry: A #GstTocEntry instance
+ * @tags: (allow-none): A #GstTagList or %NULL
+ * @mode: A #GstTagMergeMode
+ *
+ * Merge @tags into the existing tags of @entry using @mode.
+ */
+void
+gst_toc_entry_merge_tags (GstTocEntry * entry, GstTagList * tags,
+    GstTagMergeMode mode)
+{
+  g_return_if_fail (entry != NULL);
+  g_return_if_fail (gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (entry)));
+
+  if (!entry->tags) {
+    entry->tags = gst_tag_list_ref (tags);
+  } else {
+    GstTagList *tmp = gst_tag_list_merge (entry->tags, tags, mode);
+    gst_tag_list_unref (entry->tags);
+    entry->tags = tmp;
+  }
+}
+
+/**
+ * gst_toc_entry_get_tags:
+ * @entry: A #GstTocEntry instance
+ *
+ * Gets the tags for @entry.
+ *
+ * Returns: (transfer none): A #GstTagList for @entry
+ */
+GstTagList *
+gst_toc_entry_get_tags (const GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  return entry->tags;
+}
+
+/**
+ * gst_toc_entry_get_toc:
+ * @entry: A #GstTocEntry instance
+ *
+ * Gets the parent #GstToc of @entry.
+ *
+ * Returns: (transfer none): The parent #GstToc of @entry
+ */
+GstToc *
+gst_toc_entry_get_toc (GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  return entry->toc;
+}
+
+/**
+ * gst_toc_entry_get_parent:
+ * @entry: A #GstTocEntry instance
+ *
+ * Gets the parent #GstTocEntry of @entry.
+ *
+ * Returns: (transfer none): The parent #GstTocEntry of @entry
+ */
+GstTocEntry *
+gst_toc_entry_get_parent (GstTocEntry * entry)
+{
+  g_return_val_if_fail (entry != NULL, NULL);
+
+  return entry->parent;
+}
+
+#ifndef GST_DISABLE_GST_DEBUG
+static void
+gst_toc_dump_entries (GList * entries, guint depth)
+{
+  GList *e;
+  gchar *indent;
+
+  indent = g_malloc0 (depth + 1);
+  memset (indent, ' ', depth);
+  for (e = entries; e != NULL; e = e->next) {
+    GstTocEntry *entry = e->data;
+
+    GST_TRACE ("%s+ %s (%s), %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT ", "
+        "tags: %" GST_PTR_FORMAT, indent, entry->uid,
+        gst_toc_entry_type_get_nick (entry->type),
+        GST_TIME_ARGS (entry->start), GST_TIME_ARGS (entry->stop), entry->tags);
+
+    if (entry->subentries != NULL)
+      gst_toc_dump_entries (entry->subentries, depth + 2);
+  }
+  g_free (indent);
+}
+#endif
+
 void
-__gst_toc_structure_set_updated (GstStructure * toc, gboolean updated)
+gst_toc_dump (GstToc * toc)
 {
-  g_return_if_fail (toc != NULL);
-
-  gst_structure_id_set (toc, GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated,
-      NULL);
-}
-
-gchar *
-__gst_toc_structure_get_extend_uid (const GstStructure * toc)
-{
-  const GValue *val;
-
-  g_return_val_if_fail (GST_IS_STRUCTURE (toc), NULL);
-
-  if (G_LIKELY (gst_structure_id_has_field_typed (toc,
-              GST_QUARK (EXTEND_UID), G_TYPE_STRING))) {
-    val = gst_structure_id_get_value (toc, GST_QUARK (EXTEND_UID));
-    return g_strdup (g_value_get_string (val));
-  }
-
-  return NULL;
-}
-
-void
-__gst_toc_structure_set_extend_uid (GstStructure * toc,
-    const gchar * extend_uid)
-{
-  g_return_if_fail (toc != NULL);
-  g_return_if_fail (extend_uid != NULL);
-
-  gst_structure_id_set (toc, GST_QUARK (EXTEND_UID), G_TYPE_STRING, extend_uid,
-      NULL);
+#ifndef GST_DISABLE_GST_DEBUG
+  GST_TRACE ("        Toc %p, scope: %s, tags: %" GST_PTR_FORMAT, toc,
+      (toc->scope == GST_TOC_SCOPE_GLOBAL) ? "global" : "current", toc->tags);
+  gst_toc_dump_entries (toc->entries, 2);
+#endif
 }
diff --git a/gst/gsttoc.h b/gst/gsttoc.h
index d59cf84..9439cca 100644
--- a/gst/gsttoc.h
+++ b/gst/gsttoc.h
@@ -23,6 +23,7 @@
 #define __GST_TOC_H__
 
 #include <gst/gstconfig.h>
+#include <gst/gstminiobject.h>
 #include <gst/gststructure.h>
 #include <gst/gsttaglist.h>
 #include <gst/gstformat.h>
@@ -36,83 +37,104 @@
 typedef struct _GstToc GstToc;
 
 /**
- * GstTocEntryType:
- * @GST_TOC_ENTRY_TYPE_CHAPTER: a chapter type entry.
- * @GST_TOC_ENTRY_TYPE_EDITION: an edition entry (angle or alternative in other terms).
+ * GstTocScope:
+ * @GST_TOC_SCOPE_GLOBAL: global TOC representing all selectable options
+ *     (this is what applications are usually interested in)
+ * @GST_TOC_SCOPE_CURRENT: TOC for the currently active/selected stream
+ *     (this is a TOC representing the current stream from start to EOS,
+ *     and is what a TOC writer / muxer is usually interested in; it will
+ *     usually be a subset of the global TOC, e.g. just the chapters of
+ *     the current title, or the chapters selected for playback from the
+ *     current title)
  *
- * The different types of TOC entry.
+ * The scope of a TOC.
  */
 typedef enum {
-  GST_TOC_ENTRY_TYPE_CHAPTER     = 0,
-  GST_TOC_ENTRY_TYPE_EDITION     = 1
+  GST_TOC_SCOPE_GLOBAL = 1,
+  GST_TOC_SCOPE_CURRENT = 2
+} GstTocScope;
+
+/**
+ * GstTocEntryType:
+ * @GST_TOC_ENTRY_TYPE_ANGLE: entry is an angle (i.e. an alternative)
+ * @GST_TOC_ENTRY_TYPE_VERSION: entry is a version (i.e. alternative)
+ * @GST_TOC_ENTRY_TYPE_EDITION: entry is an edition (i.e. alternative)
+ * @GST_TOC_ENTRY_TYPE_INVALID: invalid entry type value
+ * @GST_TOC_ENTRY_TYPE_TITLE: entry is a title (i.e. a part of a sequence)
+ * @GST_TOC_ENTRY_TYPE_TRACK: entry is a track (i.e. a part of a sequence)
+ * @GST_TOC_ENTRY_TYPE_CHAPTER: entry is a chapter (i.e. a part of a sequence)
+ *
+ * The different types of TOC entries (see #GstTocEntry).
+ *
+ * There are two types of TOC entries: alternatives or parts in a sequence.
+ */
+typedef enum {
+  GST_TOC_ENTRY_TYPE_ANGLE       = -3,
+  GST_TOC_ENTRY_TYPE_VERSION     = -2,
+  GST_TOC_ENTRY_TYPE_EDITION     = -1,
+  GST_TOC_ENTRY_TYPE_INVALID     = 0,
+  GST_TOC_ENTRY_TYPE_TITLE       = 1,
+  GST_TOC_ENTRY_TYPE_TRACK       = 2,
+  GST_TOC_ENTRY_TYPE_CHAPTER     = 3,
 } GstTocEntryType;
 
-/**
- * GstTocEntry:
- * @uid: unique (for a whole TOC) id of the entry. This value should be persistent and
- * should not be changed while updating TOC. @uid should be handled as "opaque" value
- * without meaning (e.g. applications should not assume the /editionX/chapterY/chapter/Z structure,
- * other demuxers could do something else), it should help to track updates of certain entries.
- * @type: #GstTocEntryType of this entry.
- * @subentries: list of #GstTocEntry children.
- * @pads: list of #GstPad objects, related to this #GstTocEntry.
- * @tags: tags related to this entry.
- * @info: extra information related to this entry.
- *
- * Definition of TOC entry structure.
- */
-struct _GstTocEntry {
-  gchar *uid;
-  GstTocEntryType type;
-  GList *subentries;
-  GList *pads;
-  GstTagList *tags;
-  GstStructure *info;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
-
-/* FIXME: pad member should be GstPad type, but that's
- * impossible due to recursive includes */
-
-/**
- * GstToc:
- * @entries: list of #GstTocEntry entries of the TOC.
- * @tags: tags related to the whole TOC.
- * @info: extra information related to the TOC.
- *
- * Definition of TOC structure.
- */
-struct _GstToc {
-  GList *entries;
-  GstTagList *tags;
-  GstStructure *info;
-
-  /*< private >*/
-  gpointer _gst_reserved[GST_PADDING];
-};
+#define GST_TOC_ENTRY_TYPE_IS_ALTERNATIVE(entry_type)  (entry_type < 0)
+#define GST_TOC_ENTRY_TYPE_IS_SEQUENCE(entry_type)     (entry_type > 0)
 
 /* functions to return type structures */
 GType           gst_toc_get_type                (void);
 GType           gst_toc_entry_get_type          (void);
 
-/* functions to create new structures */
-GstToc *        gst_toc_new                     (void);
+/* functions to create, ref and unref/free TOCs */
+GstToc *           gst_toc_new                     (GstTocScope scope);
+
+GstTocScope        gst_toc_get_scope               (const GstToc *toc);
+
+void               gst_toc_set_tags                (GstToc *toc, GstTagList * tags);
+void               gst_toc_merge_tags              (GstToc *toc, GstTagList *tags, GstTagMergeMode mode);
+GstTagList *       gst_toc_get_tags                (const GstToc *toc);
+
+void               gst_toc_append_entry               (GstToc *toc, GstTocEntry *entry);
+GList *            gst_toc_get_entries             (const GstToc *toc);
+
+void               gst_toc_dump                    (GstToc *toc);
+
+#define gst_toc_ref(toc)            (GstToc*)gst_mini_object_ref(GST_MINI_OBJECT_CAST(toc))
+#define gst_toc_unref(toc)          gst_mini_object_unref(GST_MINI_OBJECT_CAST(toc))
+#define gst_toc_copy(toc)           (GstToc*)gst_mini_object_copy(GST_MINI_OBJECT_CAST(toc))
+#define gst_toc_make_writable(toc)  (GstToc*)gst_mini_object_make_writable(GST_MINI_OBJECT_CAST(toc))
+
+/* functions to create, ref and unref/free TOC entries */
 GstTocEntry *   gst_toc_entry_new               (GstTocEntryType type, const gchar *uid);
-GstTocEntry *   gst_toc_entry_new_with_pad      (GstTocEntryType type, const gchar *uid, GstPad * pad);
 
-/* functions to free structures */
-void            gst_toc_entry_free              (GstTocEntry *entry);
-void            gst_toc_free                    (GstToc *toc);
+#define gst_toc_entry_ref(entry)            (GstTocEntry*)gst_mini_object_ref(GST_MINI_OBJECT_CAST(entry))
+#define gst_toc_entry_unref(entry)          gst_mini_object_unref(GST_MINI_OBJECT_CAST(entry))
+#define gst_toc_entry_copy(entry)           (GstTocEntry*)gst_mini_object_copy(GST_MINI_OBJECT_CAST(entry))
+#define gst_toc_entry_make_writable(entry)  (GstTocEntry*)gst_mini_object_make_writable(GST_MINI_OBJECT_CAST(entry))
 
-GstTocEntry *   gst_toc_find_entry              (const GstToc *toc, const gchar *uid);
-GstTocEntry *   gst_toc_entry_copy              (const GstTocEntry *entry);
-GstToc      *   gst_toc_copy                    (const GstToc *toc);
+GstTocEntry *      gst_toc_find_entry                    (const GstToc *toc, const gchar *uid);
 
-void            gst_toc_entry_set_start_stop    (GstTocEntry *entry, gint64 start, gint64 stop);
-gboolean        gst_toc_entry_get_start_stop    (const GstTocEntry *entry, gint64 *start, gint64 *stop);
-const gchar *   gst_toc_entry_type_get_nick     (GstTocEntryType type);
+GstTocEntryType    gst_toc_entry_get_entry_type          (const GstTocEntry *entry);
+const gchar *      gst_toc_entry_get_uid                 (const GstTocEntry *entry);
+
+void               gst_toc_entry_append_sub_entry           (GstTocEntry *entry, GstTocEntry *subentry);
+GList *            gst_toc_entry_get_sub_entries         (const GstTocEntry *entry);
+
+void               gst_toc_entry_set_tags                (GstTocEntry *entry, GstTagList *tags);
+void               gst_toc_entry_merge_tags              (GstTocEntry *entry, GstTagList *tags, GstTagMergeMode mode);
+GstTagList *       gst_toc_entry_get_tags                (const GstTocEntry *entry);
+
+gboolean           gst_toc_entry_is_alternative          (const GstTocEntry *entry);
+gboolean           gst_toc_entry_is_sequence             (const GstTocEntry *entry);
+
+void               gst_toc_entry_set_start_stop_times    (GstTocEntry *entry, gint64 start, gint64 stop);
+gboolean           gst_toc_entry_get_start_stop_times    (const GstTocEntry *entry, gint64 *start, gint64 *stop);
+
+GstToc *           gst_toc_entry_get_toc                 (GstTocEntry *entry);
+GstTocEntry *      gst_toc_entry_get_parent              (GstTocEntry *entry);
+
+
+const gchar *      gst_toc_entry_type_get_nick     (GstTocEntryType type);
 
 G_END_DECLS
 
diff --git a/gst/gsttocsetter.c b/gst/gsttocsetter.c
index 85bbaa2..2721b51 100644
--- a/gst/gsttocsetter.c
+++ b/gst/gsttocsetter.c
@@ -50,58 +50,30 @@
 #include <gobject/gvaluecollector.h>
 #include <string.h>
 
-GST_DEBUG_CATEGORY_STATIC (gst_toc_interface_debug);
-#define GST_CAT_DEFAULT tag_toc_interface_debug
-
 static GQuark gst_toc_key;
 
+G_DEFINE_INTERFACE_WITH_CODE (GstTocSetter, gst_toc_setter, GST_TYPE_ELEMENT,
+    gst_toc_key = g_quark_from_static_string ("gst-toc-setter-data"););
+
+static void
+gst_toc_setter_default_init (GstTocSetterInterface * klass)
+{
+  /* nothing to do here, it's a dummy interface */
+}
+
 typedef struct
 {
   GstToc *toc;
   GMutex lock;
 } GstTocData;
 
-GType
-gst_toc_setter_get_type (void)
-{
-  static volatile gsize toc_setter_type = 0;
-
-  if (g_once_init_enter (&toc_setter_type)) {
-    GType _type;
-    static const GTypeInfo toc_setter_info = {
-      sizeof (GstTocSetterIFace),       /* class_size */
-      NULL,                     /* base_init */
-      NULL,                     /* base_finalize */
-      NULL,
-      NULL,                     /* class_finalize */
-      NULL,                     /* class_data */
-      0,
-      0,
-      NULL
-    };
-
-    GST_DEBUG_CATEGORY_INIT (gst_toc_interface_debug, "GstTocInterface", 0,
-        "interfaces for the TOC");
-
-    _type = g_type_register_static (G_TYPE_INTERFACE, "GstTocSetter",
-        &toc_setter_info, 0);
-
-    g_type_interface_add_prerequisite (_type, GST_TYPE_ELEMENT);
-
-    gst_toc_key = g_quark_from_static_string ("GST_TOC_SETTER");
-    g_once_init_leave (&toc_setter_type, _type);
-  }
-
-  return toc_setter_type;
-}
-
 static void
 gst_toc_data_free (gpointer p)
 {
   GstTocData *data = (GstTocData *) p;
 
   if (data->toc)
-    gst_toc_free (data->toc);
+    gst_toc_unref (data->toc);
 
   g_mutex_clear (&data->lock);
 
@@ -134,29 +106,18 @@
 }
 
 /**
- * gst_toc_setter_reset_toc:
+ * gst_toc_setter_reset:
  * @setter: a #GstTocSetter.
  *
  * Reset the internal TOC. Elements should call this from within the
  * state-change handler.
- *
- * Since: 0.10.37
  */
 void
-gst_toc_setter_reset_toc (GstTocSetter * setter)
+gst_toc_setter_reset (GstTocSetter * setter)
 {
-  GstTocData *data;
-
   g_return_if_fail (GST_IS_TOC_SETTER (setter));
 
-  data = gst_toc_setter_get_data (setter);
-
-  g_mutex_lock (&data->lock);
-  if (data->toc) {
-    gst_toc_free (data->toc);
-    data->toc = NULL;
-  }
-  g_mutex_unlock (&data->lock);
+  gst_toc_setter_set_toc (setter, NULL);
 }
 
 /**
@@ -164,39 +125,14 @@
  * @setter: a #GstTocSetter.
  *
  * Return current TOC the setter uses. The TOC should not be
- * modified or freed.
+ * modified without making it writable first.
  *
- * This function is not thread-safe. Use gst_toc_setter_get_toc_copy() instead.
  *
- * Returns: a current snapshot of the TOC used in the setter
- *          or NULL if none is used.
- *
- * Since: 0.10.37
- */
-const GstToc *
-gst_toc_setter_get_toc (GstTocSetter * setter)
-{
-  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
-
-  return gst_toc_setter_get_data (setter)->toc;
-}
-
-/**
- * gst_toc_setter_get_toc_copy:
- * @setter: a #GstTocSetter.
- *
- * Return current TOC the setter uses. The difference between this
- * function and gst_toc_setter_get_toc() is that this function returns deep
- * copy of the TOC, so you can modify it in any way. This function is thread-safe.
- * Free it when done with gst_toc_free().
- *
- * Returns: a copy of the current snapshot of the TOC used in the setter
- *          or NULL if none is used.
- *
- * Since: 0.10.37
+ * Returns: (transfer full): TOC set, or NULL. Unref with gst_toc_unref()
+ *     when no longer needed
  */
 GstToc *
-gst_toc_setter_get_toc_copy (GstTocSetter * setter)
+gst_toc_setter_get_toc (GstTocSetter * setter)
 {
   GstTocData *data;
   GstToc *ret = NULL;
@@ -207,7 +143,7 @@
   g_mutex_lock (&data->lock);
 
   if (data->toc != NULL)
-    ret = gst_toc_copy (data->toc);
+    ret = gst_toc_ref (data->toc);
 
   g_mutex_unlock (&data->lock);
 
@@ -217,15 +153,13 @@
 /**
  * gst_toc_setter_set_toc:
  * @setter: a #GstTocSetter.
- * @toc: a #GstToc to set.
+ * @toc: (allow-none): a #GstToc to set.
  *
  * Set the given TOC on the setter. Previously setted TOC will be
- * freed before setting a new one.
- *
- * Since: 0.10.37
+ * unrefed before setting a new one.
  */
 void
-gst_toc_setter_set_toc (GstTocSetter * setter, const GstToc * toc)
+gst_toc_setter_set_toc (GstTocSetter * setter, GstToc * toc)
 {
   GstTocData *data;
 
@@ -234,129 +168,13 @@
   data = gst_toc_setter_get_data (setter);
 
   g_mutex_lock (&data->lock);
-  if (data->toc)
-    gst_toc_free (data->toc);
 
-  data->toc = gst_toc_copy (toc);
+  if (data->toc != toc) {
+    if (data->toc)
+      gst_toc_unref (data->toc);
 
-  g_mutex_unlock (&data->lock);
-}
-
-/**
- * gst_toc_setter_get_toc_entry:
- * @setter: a #GstTocSetter.
- * @uid: UID to find entry with.
- *
- * Return #GstTocEntry (if any) with given @uid. Returned entry should
- * not be modified or freed.
- *
- * This function is not thread-safe. Use gst_toc_setter_get_toc_entry_copy() instead.
- *
- * Returns: a TOC entry with given @uid from the TOC in the setter
- *          or NULL if none entry with such @uid was found.
- *
- * Since: 0.10.37
- */
-const GstTocEntry *
-gst_toc_setter_get_toc_entry (GstTocSetter * setter, const gchar * uid)
-{
-  GstTocData *data;
-  const GstTocEntry *ret;
-
-  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
-  g_return_val_if_fail (uid != NULL, NULL);
-
-  data = gst_toc_setter_get_data (setter);
-
-  g_mutex_lock (&data->lock);
-
-  ret = gst_toc_find_entry (data->toc, uid);
-
-  g_mutex_unlock (&data->lock);
-
-  return ret;
-}
-
-/**
- * gst_toc_setter_get_toc_entry_copy:
- * @setter: a #GstTocSetter.
- * @uid: UID to find entry with.
- *
- * Return #GstTocEntry (if any) with given @uid. It perform a deep copying,
- * so you can modify returned value. Free it when done with gst_toc_entry_free().
- * This function is thread-safe.
- *
- * Returns: a TOC entry with given @uid from the TOC in the setter
- *          or NULL if none entry with such @uid was found.
- *
- * Since: 0.10.37
- */
-GstTocEntry *
-gst_toc_setter_get_toc_entry_copy (GstTocSetter * setter, const gchar * uid)
-{
-  GstTocData *data;
-  GstTocEntry *ret = NULL;
-  const GstTocEntry *search;
-
-  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), NULL);
-  g_return_val_if_fail (uid != NULL, NULL);
-
-  data = gst_toc_setter_get_data (setter);
-
-  g_mutex_lock (&data->lock);
-
-  search = gst_toc_find_entry (data->toc, uid);
-  if (search != NULL)
-    ret = gst_toc_entry_copy (search);
-
-  g_mutex_unlock (&data->lock);
-
-  return ret;
-}
-
-/**
- * gst_toc_setter_add_toc_entry:
- * @setter: a #GstTocSetter.
- * @parent_uid: UID of the parent entry to append given @entry. Use 0 for the TOC root level.
- * @entry: #GstTocEntry to append.
- *
- * Try to find entry with given @parent_uid and append an @entry to that #GstTocEntry.
- *
- * Returns: TRUE if entry with @parent_uid was found, FALSE otherwise.
- *
- * Since: 0.10.37
- */
-gboolean
-gst_toc_setter_add_toc_entry (GstTocSetter * setter, const gchar * parent_uid,
-    const GstTocEntry * entry)
-{
-  GstTocData *data;
-  GstTocEntry *parent;
-  GstTocEntry *copy_entry;
-  gboolean ret = FALSE;
-
-  g_return_val_if_fail (GST_IS_TOC_SETTER (setter), FALSE);
-  g_return_val_if_fail (parent_uid != NULL, FALSE);
-  g_return_val_if_fail (entry != NULL, FALSE);
-
-  data = gst_toc_setter_get_data (setter);
-
-  g_mutex_lock (&data->lock);
-
-  copy_entry = gst_toc_entry_copy (entry);
-
-  if (g_strcmp0 (parent_uid, "0") == 0)
-    data->toc->entries = g_list_append (data->toc->entries, copy_entry);
-  else {
-    parent = gst_toc_find_entry (data->toc, parent_uid);
-
-    if (parent != NULL) {
-      parent->subentries = g_list_append (parent->subentries, copy_entry);
-      ret = TRUE;
-    }
+    data->toc = (toc) ? gst_toc_ref (toc) : NULL;
   }
 
   g_mutex_unlock (&data->lock);
-
-  return ret;
 }
diff --git a/gst/gsttocsetter.h b/gst/gsttocsetter.h
index 2174e0d..9c59fa5 100644
--- a/gst/gsttocsetter.h
+++ b/gst/gsttocsetter.h
@@ -25,26 +25,27 @@
 #include <gst/gst.h>
 
 G_BEGIN_DECLS
-#define GST_TYPE_TOC_SETTER		        (gst_toc_setter_get_type ())
-#define GST_TOC_SETTER(obj)		        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TOC_SETTER, GstTocSetter))
-#define GST_IS_TOC_SETTER(obj)		    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TOC_SETTER))
-#define GST_TOC_SETTER_GET_IFACE(obj)	(G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TOC_SETTER, GstTocSetterIFace))
+
+#define GST_TYPE_TOC_SETTER              (gst_toc_setter_get_type ())
+#define GST_TOC_SETTER(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TOC_SETTER, GstTocSetter))
+#define GST_IS_TOC_SETTER(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TOC_SETTER))
+#define GST_TOC_SETTER_GET_IFACE(obj)    (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GST_TYPE_TOC_SETTER, GstTocSetterInterface))
 /**
  * GstTocSetter:
  *
  * Opaque #GstTocSetter data structure.
  */
 typedef struct _GstTocSetter GstTocSetter;
-typedef struct _GstTocSetterIFace GstTocSetterIFace;
+typedef struct _GstTocSetterInterface GstTocSetterInterface;
 
 /**
- * GstTocSetterIFace:
+ * GstTocSetterInterface:
  * @g_iface: parent interface type.
  *
- * #GstTocSetterIFace interface.
+ * #GstTocSetterInterface interface.
  */
 
-struct _GstTocSetterIFace
+struct _GstTocSetterInterface
 {
   GTypeInterface g_iface;
 
@@ -53,15 +54,15 @@
   /* virtual table */
 };
 
-GType               gst_toc_setter_get_type (void);
-void                gst_toc_setter_reset_toc (GstTocSetter *setter);
-const GstToc *      gst_toc_setter_get_toc (GstTocSetter *setter);
-GstToc *            gst_toc_setter_get_toc_copy (GstTocSetter *setter);
-void                gst_toc_setter_set_toc (GstTocSetter *setter, const GstToc *toc);
-const GstTocEntry * gst_toc_setter_get_toc_entry (GstTocSetter *setter, const gchar *uid);
-GstTocEntry *       gst_toc_setter_get_toc_entry_copy (GstTocSetter *setter, const gchar *uid);
-gboolean            gst_toc_setter_add_toc_entry (GstTocSetter *setter, const gchar *parent_uid, const GstTocEntry *entry);
+GType         gst_toc_setter_get_type (void);
+
+void          gst_toc_setter_reset   (GstTocSetter *setter);
+
+GstToc *      gst_toc_setter_get_toc (GstTocSetter *setter);
+
+void          gst_toc_setter_set_toc (GstTocSetter *setter, GstToc *toc);
 
 G_END_DECLS
+
 #endif /* __GST_TOC_SETTER_H__ */
 
diff --git a/gst/gsttrace.c b/gst/gsttrace.c
index d4fd262..1d28c7e 100644
--- a/gst/gsttrace.c
+++ b/gst/gsttrace.c
@@ -165,8 +165,8 @@
 
         if (type == GST_TYPE_CAPS) {
           extra = gst_caps_to_string (data);
-          refcount = GST_MINI_OBJECT_REFCOUNT_VALUE (data);
         }
+        refcount = GST_MINI_OBJECT_REFCOUNT_VALUE (data);
       }
 
       if (extra) {
diff --git a/gst/gsttrace.h b/gst/gsttrace.h
index ca70a83..9cbf210 100644
--- a/gst/gsttrace.h
+++ b/gst/gsttrace.h
@@ -30,7 +30,7 @@
 
 /**
  * GstAllocTraceFlags:
- * @GST_ALLOC_TRACE_NONE: No tracing specified or desired. Since 0.10.36.
+ * @GST_ALLOC_TRACE_NONE: No tracing specified or desired.
  * @GST_ALLOC_TRACE_LIVE: Trace number of non-freed memory.
  * @GST_ALLOC_TRACE_MEM_LIVE: Trace pointers of unfreed memory.
  *
diff --git a/gst/gsttypefind.c b/gst/gsttypefind.c
index 24c4730..302cca8 100644
--- a/gst/gsttypefind.c
+++ b/gst/gsttypefind.c
@@ -42,8 +42,7 @@
 
 /**
  * gst_type_find_register:
- * @plugin: A #GstPlugin, or NULL for a static typefind function (note that
- *    passing NULL only works in GStreamer 0.10.16 and later)
+ * @plugin: A #GstPlugin, or NULL for a static typefind function
  * @name: The name for registering
  * @rank: The rank (or importance) of this typefind function
  * @func: The #GstTypeFindFunction to use
@@ -178,8 +177,6 @@
  * the values passed have the correct type (in terms of width in bytes when
  * passed to the vararg function - this applies particularly to gdouble and
  * guint64 arguments).
- *
- * Since: 0.10.20
  */
 void
 gst_type_find_suggest_simple (GstTypeFind * find, guint probability,
diff --git a/gst/gsttypefind.h b/gst/gsttypefind.h
index 9e66b6d..0a987e4 100644
--- a/gst/gsttypefind.h
+++ b/gst/gsttypefind.h
@@ -36,15 +36,15 @@
 /**
  * GstTypeFindFunction:
  * @find: A #GstTypeFind structure
- * @data: optionnal data to pass to the function
+ * @user_data: optionnal data to pass to the function
  *
  * A function that will be called by typefinding.
  */
-typedef void (* GstTypeFindFunction) (GstTypeFind *find, gpointer data);
+typedef void (* GstTypeFindFunction) (GstTypeFind *find, gpointer user_data);
 
 /**
  * GstTypeFindProbability:
- * @GST_TYPE_FIND_NONE: type undetected. Since 0.10.36.
+ * @GST_TYPE_FIND_NONE: type undetected.
  * @GST_TYPE_FIND_MINIMUM: unlikely typefind.
  * @GST_TYPE_FIND_POSSIBLE: possible type detected.
  * @GST_TYPE_FIND_LIKELY: likely a type was detected.
diff --git a/gst/gsttypefindfactory.c b/gst/gsttypefindfactory.c
index c8f9d60..26424d1 100644
--- a/gst/gsttypefindfactory.c
+++ b/gst/gsttypefindfactory.c
@@ -144,7 +144,7 @@
  * list using gst_plugin_feature_list_free().
  *
  * The returned factories are sorted by highest rank first, and then by
- * factory name. (behaviour change since 0.10.26)
+ * factory name.
  *
  * Free-function: gst_plugin_feature_list_free
  *
diff --git a/gst/gsturi.c b/gst/gsturi.c
index 90e7461..b51bd4a 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -42,6 +42,7 @@
 #endif
 
 #include "gst_private.h"
+#include "gst.h"
 #include "gsturi.h"
 #include "gstinfo.h"
 #include "gstregistry.h"
@@ -313,7 +314,7 @@
 
   gst_uri_protocol_check_internal (protocol, &endptr);
 
-  return *endptr == '\0' && ((gsize) (endptr - protocol)) >= 3;
+  return *endptr == '\0' && ((gsize) (endptr - protocol)) >= 2;
 }
 
 /**
@@ -334,7 +335,7 @@
 
   gst_uri_protocol_check_internal (uri, &endptr);
 
-  return *endptr == ':' && ((gsize) (endptr - uri)) >= 3;
+  return *endptr == ':' && ((gsize) (endptr - uri)) >= 2;
 }
 
 /**
@@ -367,8 +368,6 @@
  * Checks if the protocol of a given valid URI matches @protocol.
  *
  * Returns: %TRUE if the protocol matches.
- *
- * Since: 0.10.4
  */
 gboolean
 gst_uri_has_protocol (const gchar * uri, const gchar * protocol)
@@ -398,9 +397,9 @@
  *
  * Free-function: g_free
  *
- * Returns: (transfer full) (array zero-terminated=1): the location for this
- *     URI. Returns NULL if the URI isn't valid. If the URI does not contain
- *     a location, an empty string is returned.
+ * Returns: (transfer full): the location for this URI. Returns NULL if the
+ *     URI isn't valid. If the URI does not contain a location, an empty
+ *     string is returned.
  */
 gchar *
 gst_uri_get_location (const gchar * uri)
@@ -439,15 +438,14 @@
 /**
  * gst_uri_construct:
  * @protocol: Protocol for URI
- * @location: (array zero-terminated=1) (transfer none): Location for URI
+ * @location: (transfer none): Location for URI
  *
  * Constructs a URI for a given valid protocol and location.
  *
  * Free-function: g_free
  *
- * Returns: (transfer full) (array zero-terminated=1): a new string for this
- *     URI. Returns NULL if the given URI protocol is not valid, or the given
- *     location is NULL.
+ * Returns: (transfer full): a new string for this URI. Returns NULL if the
+ *     given URI protocol is not valid, or the given location is NULL.
  */
 gchar *
 gst_uri_construct (const gchar * protocol, const gchar * location)
@@ -538,8 +536,6 @@
  * gst_element_make_from_uri() is guaranteed to work.
  *
  * Returns: TRUE
- *
- * Since: 0.10.13
 */
 gboolean
 gst_uri_protocol_is_supported (const GstURIType type, const gchar * protocol)
@@ -562,6 +558,7 @@
  * @type: Whether to create a source or a sink
  * @uri: URI to create an element for
  * @elementname: (allow-none): Name of created element, can be NULL.
+ * @error: (allow-none): address where to store error information, or NULL.
  *
  * Creates an element for handling the given URI.
  *
@@ -569,38 +566,55 @@
  */
 GstElement *
 gst_element_make_from_uri (const GstURIType type, const gchar * uri,
-    const gchar * elementname)
+    const gchar * elementname, GError ** error)
 {
   GList *possibilities, *walk;
   gchar *protocol;
   GstElement *ret = NULL;
 
+  g_return_val_if_fail (gst_is_initialized (), NULL);
   g_return_val_if_fail (GST_URI_TYPE_IS_VALID (type), NULL);
   g_return_val_if_fail (gst_uri_is_valid (uri), NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
 
   GST_DEBUG ("type:%d, uri:%s, elementname:%s", type, uri, elementname);
 
   protocol = gst_uri_get_protocol (uri);
   possibilities = get_element_factories_from_uri_protocol (type, protocol);
-  g_free (protocol);
 
   if (!possibilities) {
     GST_DEBUG ("No %s for URI '%s'", type == GST_URI_SINK ? "sink" : "source",
         uri);
+    /* The error message isn't great, but we don't expect applications to
+     * show that error to users, but call the missing plugins functions */
+    g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_UNSUPPORTED_PROTOCOL,
+        _("No URI handler for the %s protocol found"), protocol);
+    g_free (protocol);
     return NULL;
   }
+  g_free (protocol);
 
   possibilities = g_list_sort (possibilities, (GCompareFunc) sort_by_rank);
   walk = possibilities;
   while (walk) {
-    if ((ret =
-            gst_element_factory_create (GST_ELEMENT_FACTORY_CAST (walk->data),
-                elementname)) != NULL) {
+    GstElementFactory *factory = walk->data;
+    GError *uri_err = NULL;
+
+    ret = gst_element_factory_create (factory, elementname);
+    if (ret != NULL) {
       GstURIHandler *handler = GST_URI_HANDLER (ret);
 
-      if (gst_uri_handler_set_uri (handler, uri, NULL))
+      if (gst_uri_handler_set_uri (handler, uri, &uri_err))
         break;
-      GST_WARNING ("element %s didn't accept the URI", GST_ELEMENT_NAME (ret));
+
+      GST_WARNING ("%s didn't accept URI '%s': %s", GST_OBJECT_NAME (ret), uri,
+          uri_err->message);
+
+      if (error != NULL && *error == NULL)
+        g_propagate_error (error, uri_err);
+      else
+        g_error_free (uri_err);
+
       gst_object_unref (ret);
       ret = NULL;
     }
@@ -610,6 +624,11 @@
 
   GST_LOG_OBJECT (ret, "created %s for URL '%s'",
       type == GST_URI_SINK ? "sink" : "source", uri);
+
+  /* if the first handler didn't work, but we found another one that works */
+  if (ret != NULL)
+    g_clear_error (error);
+
   return ret;
 }
 
@@ -647,9 +666,9 @@
  * Gets the list of protocols supported by @handler. This list may not be
  * modified.
  *
- * Returns: (transfer none) (array zero-terminated=1) (element-type utf8): the
- *     supported protocols. Returns NULL if the @handler isn't implemented
- *     properly, or the @handler doesn't support any protocols.
+ * Returns: (transfer none) (element-type utf8): the supported protocols.
+ *     Returns NULL if the @handler isn't implemented properly, or the @handler
+ *     doesn't support any protocols.
  */
 const gchar *const *
 gst_uri_handler_get_protocols (GstURIHandler * handler)
@@ -741,7 +760,7 @@
       }
 
       if (!found_protocol) {
-        g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_BAD_PROTOCOL,
+        g_set_error (error, GST_URI_ERROR, GST_URI_ERROR_UNSUPPORTED_PROTOCOL,
             _("URI scheme '%s' not supported"), protocol);
         g_free (protocol);
         return FALSE;
@@ -830,8 +849,6 @@
  * will be canonicalised so that it doesn't contain any './' or '../' segments.
  *
  * On Windows #filename should be in UTF-8 encoding.
- *
- * Since: 0.10.33
  */
 gchar *
 gst_filename_to_uri (const gchar * filename, GError ** error)
diff --git a/gst/gsturi.h b/gst/gsturi.h
index 539bbcb..d140c3d 100644
--- a/gst/gsturi.h
+++ b/gst/gsturi.h
@@ -40,7 +40,7 @@
 
 /**
  * GstURIError:
- * @GST_URI_ERROR_BAD_PROTOCOL: The protocol is not supported
+ * @GST_URI_ERROR_UNSUPPORTED_PROTOCOL: The protocol is not supported
  * @GST_URI_ERROR_BAD_URI: There was a problem with the URI
  * @GST_URI_ERROR_BAD_STATE: Could not set or change the URI because the
  *     URI handler was in a state where that is not possible or not permitted
@@ -51,7 +51,7 @@
  */
 typedef enum
 {
-  GST_URI_ERROR_BAD_PROTOCOL,
+  GST_URI_ERROR_UNSUPPORTED_PROTOCOL,
   GST_URI_ERROR_BAD_URI,
   GST_URI_ERROR_BAD_STATE,
   GST_URI_ERROR_BAD_REFERENCE
@@ -138,7 +138,8 @@
 
 GstElement *    gst_element_make_from_uri       (const GstURIType type,
                                                  const gchar *    uri,
-                                                 const gchar *    elementname) G_GNUC_MALLOC;
+                                                 const gchar *    elementname,
+                                                 GError      **   error) G_GNUC_MALLOC;
 
 /* accessing the interface */
 GType                 gst_uri_handler_get_type (void);
diff --git a/gst/gstutils.c b/gst/gstutils.c
index 5c15341..d94ec7c 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -697,8 +697,6 @@
  * Returns: A constantly incrementing 32-bit unsigned integer, which might
  * overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
  * you handle wraparound correctly.
- *
- * Since: 0.10.22
  */
 guint32
 gst_util_seqnum_next (void)
@@ -718,8 +716,6 @@
  *
  * Returns: A negative number if @s1 is before @s2, 0 if they are equal, or a
  * positive number if @s1 is after @s2.
- *
- * Since: 0.10.22
  */
 gint32
 gst_util_seqnum_compare (guint32 s1, guint32 s2)
@@ -735,96 +731,6 @@
 
 #include "gstpad.h"
 
-static void
-string_append_indent (GString * str, gint count)
-{
-  gint xx;
-
-  for (xx = 0; xx < count; xx++)
-    g_string_append_c (str, ' ');
-}
-
-/**
- * gst_print_pad_caps:
- * @buf: the buffer to print the caps in
- * @indent: initial indentation
- * @pad: (transfer none): the pad to print the caps from
- *
- * Write the pad capabilities in a human readable format into
- * the given GString.
- */
-void
-gst_print_pad_caps (GString * buf, gint indent, GstPad * pad)
-{
-  GstCaps *caps;
-
-  caps = gst_pad_get_current_caps (pad);
-
-  if (!caps) {
-    string_append_indent (buf, indent);
-    g_string_printf (buf, "%s:%s has no capabilities",
-        GST_DEBUG_PAD_NAME (pad));
-  } else {
-    char *s;
-
-    s = gst_caps_to_string (caps);
-    g_string_append (buf, s);
-    g_free (s);
-
-    gst_caps_unref (caps);
-  }
-}
-
-/**
- * gst_print_element_args:
- * @buf: the buffer to print the args in
- * @indent: initial indentation
- * @element: (transfer none): the element to print the args of
- *
- * Print the element argument in a human readable format in the given
- * GString.
- */
-void
-gst_print_element_args (GString * buf, gint indent, GstElement * element)
-{
-  guint width;
-  GValue value = { 0, };        /* the important thing is that value.type = 0 */
-  gchar *str = NULL;
-  GParamSpec *spec, **specs, **walk;
-
-  specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (element), NULL);
-
-  width = 0;
-  for (walk = specs; *walk; walk++) {
-    spec = *walk;
-    if (width < strlen (spec->name))
-      width = strlen (spec->name);
-  }
-
-  for (walk = specs; *walk; walk++) {
-    spec = *walk;
-
-    if (spec->flags & G_PARAM_READABLE) {
-      g_value_init (&value, spec->value_type);
-      g_object_get_property (G_OBJECT (element), spec->name, &value);
-      str = g_strdup_value_contents (&value);
-      g_value_unset (&value);
-    } else {
-      str = g_strdup ("Parameter not readable.");
-    }
-
-    string_append_indent (buf, indent);
-    g_string_append (buf, spec->name);
-    string_append_indent (buf, 2 + width - strlen (spec->name));
-    g_string_append (buf, str);
-    g_string_append_c (buf, '\n');
-
-    g_free (str);
-  }
-
-  g_free (specs);
-}
-
 /**
  * gst_element_create_all_pads:
  * @element: (transfer none): a #GstElement to create pads for
@@ -1068,7 +974,7 @@
  * gst_element_get_compatible_pad:
  * @element: (transfer none): a #GstElement in which the pad should be found.
  * @pad: (transfer none): the #GstPad to find a compatible one for.
- * @caps: the #GstCaps to use as a filter.
+ * @caps: (allow-none): the #GstCaps to use as a filter.
  *
  * Looks for an unlinked pad to which the given pad can link. It is not
  * guaranteed that linking the pads will work, though it should work in most
@@ -1254,8 +1160,6 @@
  *
  * Returns: (transfer none): a string with the name of the state
  *    result.
- *
- * Since: 0.10.11
  */
 const gchar *
 gst_element_state_change_return_get_name (GstStateChangeReturn state_ret)
@@ -1342,8 +1246,6 @@
  * Checks if the factory can sink all possible capabilities.
  *
  * Returns: %TRUE if the caps are fully compatible.
- *
- * Since: 0.10.33
  */
 gboolean
 gst_element_factory_can_sink_all_caps (GstElementFactory * factory,
@@ -1361,8 +1263,6 @@
  * Checks if the factory can src all possible capabilities.
  *
  * Returns: %TRUE if the caps are fully compatible.
- *
- * Since: 0.10.33
  */
 gboolean
 gst_element_factory_can_src_all_caps (GstElementFactory * factory,
@@ -1380,8 +1280,6 @@
  * Checks if the factory can sink any possible capability.
  *
  * Returns: %TRUE if the caps have a common subset.
- *
- * Since: 0.10.33
  */
 gboolean
 gst_element_factory_can_sink_any_caps (GstElementFactory * factory,
@@ -1399,8 +1297,6 @@
  * Checks if the factory can src any possible capability.
  *
  * Returns: %TRUE if the caps have a common subset.
- *
- * Since: 0.10.33
  */
 gboolean
 gst_element_factory_can_src_any_caps (GstElementFactory * factory,
@@ -1627,8 +1523,6 @@
  * This is a convenience function for gst_pad_link_full().
  *
  * Returns: TRUE if the pads could be linked, FALSE otherwise.
- *
- * Since: 0.10.30
  */
 gboolean
 gst_element_link_pads_full (GstElement * src, const gchar * srcpadname,
@@ -2339,7 +2233,7 @@
 }
 
 /**
- * gst_element_seek_simple
+ * gst_element_seek_simple:
  * @element: a #GstElement to seek on
  * @format: a #GstFormat to execute the seek in, such as #GST_FORMAT_TIME
  * @seek_flags: seek options; playback applications will usually want to use
@@ -2366,8 +2260,6 @@
  *
  * Returns: %TRUE if the seek operation succeeded. Flushing seeks will trigger a
  * preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
- *
- * Since: 0.10.7
  */
 gboolean
 gst_element_seek_simple (GstElement * element, GstFormat format,
@@ -2385,11 +2277,12 @@
  * @pad: the pad to use
  *
  * A helper function you can use that sets the FIXED_CAPS flag
- * This way the default getcaps function will always return the negotiated caps
+ * This way the default CAPS query will always return the negotiated caps
  * or in case the pad is not negotiated, the padtemplate caps.
  *
- * Use this function on a pad that, once gst_pad_set_caps() has been called
- * on it, cannot be renegotiated to something else.
+ * The negotiated caps are the caps of the last CAPS event that passed on the
+ * pad. Use this function on a pad that, once it negotiated to a CAPS, cannot
+ * be renegotiated to something else.
  */
 void
 gst_pad_use_fixed_caps (GstPad * pad)
@@ -2605,7 +2498,7 @@
 gboolean
 gst_pad_proxy_query_caps (GstPad * pad, GstQuery * query)
 {
-  GstCaps *templ, *intersected;
+  GstCaps *filter, *templ, *result;
   QueryCapsData data;
 
   g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
@@ -2616,18 +2509,20 @@
       GST_DEBUG_PAD_NAME (pad));
 
   data.query = query;
-  /* value to hold the return, by default it holds ANY */
-  data.ret = gst_caps_new_any ();
+
+  /* value to hold the return, by default it holds the filter or ANY */
+  gst_query_parse_caps (query, &filter);
+  data.ret = filter ? gst_caps_ref (filter) : gst_caps_new_any ();
 
   gst_pad_forward (pad, (GstPadForwardFunction) query_caps_func, &data);
 
   templ = gst_pad_get_pad_template_caps (pad);
-  intersected = gst_caps_intersect (data.ret, templ);
+  result = gst_caps_intersect (data.ret, templ);
   gst_caps_unref (data.ret);
   gst_caps_unref (templ);
 
-  gst_query_set_caps_result (query, intersected);
-  gst_caps_unref (intersected);
+  gst_query_set_caps_result (query, result);
+  gst_caps_unref (result);
 
   return TRUE;
 }
@@ -2882,8 +2777,9 @@
  * downstream in the preffered order. @filter might be %NULL but
  * if it is not %NULL the returned caps will be a subset of @filter.
  *
- * Returns: the caps of the peer pad with incremented ref-count. This function
- * returns %NULL when there is no peer pad.
+ * Returns: the caps of the peer pad with incremented ref-count. When there is
+ * no peer pad, this function returns @filter or, when @filter is %NULL, ANY
+ * caps.
  */
 GstCaps *
 gst_pad_peer_query_caps (GstPad * pad, GstCaps * filter)
@@ -3044,8 +2940,6 @@
  * pad when it is not needed any longer.
  *
  * Returns: (transfer full): unlinked pad of the given direction, or NULL.
- *
- * Since: 0.10.20
  */
 GstPad *
 gst_bin_find_unlinked_pad (GstBin * bin, GstPadDirection direction)
@@ -3105,9 +2999,8 @@
  * and want them all ghosted, you will have to create the ghost pads
  * yourself).
  *
- * Returns: (transfer floating): a newly-created bin, or NULL if an error occurred.
- *
- * Since: 0.10.3
+ * Returns: (transfer floating) (type Gst.Bin): a newly-created bin,
+ *   or %NULL if an error occurred.
  */
 GstElement *
 gst_parse_bin_from_description (const gchar * bin_description,
@@ -3137,9 +3030,8 @@
  * and want them all ghosted, you will have to create the ghost pads
  * yourself).
  *
- * Returns: (transfer full): a newly-created bin, or NULL if an error occurred.
- *
- * Since: 0.10.20
+ * Returns: (transfer full) (type Gst.Bin): a newly-created bin, or
+ *   %NULL if an error occurred.
  */
 GstElement *
 gst_parse_bin_from_description_full (const gchar * bin_description,
@@ -3200,8 +3092,6 @@
  * The timestamp should not be interpreted in any other way.
  *
  * Returns: the timestamp
- *
- * Since: 0.10.16
  */
 GstClockTime
 gst_util_get_timestamp (void)
@@ -3238,8 +3128,6 @@
  * The complexity of this search function is O(log (num_elements)).
  *
  * Returns: (transfer none): The address of the found element or %NULL if nothing was found
- *
- * Since: 0.10.23
  */
 gpointer
 gst_util_array_binary_search (gpointer array, guint num_elements,
@@ -3320,8 +3208,6 @@
  * and @b.
  *
  * Returns: Greatest common divisor of @a and @b
- *
- * Since: 0.10.26
  */
 gint
 gst_util_greatest_common_divisor (gint a, gint b)
@@ -3345,8 +3231,6 @@
  * and @b.
  *
  * Returns: Greatest common divisor of @a and @b
- *
- * Since: 0.11.0
  */
 gint64
 gst_util_greatest_common_divisor_int64 (gint64 a, gint64 b)
@@ -3369,8 +3253,6 @@
  * @dest: (out): pointer to a #gdouble for the result
  *
  * Transforms a fraction to a #gdouble.
- *
- * Since: 0.10.26
  */
 void
 gst_util_fraction_to_double (gint src_n, gint src_d, gdouble * dest)
@@ -3398,8 +3280,6 @@
  *
  * Transforms a #gdouble to a fraction and simplifies
  * the result.
- *
- * Since: 0.10.26
  */
 void
 gst_util_double_to_fraction (gdouble src, gint * dest_n, gint * dest_d)
@@ -3499,8 +3379,6 @@
  * the result in @res_n and @res_d.
  *
  * Returns: %FALSE on overflow, %TRUE otherwise.
- *
- * Since: 0.10.26
  */
 gboolean
 gst_util_fraction_multiply (gint a_n, gint a_d, gint b_n, gint b_d,
@@ -3558,8 +3436,6 @@
  * the result in @res_n and @res_d.
  *
  * Returns: %FALSE on overflow, %TRUE otherwise.
- *
- * Since: 0.10.26
  */
 gboolean
 gst_util_fraction_add (gint a_n, gint a_d, gint b_n, gint b_d, gint * res_n,
@@ -3625,8 +3501,6 @@
  * -1 if a < b, 0 if a = b and 1 if a > b.
  *
  * Returns: -1 if a < b; 0 if a = b; 1 if a > b.
- *
- * Since: 0.10.31
  */
 gint
 gst_util_fraction_compare (gint a_n, gint a_d, gint b_n, gint b_d)
@@ -3661,3 +3535,172 @@
   /* Should not happen because a_d and b_d are not 0 */
   g_return_val_if_reached (0);
 }
+
+/** gst_pad_create_stream_id:
+ * @pad: A source #GstPad
+ * @parent: Parent #GstElement of @pad
+ * @stream_id: (allow-none): The stream-id
+ * @var_args: parameters for the @stream_id format string
+ *
+ * Creates a stream-id for the source #GstPad @pad by combining the
+ * upstream information with the optional @stream_id of the stream
+ * of @pad. @pad must have a parent #GstElement and which must have zero
+ * or one sinkpad. @stream_id can only be %NULL if the parent element
+ * of @pad has only a single source pad.
+ *
+ * This function generates an unique stream-id by getting the upstream
+ * stream-start event stream ID and appending @stream_id to it. If the
+ * element has no sinkpad it will generate an upstream stream-id by
+ * doing an URI query on the element and in the worst case just uses
+ * a random number. Source elements that don't implement the URI
+ * handler interface should ideally generate a unique, deterministic
+ * stream-id manually instead.
+ *
+ * Returns: A stream-id for @pad. g_free() after usage.
+ */
+gchar *
+gst_pad_create_stream_id_printf_valist (GstPad * pad, GstElement * parent,
+    const gchar * stream_id, va_list var_args)
+{
+  GstEvent *upstream_event;
+  gchar *upstream_stream_id = NULL, *new_stream_id;
+  GstPad *sinkpad;
+
+  g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+  g_return_val_if_fail (GST_PAD_IS_SRC (pad), NULL);
+  g_return_val_if_fail (GST_IS_ELEMENT (parent), NULL);
+
+  g_return_val_if_fail (parent->numsinkpads <= 1, NULL);
+
+  /* If the element has multiple source pads it must
+   * provide a stream-id for every source pad, otherwise
+   * all source pads will have the same and are not
+   * distinguishable */
+  g_return_val_if_fail (parent->numsrcpads == 1 || stream_id, NULL);
+
+  /* First try to get the upstream stream-start stream-id from the sinkpad.
+   * This will only work for non-source elements */
+  sinkpad = gst_element_get_static_pad (parent, "sink");
+  if (sinkpad) {
+    upstream_event =
+        gst_pad_get_sticky_event (sinkpad, GST_EVENT_STREAM_START, 0);
+    if (upstream_event) {
+      const gchar *tmp;
+
+      gst_event_parse_stream_start (upstream_event, &tmp);
+      if (tmp)
+        upstream_stream_id = g_strdup (tmp);
+      gst_event_unref (upstream_event);
+    }
+    gst_object_unref (sinkpad);
+  }
+
+  /* The only case where we don't have an upstream start-start event
+   * here is for source elements */
+  if (!upstream_stream_id) {
+    GstQuery *query;
+
+    /* Try to generate one from the URI query and
+     * if it fails take a random number instead */
+    query = gst_query_new_uri ();
+    if (gst_element_query (parent, query)) {
+      GChecksum *cs;
+      gchar *uri;
+
+      gst_query_parse_uri (query, &uri);
+
+      /* And then generate an SHA256 sum of the URI */
+      cs = g_checksum_new (G_CHECKSUM_SHA256);
+      g_checksum_update (cs, (const guchar *) uri, strlen (uri));
+      g_free (uri);
+      upstream_stream_id = g_strdup (g_checksum_get_string (cs));
+      g_checksum_free (cs);
+    } else {
+      /* Just get some random number if the URI query fails */
+      GST_WARNING_OBJECT (pad, "Creating random stream-id, consider "
+          "implementing a deterministic way of creating a stream-id");
+      upstream_stream_id =
+          g_strdup_printf ("%08x%08x%08x%08x", g_random_int (), g_random_int (),
+          g_random_int (), g_random_int ());
+    }
+
+    gst_query_unref (query);
+  }
+
+  if (stream_id) {
+    gchar *expanded = g_strdup_vprintf (stream_id, var_args);
+    new_stream_id = g_strconcat (upstream_stream_id, "/", expanded, NULL);
+    g_free (expanded);
+  } else {
+    new_stream_id = g_strdup (upstream_stream_id);
+  }
+
+  g_free (upstream_stream_id);
+
+  return new_stream_id;
+}
+
+/** gst_pad_create_stream_id:
+ * @pad: A source #GstPad
+ * @parent: Parent #GstElement of @pad
+ * @stream_id: (allow-none): The stream-id
+ * @...: parameters for the @stream_id format string
+ *
+ * Creates a stream-id for the source #GstPad @pad by combining the
+ * upstream information with the optional @stream_id of the stream
+ * of @pad. @pad must have a parent #GstElement and which must have zero
+ * or one sinkpad. @stream_id can only be %NULL if the parent element
+ * of @pad has only a single source pad.
+ *
+ * This function generates an unique stream-id by getting the upstream
+ * stream-start event stream ID and appending @stream_id to it. If the
+ * element has no sinkpad it will generate an upstream stream-id by
+ * doing an URI query on the element and in the worst case just uses
+ * a random number. Source elements that don't implement the URI
+ * handler interface should ideally generate a unique, deterministic
+ * stream-id manually instead.
+ *
+ * Returns: A stream-id for @pad. g_free() after usage.
+ */
+gchar *
+gst_pad_create_stream_id_printf (GstPad * pad, GstElement * parent,
+    const gchar * stream_id, ...)
+{
+  va_list var_args;
+  gchar *new_stream_id;
+
+  va_start (var_args, stream_id);
+  new_stream_id =
+      gst_pad_create_stream_id_printf_valist (pad, parent, stream_id, var_args);
+  va_end (var_args);
+
+  return new_stream_id;
+}
+
+/** gst_pad_create_stream_id:
+ * @pad: A source #GstPad
+ * @parent: Parent #GstElement of @pad
+ * @stream_id: (allow-none): The stream-id
+ *
+ * Creates a stream-id for the source #GstPad @pad by combining the
+ * upstream information with the optional @stream_id of the stream
+ * of @pad. @pad must have a parent #GstElement and which must have zero
+ * or one sinkpad. @stream_id can only be %NULL if the parent element
+ * of @pad has only a single source pad.
+ *
+ * This function generates an unique stream-id by getting the upstream
+ * stream-start event stream ID and appending @stream_id to it. If the
+ * element has no sinkpad it will generate an upstream stream-id by
+ * doing an URI query on the element and in the worst case just uses
+ * a random number. Source elements that don't implement the URI
+ * handler interface should ideally generate a unique, deterministic
+ * stream-id manually instead.
+ *
+ * Returns: A stream-id for @pad. g_free() after usage.
+ */
+gchar *
+gst_pad_create_stream_id (GstPad * pad, GstElement * parent,
+    const gchar * stream_id)
+{
+  return gst_pad_create_stream_id_printf (pad, parent, stream_id, NULL);
+}
diff --git a/gst/gstutils.h b/gst/gstutils.h
index e562457..269b375 100644
--- a/gst/gstutils.h
+++ b/gst/gstutils.h
@@ -26,6 +26,7 @@
 #define __GST_UTILS_H__
 
 #include <glib.h>
+#include <gst/gstconfig.h>
 #include <gst/gstbin.h>
 #include <gst/gstparse.h>
 
@@ -74,9 +75,6 @@
 guint32         gst_util_seqnum_next            (void);
 gint32          gst_util_seqnum_compare         (guint32 s1, guint32 s2);
 
-void            gst_print_pad_caps              (GString *buf, gint indent, GstPad *pad);
-void            gst_print_element_args          (GString *buf, gint indent, GstElement *element);
-
 
 /**
  * GST_CALL_PARENT:
@@ -114,20 +112,36 @@
 #define _GST_PUT(__data, __idx, __size, __shift, __num) \
     (((guint8 *) (__data))[__idx] = (((guint##__size) (__num)) >> (__shift)) & 0xff)
 
+#if GST_HAVE_UNALIGNED_ACCESS
+static inline guint16 __gst_fast_read16(const guint8 *v) {
+  return *(const guint16*)(v);
+}
+static inline guint32 __gst_fast_read32(const guint8 *v) {
+  return *(const guint32*)(v);
+}
+static inline guint64 __gst_fast_read64(const guint8 *v) {
+  return *(const guint64*)(v);
+}
+static inline guint16 __gst_fast_read_swap16(const guint8 *v) {
+  return GUINT16_SWAP_LE_BE(*(const guint16*)(v));
+}
+static inline guint32 __gst_fast_read_swap32(const guint8 *v) {
+  return GUINT32_SWAP_LE_BE(*(const guint32*)(v));
+}
+static inline guint64 __gst_fast_read_swap64(const guint8 *v) {
+  return GUINT64_SWAP_LE_BE(*(const guint64*)(v));
+}
+# define _GST_FAST_READ(s, d) __gst_fast_read##s((const guint8 *)(d))
+# define _GST_FAST_READ_SWAP(s, d) __gst_fast_read_swap##s((const guint8 *)(d))
+#endif
+
+
 /**
  * GST_READ_UINT64_BE:
  * @data: memory location
  *
  * Read a 64 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT64_BE(data)        (_GST_GET (data, 0, 64, 56) | \
-                                         _GST_GET (data, 1, 64, 48) | \
-                                         _GST_GET (data, 2, 64, 40) | \
-                                         _GST_GET (data, 3, 64, 32) | \
-                                         _GST_GET (data, 4, 64, 24) | \
-                                         _GST_GET (data, 5, 64, 16) | \
-                                         _GST_GET (data, 6, 64,  8) | \
-                                         _GST_GET (data, 7, 64,  0))
 
 /**
  * GST_READ_UINT64_LE:
@@ -135,14 +149,33 @@
  *
  * Read a 64 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT64_LE(data)        (_GST_GET (data, 7, 64, 56) | \
-                                         _GST_GET (data, 6, 64, 48) | \
-                                         _GST_GET (data, 5, 64, 40) | \
-                                         _GST_GET (data, 4, 64, 32) | \
-                                         _GST_GET (data, 3, 64, 24) | \
-                                         _GST_GET (data, 2, 64, 16) | \
-                                         _GST_GET (data, 1, 64,  8) | \
-                                         _GST_GET (data, 0, 64,  0))
+#if GST_HAVE_UNALIGNED_ACCESS
+# if (G_BYTE_ORDER == G_BIG_ENDIAN)
+#  define GST_READ_UINT64_BE(data)      _GST_FAST_READ (64, data)
+#  define GST_READ_UINT64_LE(data)      _GST_FAST_READ_SWAP (64, data)
+# else
+#  define GST_READ_UINT64_BE(data)      _GST_FAST_READ_SWAP (64, data)
+#  define GST_READ_UINT64_LE(data)      _GST_FAST_READ (64, data)
+# endif
+#else
+# define GST_READ_UINT64_BE(data)	(_GST_GET (data, 0, 64, 56) | \
+					 _GST_GET (data, 1, 64, 48) | \
+					 _GST_GET (data, 2, 64, 40) | \
+					 _GST_GET (data, 3, 64, 32) | \
+					 _GST_GET (data, 4, 64, 24) | \
+					 _GST_GET (data, 5, 64, 16) | \
+					 _GST_GET (data, 6, 64,  8) | \
+					 _GST_GET (data, 7, 64,  0))
+
+# define GST_READ_UINT64_LE(data)	(_GST_GET (data, 7, 64, 56) | \
+					 _GST_GET (data, 6, 64, 48) | \
+					 _GST_GET (data, 5, 64, 40) | \
+					 _GST_GET (data, 4, 64, 32) | \
+					 _GST_GET (data, 3, 64, 24) | \
+					 _GST_GET (data, 2, 64, 16) | \
+					 _GST_GET (data, 1, 64,  8) | \
+					 _GST_GET (data, 0, 64,  0))
+#endif
 
 /**
  * GST_READ_UINT32_BE:
@@ -150,10 +183,6 @@
  *
  * Read a 32 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT32_BE(data)        (_GST_GET (data, 0, 32, 24) | \
-                                         _GST_GET (data, 1, 32, 16) | \
-                                         _GST_GET (data, 2, 32,  8) | \
-                                         _GST_GET (data, 3, 32,  0))
 
 /**
  * GST_READ_UINT32_LE:
@@ -161,18 +190,31 @@
  *
  * Read a 32 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT32_LE(data)        (_GST_GET (data, 3, 32, 24) | \
-                                         _GST_GET (data, 2, 32, 16) | \
-                                         _GST_GET (data, 1, 32,  8) | \
-                                         _GST_GET (data, 0, 32,  0))
+#if GST_HAVE_UNALIGNED_ACCESS
+# if (G_BYTE_ORDER == G_BIG_ENDIAN)
+#  define GST_READ_UINT32_BE(data)      _GST_FAST_READ (32, data)
+#  define GST_READ_UINT32_LE(data)      _GST_FAST_READ_SWAP (32, data)
+# else
+#  define GST_READ_UINT32_BE(data)      _GST_FAST_READ_SWAP (32, data)
+#  define GST_READ_UINT32_LE(data)      _GST_FAST_READ (32, data)
+# endif
+#else
+# define GST_READ_UINT32_BE(data)	(_GST_GET (data, 0, 32, 24) | \
+					 _GST_GET (data, 1, 32, 16) | \
+					 _GST_GET (data, 2, 32,  8) | \
+					 _GST_GET (data, 3, 32,  0))
+
+# define GST_READ_UINT32_LE(data)	(_GST_GET (data, 3, 32, 24) | \
+					 _GST_GET (data, 2, 32, 16) | \
+					 _GST_GET (data, 1, 32,  8) | \
+					 _GST_GET (data, 0, 32,  0))
+#endif
 
 /**
  * GST_READ_UINT24_BE:
  * @data: memory location
  *
  * Read a 24 bit unsigned integer value in big endian format from the memory buffer.
- *
- * Since: 0.10.22
  */
 #define GST_READ_UINT24_BE(data)        (_GST_GET (data, 0, 32, 16) | \
                                          _GST_GET (data, 1, 32,  8) | \
@@ -183,8 +225,6 @@
  * @data: memory location
  *
  * Read a 24 bit unsigned integer value in little endian format from the memory buffer.
- *
- * Since: 0.10.22
  */
 #define GST_READ_UINT24_LE(data)        (_GST_GET (data, 2, 32, 16) | \
                                          _GST_GET (data, 1, 32,  8) | \
@@ -196,17 +236,27 @@
  *
  * Read a 16 bit unsigned integer value in big endian format from the memory buffer.
  */
-#define GST_READ_UINT16_BE(data)        (_GST_GET (data, 0, 16,  8) | \
-                                         _GST_GET (data, 1, 16,  0))
-
 /**
  * GST_READ_UINT16_LE:
  * @data: memory location
  *
  * Read a 16 bit unsigned integer value in little endian format from the memory buffer.
  */
-#define GST_READ_UINT16_LE(data)        (_GST_GET (data, 1, 16,  8) | \
-                                         _GST_GET (data, 0, 16,  0))
+#if GST_HAVE_UNALIGNED_ACCESS
+# if (G_BYTE_ORDER == G_BIG_ENDIAN)
+#  define GST_READ_UINT16_BE(data)      _GST_FAST_READ (16, data)
+#  define GST_READ_UINT16_LE(data)      _GST_FAST_READ_SWAP (16, data)
+# else
+#  define GST_READ_UINT16_BE(data)      _GST_FAST_READ_SWAP (16, data)
+#  define GST_READ_UINT16_LE(data)      _GST_FAST_READ (16, data)
+# endif
+#else
+# define GST_READ_UINT16_BE(data)	(_GST_GET (data, 0, 16,  8) | \
+					 _GST_GET (data, 1, 16,  0))
+
+# define GST_READ_UINT16_LE(data)	(_GST_GET (data, 1, 16,  8) | \
+					 _GST_GET (data, 0, 16,  0))
+#endif
 
 /**
  * GST_READ_UINT8:
@@ -286,8 +336,6 @@
  * @num: value to store
  *
  * Store a 24 bit unsigned integer value in big endian format into the memory buffer.
- *
- * Since: 0.10.22
  */
 #define GST_WRITE_UINT24_BE(data, num)  do { \
                                           _GST_PUT (data, 0, 32,  16, num); \
@@ -301,8 +349,6 @@
  * @num: value to store
  *
  * Store a 24 bit unsigned integer value in little endian format into the memory buffer.
- *
- * Since: 0.10.22
  */
 #define GST_WRITE_UINT24_LE(data, num)  do { \
                                           _GST_PUT (data, 0, 32,  0, num); \
@@ -356,9 +402,6 @@
  * Swap byte order of a 32-bit floating point value (float).
  *
  * Returns: @in byte-swapped.
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC gfloat GFLOAT_SWAP_LE_BE (gfloat in);
@@ -385,9 +428,6 @@
  * Swap byte order of a 64-bit floating point value (double).
  *
  * Returns: @in byte-swapped.
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC gdouble GDOUBLE_SWAP_LE_BE (gdouble in);
@@ -413,9 +453,6 @@
  *
  * Convert 64-bit floating point value (double) from native byte order into
  * little endian byte order.
- *
- * Since: 0.10.22
- *
  */
 /**
  * GDOUBLE_TO_BE:
@@ -423,9 +460,6 @@
  *
  * Convert 64-bit floating point value (double) from native byte order into
  * big endian byte order.
- *
- * Since: 0.10.22
- *
  */
 /**
  * GDOUBLE_FROM_LE:
@@ -433,9 +467,6 @@
  *
  * Convert 64-bit floating point value (double) from little endian byte order
  * into native byte order.
- *
- * Since: 0.10.22
- *
  */
 /**
  * GDOUBLE_FROM_BE:
@@ -443,9 +474,6 @@
  *
  * Convert 64-bit floating point value (double) from big endian byte order
  * into native byte order.
- *
- * Since: 0.10.22
- *
  */
 
 /**
@@ -454,9 +482,6 @@
  *
  * Convert 32-bit floating point value (float) from native byte order into
  * little endian byte order.
- *
- * Since: 0.10.22
- *
  */
 /**
  * GFLOAT_TO_BE:
@@ -464,9 +489,6 @@
  *
  * Convert 32-bit floating point value (float) from native byte order into
  * big endian byte order.
- *
- * Since: 0.10.22
- *
  */
 /**
  * GFLOAT_FROM_LE:
@@ -474,9 +496,6 @@
  *
  * Convert 32-bit floating point value (float) from little endian byte order
  * into native byte order.
- *
- * Since: 0.10.22
- *
  */
 /**
  * GFLOAT_FROM_BE:
@@ -484,9 +503,6 @@
  *
  * Convert 32-bit floating point value (float) from big endian byte order
  * into native byte order.
- *
- * Since: 0.10.22
- *
  */
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
@@ -519,9 +535,6 @@
  * Read a 32 bit float value in little endian format from the memory buffer.
  *
  * Returns: The floating point value read from @data
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC gfloat GST_READ_FLOAT_LE (const guint8 *data);
@@ -547,9 +560,6 @@
  * Read a 32 bit float value in big endian format from the memory buffer.
  *
  * Returns: The floating point value read from @data
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC gfloat GST_READ_FLOAT_BE (const guint8 *data);
@@ -575,9 +585,6 @@
  * Read a 64 bit double value in little endian format from the memory buffer.
  *
  * Returns: The double-precision floating point value read from @data
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC gdouble GST_READ_DOUBLE_LE (const guint8 *data);
@@ -603,9 +610,6 @@
  * Read a 64 bit double value in big endian format from the memory buffer.
  *
  * Returns: The double-precision floating point value read from @data
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC gdouble GST_READ_DOUBLE_BE (const guint8 *data);
@@ -630,9 +634,6 @@
  * @num: value to store
  *
  * Store a 32 bit float value in little endian format into the memory buffer.
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC void GST_WRITE_FLOAT_LE (guint8 *data, gfloat num);
@@ -657,9 +658,6 @@
  * @num: value to store
  *
  * Store a 32 bit float value in big endian format into the memory buffer.
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC void GST_WRITE_FLOAT_BE (guint8 *data, gfloat num);
@@ -684,9 +682,6 @@
  * @num: value to store
  *
  * Store a 64 bit double value in little endian format into the memory buffer.
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC void GST_WRITE_DOUBLE_LE (guint8 *data, gdouble num);
@@ -711,9 +706,6 @@
  * @num: value to store
  *
  * Store a 64 bit double value in big endian format into the memory buffer.
- *
- * Since: 0.10.22
- *
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC void GST_WRITE_DOUBLE_BE (guint8 *data, gdouble num);
@@ -782,8 +774,6 @@
  * @num: integer value to round down
  *
  * Rounds an integer value down to the next multiple of 2.
- *
- * Since: 0.10.12
  */
 #define GST_ROUND_DOWN_2(num)  ((num)&(~1))
 /**
@@ -791,8 +781,6 @@
  * @num: integer value to round down
  *
  * Rounds an integer value down to the next multiple of 4.
- *
- * Since: 0.10.12
  */
 #define GST_ROUND_DOWN_4(num)  ((num)&(~3))
 /**
@@ -800,8 +788,6 @@
  * @num: integer value to round down
  *
  * Rounds an integer value down to the next multiple of 8.
- *
- * Since: 0.10.12
  */
 #define GST_ROUND_DOWN_8(num)  ((num)&(~7))
 /**
@@ -809,8 +795,6 @@
  * @num: integer value to round down
  *
  * Rounds an integer value down to the next multiple of 16.
- *
- * Since: 0.10.12
  */
 #define GST_ROUND_DOWN_16(num) ((num)&(~15))
 /**
@@ -818,8 +802,6 @@
  * @num: integer value to round down
  *
  * Rounds an integer value down to the next multiple of 32.
- *
- * Since: 0.10.12
  */
 #define GST_ROUND_DOWN_32(num) ((num)&(~31))
 /**
@@ -827,8 +809,6 @@
  * @num: integer value to round down
  *
  * Rounds an integer value down to the next multiple of 64.
- *
- * Since: 0.10.12
  */
 #define GST_ROUND_DOWN_64(num) ((num)&(~63))
 
@@ -908,6 +888,10 @@
 GstCaps *               gst_pad_peer_query_caps         (GstPad * pad, GstCaps *filter);
 gboolean                gst_pad_peer_query_accept_caps  (GstPad * pad, GstCaps *caps);
 
+gchar *                 gst_pad_create_stream_id               (GstPad * pad, GstElement * parent, const gchar *stream_id);
+gchar *                 gst_pad_create_stream_id_printf        (GstPad * pad, GstElement * parent, const gchar *stream_id, ...);
+gchar *                 gst_pad_create_stream_id_printf_valist (GstPad * pad, GstElement * parent, const gchar *stream_id, va_list var_args);
+
 /* bin functions */
 void                    gst_bin_add_many                (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED;
 void                    gst_bin_remove_many             (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED;
@@ -933,8 +917,6 @@
  * @GST_SEARCH_MODE_AFTER : Search for an exact match or the element just after.
  *
  * The different search modes.
- *
- * Since: 0.10.23
  */
 typedef enum {
   GST_SEARCH_MODE_EXACT = 0,
diff --git a/gst/gstvalue.c b/gst/gstvalue.c
index c9f344b..da46859 100644
--- a/gst/gstvalue.c
+++ b/gst/gstvalue.c
@@ -507,8 +507,6 @@
  * The result will be put into @dest and will either be a list that will not
  * contain any duplicates, or a non-list type (if @value1 and @value2
  * were equal).
- *
- * Since: 0.10.32
  */
 void
 gst_value_list_merge (GValue * dest, const GValue * value1,
@@ -1189,8 +1187,6 @@
  * @step: the step of the range
  *
  * Sets @value to the range specified by @start, @end and @step.
- *
- * Since: 0.11.0
  */
 void
 gst_value_set_int64_range_step (GValue * value, gint64 start, gint64 end,
@@ -1214,8 +1210,6 @@
  * @end: the end of the range
  *
  * Sets @value to the range specified by @start and @end.
- *
- * Since: 0.10.31
  */
 void
 gst_value_set_int64_range (GValue * value, gint64 start, gint64 end)
@@ -1230,8 +1224,6 @@
  * Gets the minimum of the range specified by @value.
  *
  * Returns: the minimum of the range
- *
- * Since: 0.10.31
  */
 gint64
 gst_value_get_int64_range_min (const GValue * value)
@@ -1248,8 +1240,6 @@
  * Gets the maximum of the range specified by @value.
  *
  * Returns: the maxumum of the range
- *
- * Since: 0.10.31
  */
 gint64
 gst_value_get_int64_range_max (const GValue * value)
@@ -1266,8 +1256,6 @@
  * Gets the step of the range specified by @value.
  *
  * Returns: the step of the range
- *
- * Since: 0.11.0
  */
 gint64
 gst_value_get_int64_range_step (const GValue * value)
@@ -1910,8 +1898,6 @@
  * @structure: the structure to set the value to
  *
  * Sets the contents of @value to @structure.  The actual
- *
- * Since: 0.10.15
  */
 void
 gst_value_set_structure (GValue * value, const GstStructure * structure)
@@ -1930,8 +1916,6 @@
  * Gets the contents of @value.
  *
  * Returns: (transfer none): the contents of @value
- *
- * Since: 0.10.15
  */
 const GstStructure *
 gst_value_get_structure (const GValue * value)
@@ -1974,18 +1958,56 @@
   return FALSE;
 }
 
+/**************
+ * GstTagList *
+ **************/
+
+static gboolean
+gst_value_deserialize_tag_list (GValue * dest, const gchar * s)
+{
+  GstTagList *taglist;
+
+  if (*s != '"') {
+    taglist = gst_tag_list_new_from_string (s);
+  } else {
+    gchar *str = gst_string_unwrap (s);
+
+    if (G_UNLIKELY (!str))
+      return FALSE;
+
+    taglist = gst_tag_list_new_from_string (str);
+    g_free (str);
+  }
+
+  if (G_LIKELY (taglist != NULL)) {
+    g_value_take_boxed (dest, taglist);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+static gchar *
+gst_value_serialize_tag_list (const GValue * value)
+{
+  GstTagList *taglist = g_value_get_boxed (value);
+
+  return gst_string_take_and_wrap (gst_tag_list_to_string (taglist));
+}
+
+
 /*************
  * GstBuffer *
  *************/
 
 static gint
-gst_value_compare_buffer (const GValue * value1, const GValue * value2)
+compare_buffer (GstBuffer * buf1, GstBuffer * buf2)
 {
-  GstBuffer *buf1 = gst_value_get_buffer (value1);
-  GstBuffer *buf2 = gst_value_get_buffer (value2);
   gsize size1, size2;
   GstMapInfo info1, info2;
-  gint result = GST_VALUE_UNORDERED;
+  gint result, mret;
+
+  if (buf1 == buf2)
+    return GST_VALUE_EQUAL;
 
   size1 = gst_buffer_get_size (buf1);
   size2 = gst_buffer_get_size (buf2);
@@ -2000,19 +2022,33 @@
     return GST_VALUE_UNORDERED;
 
   if (!gst_buffer_map (buf2, &info2, GST_MAP_READ)) {
-    gst_buffer_unmap (buf1, &info2);
+    gst_buffer_unmap (buf1, &info1);
     return GST_VALUE_UNORDERED;
   }
 
-  if (memcmp (info1.data, info2.data, info1.size) == 0)
+  mret = memcmp (info1.data, info2.data, info1.size);
+  if (mret == 0)
     result = GST_VALUE_EQUAL;
+  else if (mret < 0)
+    result = GST_VALUE_LESS_THAN;
+  else
+    result = GST_VALUE_GREATER_THAN;
 
-  gst_buffer_unmap (buf2, &info1);
-  gst_buffer_unmap (buf1, &info2);
+  gst_buffer_unmap (buf1, &info1);
+  gst_buffer_unmap (buf2, &info2);
 
   return result;
 }
 
+static gint
+gst_value_compare_buffer (const GValue * value1, const GValue * value2)
+{
+  GstBuffer *buf1 = gst_value_get_buffer (value1);
+  GstBuffer *buf2 = gst_value_get_buffer (value2);
+
+  return compare_buffer (buf1, buf2);
+}
+
 static gchar *
 gst_value_serialize_buffer (const GValue * value)
 {
@@ -2094,6 +2130,20 @@
   }
 }
 
+/*************
+ * GstSample *
+ *************/
+
+/* This function is mostly used for comparing image/buffer tags in taglists */
+static gint
+gst_value_compare_sample (const GValue * value1, const GValue * value2)
+{
+  GstBuffer *buf1 = gst_sample_get_buffer (gst_value_get_sample (value1));
+  GstBuffer *buf2 = gst_sample_get_buffer (gst_value_get_sample (value2));
+
+  /* FIXME: should we take into account anything else such as caps? */
+  return compare_buffer (buf1, buf2);
+}
 
 /***********
  * boolean *
@@ -3149,13 +3199,16 @@
   return FALSE;
 }
 
+#define INT64_RANGE_MIN_VAL(v) (INT64_RANGE_MIN (v) * INT64_RANGE_STEP (v))
+#define INT64_RANGE_MAX_VAL(v) (INT64_RANGE_MAX (v) * INT64_RANGE_STEP (v))
+
 static gboolean
 gst_value_intersect_int64_int64_range (GValue * dest, const GValue * src1,
     const GValue * src2)
 {
-  if (INT64_RANGE_MIN (src2) * INT64_RANGE_STEP (src2) <= src1->data[0].v_int &&
-      INT64_RANGE_MAX (src2) * INT64_RANGE_STEP (src2) >= src1->data[0].v_int &&
-      src1->data[0].v_int % INT64_RANGE_STEP (src2) == 0) {
+  if (INT64_RANGE_MIN_VAL (src2) <= src1->data[0].v_int64 &&
+      INT64_RANGE_MAX_VAL (src2) >= src1->data[0].v_int64 &&
+      src1->data[0].v_int64 % INT64_RANGE_STEP (src2) == 0) {
     if (dest)
       gst_value_init_and_copy (dest, src1);
     return TRUE;
@@ -5208,7 +5261,6 @@
 {
   const GstDateTime *date1 = (const GstDateTime *) g_value_get_boxed (value1);
   const GstDateTime *date2 = (const GstDateTime *) g_value_get_boxed (value2);
-  gint ret;
 
   if (date1 == date2)
     return GST_VALUE_EQUAL;
@@ -5220,64 +5272,37 @@
     return GST_VALUE_LESS_THAN;
   }
 
-  ret = priv_gst_date_time_compare (date1, date2);
-
-  if (ret == 0)
-    return GST_VALUE_EQUAL;
-  else if (ret < 0)
-    return GST_VALUE_LESS_THAN;
-  else
-    return GST_VALUE_GREATER_THAN;
+  /* returns GST_VALUE_* */
+  return __gst_date_time_compare (date1, date2);
 }
 
 static gchar *
 gst_value_serialize_date_time (const GValue * val)
 {
   GstDateTime *date = (GstDateTime *) g_value_get_boxed (val);
-  gfloat offset;
-  gint tzhour, tzminute;
 
   if (date == NULL)
     return g_strdup ("null");
 
-  offset = gst_date_time_get_time_zone_offset (date);
-
-  tzhour = (gint) ABS (offset);
-  tzminute = (gint) ((ABS (offset) - tzhour) * 60);
-
-  return g_strdup_printf ("\"%04d-%02d-%02dT%02d:%02d:%02d.%06d"
-      "%c%02d%02d\"", gst_date_time_get_year (date),
-      gst_date_time_get_month (date), gst_date_time_get_day (date),
-      gst_date_time_get_hour (date), gst_date_time_get_minute (date),
-      gst_date_time_get_second (date), gst_date_time_get_microsecond (date),
-      offset >= 0 ? '+' : '-', tzhour, tzminute);
+  return __gst_date_time_serialize (date, TRUE);
 }
 
 static gboolean
 gst_value_deserialize_date_time (GValue * dest, const gchar * s)
 {
-  gint year, month, day, hour, minute, second, usecond;
-  gchar signal;
-  gint offset = 0;
-  gfloat tzoffset = 0;
-  gint ret;
+  GstDateTime *datetime;
 
   if (!s || strcmp (s, "null") == 0) {
     return FALSE;
   }
 
-  ret = sscanf (s, "%04d-%02d-%02dT%02d:%02d:%02d.%06d%c%04d",
-      &year, &month, &day, &hour, &minute, &second, &usecond, &signal, &offset);
-  if (ret >= 9) {
-    tzoffset = (offset / 100) + ((offset % 100) / 60.0);
-    if (signal == '-')
-      tzoffset = -tzoffset;
-  } else
-    return FALSE;
-
-  g_value_take_boxed (dest, gst_date_time_new (tzoffset, year, month, day, hour,
-          minute, second + (usecond / 1000000.0)));
-  return TRUE;
+  datetime = gst_date_time_new_from_iso8601_string (s);
+  if (datetime != NULL) {
+    g_value_take_boxed (dest, datetime);
+    return TRUE;
+  }
+  GST_WARNING ("Failed to deserialize date time string '%s'", s);
+  return FALSE;
 }
 
 static void
@@ -5766,6 +5791,17 @@
   {
     static GstValueTable gst_value = {
       0,
+      gst_value_compare_sample,
+      NULL,
+      NULL,
+    };
+
+    gst_value.type = GST_TYPE_SAMPLE;
+    gst_value_register (&gst_value);
+  }
+  {
+    static GstValueTable gst_value = {
+      0,
       gst_value_compare_fraction,
       gst_value_serialize_fraction,
       gst_value_deserialize_fraction,
@@ -5810,6 +5846,17 @@
   {
     static GstValueTable gst_value = {
       0,
+      NULL,
+      gst_value_serialize_tag_list,
+      gst_value_deserialize_tag_list,
+    };
+
+    gst_value.type = GST_TYPE_TAG_LIST;
+    gst_value_register (&gst_value);
+  }
+  {
+    static GstValueTable gst_value = {
+      0,
       gst_value_compare_date,
       gst_value_serialize_date,
       gst_value_deserialize_date,
diff --git a/gst/gstvalue.h b/gst/gstvalue.h
index 38413b9..4ea492f 100644
--- a/gst/gstvalue.h
+++ b/gst/gstvalue.h
@@ -98,8 +98,6 @@
  * @x: the #GValue to check
  *
  * Checks if the given #GValue contains a #GST_TYPE_INT64_RANGE value.
- *
- * Since: 0.10.31
  */
 #define GST_VALUE_HOLDS_INT64_RANGE(x)    (G_VALUE_HOLDS((x), gst_int64_range_get_type ()))
 
@@ -148,8 +146,6 @@
  * @x: the #GValue to check
  *
  * Checks if the given #GValue contains a #GST_TYPE_STRUCTURE value.
- *
- * Since: 0.10.15
  */
 #define GST_VALUE_HOLDS_STRUCTURE(x)            (G_VALUE_HOLDS((x), GST_TYPE_STRUCTURE))
 
@@ -182,8 +178,6 @@
  * @x: the #GValue to check
  *
  * Checks if the given #GValue contains a #GST_TYPE_DATE_TIME value.
- *
- * Since: 0.10.31
  */
 #define GST_VALUE_HOLDS_DATE_TIME(x)    (G_VALUE_HOLDS((x), gst_date_time_get_type ()))
 
@@ -210,8 +204,6 @@
  * a #GValue type that represents an #gint64 range
  *
  * Returns: the #GType of GstInt64Range
- *
- * Since: 0.10.31
  */
 #define GST_TYPE_INT64_RANGE             gst_int64_range_get_type ()
 
@@ -277,7 +269,6 @@
  * a boxed #GValue type for #GstDateTime that represents a date and time.
  *
  * Returns: the #GType of GstDateTime
- * Since: 0.10.31
  */
 
 #define GST_TYPE_DATE_TIME               gst_date_time_get_type ()
diff --git a/gst/gstversion.h.in b/gst/gstversion.h.in
index eb3f75d..9ba49f3 100644
--- a/gst/gstversion.h.in
+++ b/gst/gstversion.h.in
@@ -74,8 +74,6 @@
  *
  * Check whether a GStreamer version equal to or greater than
  * major.minor.micro is present.
- *
- * Since: 0.10.18
  */
 #define	GST_CHECK_VERSION(major,minor,micro)	\
     (GST_VERSION_MAJOR > (major) || \
diff --git a/gst/math-compat.h b/gst/math-compat.h
index aa123db..d160c2c 100644
--- a/gst/math-compat.h
+++ b/gst/math-compat.h
@@ -36,15 +36,18 @@
 
 #define __GST_MATH_COMPAT_NEED_RINT
 #define __GST_MATH_COMPAT_NEED_RINTF
+#define __GST_MATH_COMPAT_NEED_ISNAN
 
 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 #undef __GST_MATH_COMPAT_NEED_RINT
 #undef __GST_MATH_COMPAT_NEED_RINTF
+#undef __GST_MATH_COMPAT_NEED_ISNAN
 #endif
 
 #if defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L
 #undef __GST_MATH_COMPAT_NEED_RINT
 #undef __GST_MATH_COMPAT_NEED_RINTF
+#undef __GST_MATH_COMPAT_NEED_ISNAN
 #endif
 
 #ifndef M_PI
@@ -71,6 +74,12 @@
   return floorf (x + 0.5);
 }
 
+static inline gboolean
+__gst_math_compat_isnan (double x)
+{
+  return x != x;
+}
+
 #if defined (__GST_MATH_COMPAT_NEED_RINT) && !defined (rint)
 #define rint(x) __gst_math_compat_rint(x)
 #endif
@@ -79,6 +88,10 @@
 #define rintf(x) __gst_math_compat_rintf(x)
 #endif
 
+#if defined (__GST_MATH_COMPAT_NEED_ISNAN) && !defined (isnan)
+#define isnan(x) __gst_math_compat_isnan (x)
+#endif
+
 #ifndef NAN
 #if G_BYTE_ORDER == G_BIG_ENDIAN
 #define __GST_NAN_BYTES        { 0x7f, 0xc0, 0, 0 }
diff --git a/gst/parse/Makefile.in b/gst/parse/Makefile.in
index 17fcfe4..b578d9e 100644
--- a/gst/parse/Makefile.in
+++ b/gst/parse/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -207,7 +207,9 @@
 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@
diff --git a/gst/parse/grammar.tab.h b/gst/parse/grammar.tab.h
index 764695b..6889bea 100644
--- a/gst/parse/grammar.tab.h
+++ b/gst/parse/grammar.tab.h
@@ -54,7 +54,7 @@
 {
 
 /* Line 2068 of yacc.c  */
-#line 623 "./grammar.y"
+#line 624 "./grammar.y"
 
     gchar *s;
     chain_t *c;
diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
index 30c37a9..0a62adb 100644
--- a/gst/parse/grammar.y
+++ b/gst/parse/grammar.y
@@ -287,7 +287,7 @@
 }
 
 static void gst_parse_new_child(GstChildProxy *child_proxy, GObject *object,
-                                gpointer data);
+    const gchar * name, gpointer data);
 
 static void
 gst_parse_add_delayed_set (GstElement *element, gchar *name, gchar *value_str)
@@ -326,8 +326,9 @@
   }
 }
 
-static void gst_parse_new_child(GstChildProxy *child_proxy, GObject *object,
-                                gpointer data)
+static void
+gst_parse_new_child(GstChildProxy *child_proxy, GObject *object,
+    const gchar * name, gpointer data)
 {
   DelayedSet *set = (DelayedSet *) data;
   GParamSpec *pspec;
@@ -336,7 +337,7 @@
   GType value_type;
 
   GST_CAT_LOG_OBJECT (GST_CAT_PIPELINE, child_proxy, "new child %s, checking property %s",
-      GST_OBJECT_NAME(object), set->name);
+      name, set->name);
 
   if (gst_child_proxy_lookup (G_OBJECT (child_proxy), set->name, &target, &pspec)) {
     gboolean got_value = FALSE;
@@ -397,7 +398,7 @@
   if (element == NULL)
     goto out;
 
-  /* parse the string, so the property name is null-terminated an pos points
+  /* parse the string, so the property name is null-terminated and pos points
      to the beginning of the value */
   while (!g_ascii_isspace (*pos) && (*pos != '=')) pos++;
   if (*pos == '=') {
@@ -811,7 +812,8 @@
 	|	PARSE_URL chain		      { $$ = $2;
 						if ($$->front) {
 						  GstElement *element =
-							  gst_element_make_from_uri (GST_URI_SRC, $1, NULL);
+							  gst_element_make_from_uri (GST_URI_SRC, $1, NULL, NULL);
+						  /* FIXME: get and parse error properly */
 						  if (!element) {
 						    SET_ERROR (graph->error, GST_PARSE_ERROR_NO_SUCH_ELEMENT,
 							    _("no source element for URI \"%s\""), $1);
@@ -829,7 +831,8 @@
 						g_free ($1);
 					      }
 	|	link PARSE_URL		      { GstElement *element =
-							  gst_element_make_from_uri (GST_URI_SINK, $2, NULL);
+							  gst_element_make_from_uri (GST_URI_SINK, $2, NULL, NULL);
+						/* FIXME: get and parse error properly */
 						if (!element) {
 						  SET_ERROR (graph->error, GST_PARSE_ERROR_NO_SUCH_ELEMENT,
 							  _("no sink element for URI \"%s\""), $2);
diff --git a/gst/parse/types.h b/gst/parse/types.h
index 3b2e4fd..79a14c6 100644
--- a/gst/parse/types.h
+++ b/gst/parse/types.h
@@ -44,12 +44,12 @@
 #endif
 
 #ifdef __GST_PARSE_TRACE
-gchar  *__gst_parse_strdup (gchar *org);
-void	__gst_parse_strfree (gchar *str);
-link_t *__gst_parse_link_new ();
-void	__gst_parse_link_free (link_t *data);
-chain_t *__gst_parse_chain_new ();
-void	__gst_parse_chain_free (chain_t *data);
+G_GNUC_INTERNAL  gchar  *__gst_parse_strdup (gchar *org);
+G_GNUC_INTERNAL  void	__gst_parse_strfree (gchar *str);
+G_GNUC_INTERNAL  link_t *__gst_parse_link_new ();
+G_GNUC_INTERNAL  void	__gst_parse_link_free (link_t *data);
+G_GNUC_INTERNAL  chain_t *__gst_parse_chain_new ();
+G_GNUC_INTERNAL  void	__gst_parse_chain_free (chain_t *data);
 #  define gst_parse_strdup __gst_parse_strdup
 #  define gst_parse_strfree __gst_parse_strfree
 #  define gst_parse_link_new __gst_parse_link_new
@@ -76,6 +76,8 @@
   walk = str;
   in_quotes = FALSE;
 
+  GST_DEBUG ("unescaping %s", str);
+
   while (*walk) {
     if (*walk == '\\' && !in_quotes) {
       walk++;
@@ -95,7 +97,9 @@
   *str = '\0';
 }
 
-GstElement *priv_gst_parse_launch (const gchar *, GError **,
-    GstParseContext *, GstParseFlags);
+G_GNUC_INTERNAL GstElement *priv_gst_parse_launch (const gchar      * str,
+                                                   GError          ** err,
+                                                   GstParseContext  * ctx,
+                                                   GstParseFlags      flags);
 
 #endif /* __GST_PARSE_TYPES_H__ */
diff --git a/gstreamer.doap b/gstreamer.doap
index 9e70e16..5830674 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>0.11.93</revision>
+   <branch>0.11</branch>
+   <name>Balrog Boogie</name>
+   <created>2012-08-08</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.93.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>0.11.92</revision>
    <branch>0.11</branch>
    <name>High Hopes</name>
diff --git a/gstreamer.spec b/gstreamer.spec
index 0c60a04..97531d3 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -1,17 +1,17 @@
 %define		gstreamer	gstreamer011
 %define		majorminor	1.0
 
-%define 	_glib2		2.31.14
+%define 	_glib2		2.32.0
 
 Name: 		%{gstreamer}
-Version: 	0.11.92
+Version: 	0.11.93
 Release: 	1
 Summary: 	GStreamer streaming media framework runtime
 
 Group: 		Applications/Multimedia
 License: 	LGPL
 URL:		http://gstreamer.freedesktop.org/
-Source: 	http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.bz2
+Source: 	http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.xz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires: 	glib2-devel >= %{_glib2}
diff --git a/gstreamer.spec.in b/gstreamer.spec.in
index 66d2e80..907aab9 100644
--- a/gstreamer.spec.in
+++ b/gstreamer.spec.in
@@ -11,7 +11,7 @@
 Group: 		Applications/Multimedia
 License: 	LGPL
 URL:		http://gstreamer.freedesktop.org/
-Source: 	http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.bz2
+Source: 	http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.xz
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires: 	glib2-devel >= %{_glib2}
diff --git a/libs/Makefile.in b/libs/Makefile.in
index 90abb56..21cff6c 100644
--- a/libs/Makefile.in
+++ b/libs/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -207,7 +207,9 @@
 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@
diff --git a/libs/gst/Makefile.in b/libs/gst/Makefile.in
index 9e2ee97..67d6d43 100644
--- a/libs/gst/Makefile.in
+++ b/libs/gst/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -206,7 +206,9 @@
 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@
diff --git a/libs/gst/base/Makefile.in b/libs/gst/base/Makefile.in
index 474b77e..6ed8dbe 100644
--- a/libs/gst/base/Makefile.in
+++ b/libs/gst/base/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -250,7 +250,9 @@
 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@
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index 2e61430..899cb98 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -82,7 +82,7 @@
  * Also check the GST_BUFFER_FLAG_DISCONT flag on the buffer. Some elements might
  * need to clear the adapter after a discontinuity.
  *
- * Since 0.10.24, the adapter will keep track of the timestamps of the buffers
+ * The adapter will keep track of the timestamps of the buffers
  * that were pushed. The last seen timestamp before the current position
  * can be queried with gst_adapter_prev_timestamp(). This function can
  * optionally return the amount of bytes between the start of the buffer that
@@ -426,8 +426,8 @@
  *
  * Returns #NULL if @size bytes are not available.
  *
- * Returns: (transfer none) (array length=size): a pointer to the first
- *     @size bytes of data, or NULL
+ * Returns: (transfer none) (array length=size) (element-type guint8):
+ *     a pointer to the first @size bytes of data, or NULL
  */
 gconstpointer
 gst_adapter_map (GstAdapter * adapter, gsize size)
@@ -527,7 +527,8 @@
 /**
  * gst_adapter_copy:
  * @adapter: a #GstAdapter
- * @dest: (out caller-allocates) (array length=size): the memory to copy into
+ * @dest: (out caller-allocates) (array length=size) (element-type guint8):
+ *     the memory to copy into
  * @offset: the bytes offset in the adapter to start from
  * @size: the number of bytes to copy
  *
@@ -537,8 +538,6 @@
  * The array @dest should be large enough to contain @size bytes.
  * The user should check that the adapter has (@offset + @size) bytes
  * available before calling this function.
- *
- * Since: 0.10.12
  */
 void
 gst_adapter_copy (GstAdapter * adapter, gpointer dest, gsize offset, gsize size)
@@ -684,8 +683,8 @@
  *
  * Free-function: g_free
  *
- * Returns: (transfer full) (array length=nbytes): oven-fresh hot data, or
- *     #NULL if @nbytes bytes are not available
+ * Returns: (transfer full) (array length=nbytes) (element-type guint8):
+ *     oven-fresh hot data, or #NULL if @nbytes bytes are not available
  */
 gpointer
 gst_adapter_take (GstAdapter * adapter, gsize nbytes)
@@ -725,8 +724,6 @@
  *
  * Returns: (transfer full): a #GstBuffer containing the first @nbytes of
  *     the adapter, or #NULL if @nbytes bytes are not available
- *
- * Since: 0.10.6
  */
 GstBuffer *
 gst_adapter_take_buffer (GstAdapter * adapter, gsize nbytes)
@@ -804,8 +801,6 @@
  * Returns: (element-type Gst.Buffer) (transfer full): a #GList of buffers
  *     containing the first @nbytes of the adapter, or #NULL if @nbytes bytes
  *     are not available
- *
- * Since: 0.10.31
  */
 GList *
 gst_adapter_take_list (GstAdapter * adapter, gsize nbytes)
@@ -969,8 +964,6 @@
  * enough data (offset+size bytes) in the adapter.
  *
  * Returns: offset of the first match, or -1 if no match was found.
- *
- * Since: 0.10.30
  */
 gsize
 gst_adapter_masked_scan_uint32_peek (GstAdapter * adapter, guint32 mask,
@@ -1106,8 +1099,6 @@
  * gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4);
  * // -> returns -1
  * </programlisting>
- *
- * Since: 0.10.24
  */
 gsize
 gst_adapter_masked_scan_uint32 (GstAdapter * adapter, guint32 mask,
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index e2f9d97..102ca72 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -337,6 +337,9 @@
   gboolean detecting;
   GList *detect_buffers;
   guint detect_buffers_size;
+
+  /* if TRUE, a STREAM_START event needs to be pushed */
+  gboolean push_stream_start;
 };
 
 typedef struct _GstBaseParseSeek
@@ -635,8 +638,6 @@
  * sure gst_base_parse_frame_free() only frees the contents but not
  * the actual frame. Use this function to initialise a #GstBaseParseFrame
  * allocated on the stack.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_frame_init (GstBaseParseFrame * frame)
@@ -660,8 +661,6 @@
  *
  * Returns: a newly-allocated #GstBaseParseFrame. Free with
  *     gst_base_parse_frame_free() when no longer needed.
- *
- * Since: 0.10.33
  */
 GstBaseParseFrame *
 gst_base_parse_frame_new (GstBuffer * buffer, GstBaseParseFrameFlags flags,
@@ -1242,8 +1241,6 @@
  * Default implementation of "convert" vmethod in #GstBaseParse class.
  *
  * Returns: TRUE if conversion was successful.
- *
- * Since: 0.10.33
  */
 gboolean
 gst_base_parse_convert_default (GstBaseParse * parse,
@@ -1407,8 +1404,7 @@
       parse->priv->max_bitrate);
 
   if (taglist != NULL) {
-    gst_pad_push_event (parse->srcpad, gst_event_new_tag ("GstParser",
-            taglist));
+    gst_pad_push_event (parse->srcpad, gst_event_new_tag (taglist));
   }
 }
 
@@ -1512,8 +1508,6 @@
  * to the new entry, etc.
  *
  * Returns: #gboolean indicating whether entry was added
- *
- * Since: 0.10.33
  */
 gboolean
 gst_base_parse_add_index_entry (GstBaseParse * parse, guint64 offset,
@@ -1843,12 +1837,6 @@
 
   g_return_val_if_fail (frame != NULL, GST_FLOW_ERROR);
 
-  /* some one-time start-up */
-  if (G_UNLIKELY (!parse->priv->framecount)) {
-    gst_base_parse_check_seekability (parse);
-    gst_base_parse_check_upstream (parse);
-  }
-
   buffer = frame->buffer;
   offset = frame->offset;
 
@@ -1922,8 +1910,6 @@
  * This must be called with sinkpad STREAM_LOCK held.
  *
  * Returns: #GstFlowReturn
- *
- * Since: 0.10.33
  */
 GstFlowReturn
 gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
@@ -2139,8 +2125,6 @@
  * caller retains ownership of @frame.
  *
  * Returns: a #GstFlowReturn that should be escalated to caller (of caller)
- *
- * Since: 0.11.1
  */
 GstFlowReturn
 gst_base_parse_finish_frame (GstBaseParse * parse, GstBaseParseFrame * frame,
@@ -2157,6 +2141,14 @@
   GST_LOG_OBJECT (parse, "finished frame at offset %" G_GUINT64_FORMAT ", "
       "flushing size %d", frame->offset, size);
 
+  /* some one-time start-up */
+  if (G_UNLIKELY (parse->priv->framecount == 0)) {
+    gst_base_parse_check_seekability (parse);
+    gst_base_parse_check_upstream (parse);
+  }
+
+  parse->priv->flushed += size;
+
   if (parse->priv->scanning && frame->buffer) {
     if (!parse->priv->scanned_frame) {
       parse->priv->scanned_frame = gst_base_parse_frame_copy (frame);
@@ -2164,8 +2156,6 @@
     goto exit;
   }
 
-  parse->priv->flushed += size;
-
   /* either PUSH or PULL mode arranges for adapter data */
   /* ensure output buffer */
   if (!frame->out_buffer) {
@@ -2758,8 +2748,7 @@
  * pull and scan for next frame starting from current offset
  * ajusts sync, drain and offset going along */
 static GstFlowReturn
-gst_base_parse_scan_frame (GstBaseParse * parse, GstBaseParseClass * klass,
-    gboolean full)
+gst_base_parse_scan_frame (GstBaseParse * parse, GstBaseParseClass * klass)
 {
   GstBuffer *buffer;
   GstFlowReturn ret = GST_FLOW_OK;
@@ -2858,6 +2847,21 @@
   parse = GST_BASE_PARSE (gst_pad_get_parent (pad));
   klass = GST_BASE_PARSE_GET_CLASS (parse);
 
+  GST_DEBUG_OBJECT (parse, "hello");
+
+  if (G_UNLIKELY (parse->priv->push_stream_start)) {
+    gchar *stream_id;
+
+    stream_id =
+        gst_pad_create_stream_id (parse->srcpad, GST_ELEMENT_CAST (parse),
+        NULL);
+
+    GST_DEBUG_OBJECT (parse, "Pushing STREAM_START");
+    gst_pad_push_event (parse->srcpad, gst_event_new_stream_start (stream_id));
+    parse->priv->push_stream_start = FALSE;
+    g_free (stream_id);
+  }
+
   /* reverse playback:
    * first fragment (closest to stop time) is handled normally below,
    * then we pull in fragments going backwards */
@@ -2870,7 +2874,7 @@
     }
   }
 
-  ret = gst_base_parse_scan_frame (parse, klass, TRUE);
+  ret = gst_base_parse_scan_frame (parse, klass);
   if (ret != GST_FLOW_OK)
     goto done;
 
@@ -2911,7 +2915,7 @@
 
     if (ret == GST_FLOW_EOS) {
       /* handle end-of-stream/segment */
-      if (parse->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+      if (parse->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
         gint64 stop;
 
         if ((stop = parse->segment.stop) == -1)
@@ -2923,6 +2927,8 @@
             (GST_ELEMENT_CAST (parse),
             gst_message_new_segment_done (GST_OBJECT_CAST (parse),
                 GST_FORMAT_TIME, stop));
+        gst_pad_push_event (parse->srcpad,
+            gst_event_new_segment_done (GST_FORMAT_TIME, stop));
       } else {
         /* If we STILL have zero frames processed, fire an error */
         if (parse->priv->framecount == 0) {
@@ -2985,8 +2991,10 @@
   if (!gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PULL, TRUE))
     goto baseparse_push;
 
+  parse->priv->push_stream_start = TRUE;
+
   return gst_pad_start_task (sinkpad, (GstTaskFunction) gst_base_parse_loop,
-      sinkpad);
+      sinkpad, NULL);
   /* fallback */
 baseparse_push:
   {
@@ -3084,8 +3092,6 @@
  * duration.  Alternatively, if @interval is non-zero (default), then stream
  * duration is determined based on estimated bitrate, and updated every @interval
  * frames.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_duration (GstBaseParse * parse,
@@ -3133,8 +3139,6 @@
  * is used to estimate the total duration of the stream and to estimate
  * a seek position, if there's no index and the format is syncable
  * (see gst_base_parse_set_syncable()).
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_average_bitrate (GstBaseParse * parse, guint bitrate)
@@ -3151,8 +3155,6 @@
  *
  * Subclass can use this function to tell the base class that it needs to
  * give at least #min_size buffers.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_min_frame_size (GstBaseParse * parse, guint min_size)
@@ -3176,8 +3178,6 @@
  * location, a corresponding decoder might need an initial @lead_in and a
  * following @lead_out number of frames to ensure the desired segment is
  * entirely filled upon decoding.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_frame_rate (GstBaseParse * parse, guint fps_num,
@@ -3226,8 +3226,6 @@
  * Set if frames carry timing information which the subclass can (generally)
  * parse and provide.  In particular, intrinsic (rather than estimated) time
  * can be obtained following a seek.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_has_timing_info (GstBaseParse * parse, gboolean has_timing)
@@ -3244,8 +3242,6 @@
  * Set if frame starts can be identified. This is set by default and
  * determines whether seeking based on bitrate averages
  * is possible for a format/stream.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_syncable (GstBaseParse * parse, gboolean syncable)
@@ -3266,8 +3262,6 @@
  * callbacks will be invoked, but @pre_push_frame will still be invoked,
  * so subclass can perform as much or as little is appropriate for
  * passthrough semantics in @pre_push_frame.
- *
- * Since: 0.10.33
  */
 void
 gst_base_parse_set_passthrough (GstBaseParse * parse, gboolean passthrough)
@@ -3285,8 +3279,6 @@
  * Sets the minimum and maximum (which may likely be equal) latency introduced
  * by the parsing process.  If there is such a latency, which depends on the
  * particular parsing of the format, it typically corresponds to 1 frame duration.
- *
- * Since: 0.10.36
  */
 void
 gst_base_parse_set_latency (GstBaseParse * parse, GstClockTime min_latency,
@@ -3514,7 +3506,7 @@
   parse->priv->offset = *pos;
   /* mark as scanning so frames don't get processed all the way */
   parse->priv->scanning = TRUE;
-  ret = gst_base_parse_scan_frame (parse, klass, FALSE);
+  ret = gst_base_parse_scan_frame (parse, klass);
   parse->priv->scanning = FALSE;
   /* retrieve frame found during scan */
   sframe = parse->priv->scanned_frame;
@@ -3749,28 +3741,24 @@
   gdouble rate;
   GstFormat format;
   GstSeekFlags flags;
-  GstSeekType cur_type = GST_SEEK_TYPE_NONE, stop_type;
+  GstSeekType start_type = GST_SEEK_TYPE_NONE, stop_type;
   gboolean flush, update, res = TRUE, accurate;
-  gint64 cur, stop, seekpos, seekstop;
+  gint64 start, stop, seekpos, seekstop;
   GstSegment seeksegment = { 0, };
   GstClockTime start_ts;
 
   gst_event_parse_seek (event, &rate, &format, &flags,
-      &cur_type, &cur, &stop_type, &stop);
+      &start_type, &start, &stop_type, &stop);
 
   GST_DEBUG_OBJECT (parse, "seek to format %s, rate %f, "
       "start type %d at %" GST_TIME_FORMAT ", end type %d at %"
       GST_TIME_FORMAT, gst_format_get_name (format), rate,
-      cur_type, GST_TIME_ARGS (cur), stop_type, GST_TIME_ARGS (stop));
+      start_type, GST_TIME_ARGS (start), stop_type, GST_TIME_ARGS (stop));
 
   /* no negative rates in push mode */
   if (rate < 0.0 && parse->priv->pad_mode == GST_PAD_MODE_PUSH)
     goto negative_rate;
 
-  if (cur_type != GST_SEEK_TYPE_SET ||
-      (stop_type != GST_SEEK_TYPE_SET && stop_type != GST_SEEK_TYPE_NONE))
-    goto wrong_type;
-
   /* For any format other than TIME, see if upstream handles
    * it directly or fail. For TIME, try upstream, but do it ourselves if
    * it fails upstream */
@@ -3778,6 +3766,10 @@
   if (format != GST_FORMAT_TIME || res)
     goto done;
 
+  if (start_type != GST_SEEK_TYPE_SET ||
+      (stop_type != GST_SEEK_TYPE_SET && stop_type != GST_SEEK_TYPE_NONE))
+    goto wrong_type;
+
   /* get flush flag */
   flush = flags & GST_SEEK_FLAG_FLUSH;
 
@@ -3787,7 +3779,7 @@
 
   GST_DEBUG_OBJECT (parse, "configuring seek");
   gst_segment_do_seek (&seeksegment, rate, format, flags,
-      cur_type, cur, stop_type, stop, &update);
+      start_type, start, stop_type, stop, &update);
 
   /* accurate seeking implies seek tables are used to obtain position,
    * and the requested segment is maintained exactly, not adjusted any way */
@@ -3916,7 +3908,7 @@
 
     /* Start streaming thread if paused */
     gst_pad_start_task (parse->sinkpad,
-        (GstTaskFunction) gst_base_parse_loop, parse->sinkpad);
+        (GstTaskFunction) gst_base_parse_loop, parse->sinkpad, NULL);
 
     GST_PAD_STREAM_UNLOCK (parse->sinkpad);
 
@@ -3997,6 +3989,10 @@
 
   gst_event_parse_tag (event, &taglist);
 
+  /* We only care about stream tags here */
+  if (gst_tag_list_get_scope (taglist) != GST_TAG_SCOPE_STREAM)
+    return;
+
   if (gst_tag_list_get_uint (taglist, GST_TAG_MINIMUM_BITRATE, &tmp)) {
     GST_DEBUG_OBJECT (parse, "upstream min bitrate %d", tmp);
     parse->priv->post_min_bitrate = FALSE;
diff --git a/libs/gst/base/gstbaseparse.h b/libs/gst/base/gstbaseparse.h
index d1793ac..5be3c93 100644
--- a/libs/gst/base/gstbaseparse.h
+++ b/libs/gst/base/gstbaseparse.h
@@ -39,8 +39,6 @@
  * @obj: base parse instance
  *
  * Gives the pointer to the source #GstPad object of the element.
- *
- * Since: 0.10.33
  */
 #define GST_BASE_PARSE_SRC_PAD(obj)    (GST_BASE_PARSE_CAST (obj)->srcpad)
 
@@ -49,8 +47,6 @@
  * @obj: base parse instance
  *
  * Gives the pointer to the sink #GstPad object of the element.
- *
- * Since: 0.10.33
  */
 #define GST_BASE_PARSE_SINK_PAD(obj)    (GST_BASE_PARSE_CAST (obj)->sinkpad)
 
@@ -60,8 +56,6 @@
  * A #GstFlowReturn that can be returned from parse_frame to
  * indicate that no output buffer was generated, or from pre_push_frame to
  * to forego pushing buffer.
- *
- * Since: 0.10.33
  */
 #define GST_BASE_PARSE_FLOW_DROPPED     GST_FLOW_CUSTOM_SUCCESS
 
@@ -74,8 +68,6 @@
  * @parse: base parse instance
  *
  * Obtains current sync status.
- *
- * Since: 0.10.33
  */
 #define GST_BASE_PARSE_LOST_SYNC(parse) (!!(GST_BASE_PARSE_CAST(parse)->flags & GST_BASE_PARSE_FLAG_LOST_SYNC))
 
@@ -85,8 +77,6 @@
  *
  * Obtains current drain status (ie. whether EOS has been received and
  * the parser is now processing the frames at the end of the stream)
- *
- * Since: 0.10.33
  */
 #define GST_BASE_PARSE_DRAINING(parse)  (!!(GST_BASE_PARSE_CAST(parse)->flags & GST_BASE_PARSE_FLAG_DRAINING))
 
@@ -110,8 +100,6 @@
  *    when the first non-queued frame is finished
  *
  * Flags to be used in a #GstBaseParseFrame.
- *
- * Since: 0.10.33
  */
 typedef enum {
   GST_BASE_PARSE_FRAME_FLAG_NONE         = 0,
@@ -143,8 +131,6 @@
  * than global parameters).  Some of these may apply to each parsing stage, others
  * only to some a particular one.  These parameters are effectively zeroed at start
  * of each frame's processing, i.e. parsing virtual method invocation sequence.
- *
- * Since: 0.10.33
  */
 typedef struct {
   GstBuffer * buffer;
@@ -226,7 +212,7 @@
  * @detect:         Optional.
  *                   Called until it doesn't return GST_FLOW_OK anymore for
  *                   the first buffers. Can be used by the subclass to detect
- *                   the stream format. Since: 0.10.36
+ *                   the stream format.
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At minimum @check_valid_frame and @parse_frame needs to be
diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c
index d1e9e70..db7ee02 100644
--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:gstbasesink
+ * SECTION:gstbasesink:
  * @short_description: Base class for sink elements
  * @see_also: #GstBaseTransform, #GstBaseSrc
  *
@@ -67,12 +67,12 @@
  * After synchronisation the virtual method #GstBaseSinkClass.render() will be
  * called. Subclasses should minimally implement this method.
  *
- * Since 0.10.3 subclasses that synchronise on the clock in the
- * #GstBaseSinkClass.render() method are supported as well. These classes
- * typically receive a buffer in the render method and can then potentially
- * block on the clock while rendering. A typical example is an audiosink.
- * Since 0.10.11 these subclasses can use gst_base_sink_wait_preroll() to
- * perform the blocking wait.
+ * Subclasses that synchronise on the clock in the #GstBaseSinkClass.render()
+ * method are supported as well. These classes typically receive a buffer in
+ * the render method and can then potentially block on the clock while
+ * rendering. A typical example is an audiosink.
+ * These subclasses can use gst_base_sink_wait_preroll() to perform the
+ * blocking wait.
  *
  * Upon receiving the EOS event in the PLAYING state, #GstBaseSink will wait
  * for the clock to reach the time indicated by the stop time of the last
@@ -131,9 +131,9 @@
  * information can then be used by upstream elements to reduce their processing
  * rate, for example.
  *
- * Since 0.10.15 the #GstBaseSink:async property can be used to instruct the
- * sink to never perform an ASYNC state change. This feature is mostly usable
- * when dealing with non-synchronized streams or sparse streams.
+ * The #GstBaseSink:async property can be used to instruct the sink to never
+ * perform an ASYNC state change. This feature is mostly usable when dealing
+ * with non-synchronized streams or sparse streams.
  *
  * Last reviewed on 2007-08-29 (0.10.15)
  */
@@ -261,8 +261,6 @@
   /* for throttling and QoS */
   GstClockTime earliest_in_time;
   GstClockTime throttle_time;
-
-  gboolean reset_time;
 };
 
 #define DO_RUNNING_AVG(avg,val,size) (((val) + ((size)-1) * (avg)) / (size))
@@ -432,27 +430,23 @@
           "Generate Quality-of-Service events upstream", DEFAULT_QOS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
-   * GstBaseSink:async
+   * GstBaseSink:async:
    *
    * If set to #TRUE, the basesink will perform asynchronous state changes.
    * When set to #FALSE, the sink will not signal the parent when it prerolls.
    * Use this option when dealing with sparse streams or when synchronisation is
    * not required.
-   *
-   * Since: 0.10.15
    */
   g_object_class_install_property (gobject_class, PROP_ASYNC,
       g_param_spec_boolean ("async", "Async",
           "Go asynchronously to PAUSED", DEFAULT_ASYNC,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
-   * GstBaseSink:ts-offset
+   * GstBaseSink:ts-offset:
    *
    * Controls the final synchronisation, a negative value will render the buffer
    * earlier while a positive value delays playback. This property can be
    * used to fix synchronisation in bad files.
-   *
-   * Since: 0.10.15
    */
   g_object_class_install_property (gobject_class, PROP_TS_OFFSET,
       g_param_spec_int64 ("ts-offset", "TS Offset",
@@ -460,14 +454,12 @@
           DEFAULT_TS_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstBaseSink:enable-last-sample
+   * GstBaseSink:enable-last-sample:
    *
    * Enable the last-sample property. If FALSE, basesink doesn't keep a
    * reference to the last buffer arrived and the last-sample property is always
    * set to NULL. This can be useful if you need buffers to be released as soon
    * as possible, eg. if you're using a buffer pool.
-   *
-   * Since: 0.10.30
    */
   g_object_class_install_property (gobject_class, PROP_ENABLE_LAST_SAMPLE,
       g_param_spec_boolean ("enable-last-sample", "Enable Last Buffer",
@@ -475,24 +467,20 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstBaseSink:last-sample
+   * GstBaseSink:last-sample:
    *
    * The last buffer that arrived in the sink and was used for preroll or for
    * rendering. This property can be used to generate thumbnails. This property
    * can be NULL when the sink has not yet received a bufer.
-   *
-   * Since: 0.10.15
    */
   g_object_class_install_property (gobject_class, PROP_LAST_SAMPLE,
       g_param_spec_boxed ("last-sample", "Last Sample",
           "The last sample received in the sink", GST_TYPE_SAMPLE,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
   /**
-   * GstBaseSink:blocksize
+   * GstBaseSink:blocksize:
    *
    * The amount of bytes to pull when operating in pull mode.
-   *
-   * Since: 0.10.22
    */
   /* FIXME 0.11: blocksize property should be int, otherwise min>max.. */
   g_object_class_install_property (gobject_class, PROP_BLOCKSIZE,
@@ -500,26 +488,22 @@
           "Size in bytes to pull per buffer (0 = default)", 0, G_MAXUINT,
           DEFAULT_BLOCKSIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
-   * GstBaseSink:render-delay
+   * GstBaseSink:render-delay:
    *
    * The additional delay between synchronisation and actual rendering of the
    * media. This property will add additional latency to the device in order to
    * make other sinks compensate for the delay.
-   *
-   * Since: 0.10.22
    */
   g_object_class_install_property (gobject_class, PROP_RENDER_DELAY,
       g_param_spec_uint64 ("render-delay", "Render Delay",
           "Additional render delay of the sink in nanoseconds", 0, G_MAXUINT64,
           DEFAULT_RENDER_DELAY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
-   * GstBaseSink:throttle-time
+   * GstBaseSink:throttle-time:
    *
    * The time to insert between buffers. This property can be used to control
    * the maximum amount of buffers per second to render. Setting this property
    * to a value bigger than 0 will make the sink create THROTTLE QoS events.
-   *
-   * Since: 0.10.33
    */
   g_object_class_install_property (gobject_class, PROP_THROTTLE_TIME,
       g_param_spec_uint64 ("throttle-time", "Throttle time",
@@ -682,8 +666,6 @@
  * possible. If @sync is TRUE, the timestamps of the incomming
  * buffers will be used to schedule the exact render time of its
  * contents.
- *
- * Since: 0.10.4
  */
 void
 gst_base_sink_set_sync (GstBaseSink * sink, gboolean sync)
@@ -703,8 +685,6 @@
  * clock.
  *
  * Returns: TRUE if the sink is configured to synchronize against the clock.
- *
- * Since: 0.10.4
  */
 gboolean
 gst_base_sink_get_sync (GstBaseSink * sink)
@@ -729,8 +709,6 @@
  * used to decide if a buffer should be dropped or not based on the
  * buffer timestamp and the current clock time. A value of -1 means
  * an unlimited time.
- *
- * Since: 0.10.4
  */
 void
 gst_base_sink_set_max_lateness (GstBaseSink * sink, gint64 max_lateness)
@@ -752,8 +730,6 @@
  * Returns: The maximum time in nanoseconds that a buffer can be late
  * before it is dropped and not rendered. A value of -1 means an
  * unlimited time.
- *
- * Since: 0.10.4
  */
 gint64
 gst_base_sink_get_max_lateness (GstBaseSink * sink)
@@ -775,8 +751,6 @@
  * @enabled: the new qos value.
  *
  * Configures @sink to send Quality-of-Service events upstream.
- *
- * Since: 0.10.5
  */
 void
 gst_base_sink_set_qos_enabled (GstBaseSink * sink, gboolean enabled)
@@ -794,8 +768,6 @@
  * upstream.
  *
  * Returns: TRUE if the sink is configured to perform Quality-of-Service.
- *
- * Since: 0.10.5
  */
 gboolean
 gst_base_sink_is_qos_enabled (GstBaseSink * sink)
@@ -818,8 +790,6 @@
  * disabled, the sink will immediately go to PAUSED instead of waiting for a
  * preroll buffer. This feature is useful if the sink does not synchronize
  * against the clock or when it is dealing with sparse streams.
- *
- * Since: 0.10.15
  */
 void
 gst_base_sink_set_async_enabled (GstBaseSink * sink, gboolean enabled)
@@ -841,8 +811,6 @@
  *
  * Returns: TRUE if the sink is configured to perform asynchronous state
  * changes.
- *
- * Since: 0.10.15
  */
 gboolean
 gst_base_sink_is_async_enabled (GstBaseSink * sink)
@@ -865,8 +833,6 @@
  * render buffers earlier than their timestamp. A positive value will delay
  * rendering. This function can be used to fix playback of badly timestamped
  * buffers.
- *
- * Since: 0.10.15
  */
 void
 gst_base_sink_set_ts_offset (GstBaseSink * sink, GstClockTimeDiff offset)
@@ -886,8 +852,6 @@
  * Get the synchronisation offset of @sink.
  *
  * Returns: The synchronisation offset.
- *
- * Since: 0.10.15
  */
 GstClockTimeDiff
 gst_base_sink_get_ts_offset (GstBaseSink * sink)
@@ -917,8 +881,6 @@
  * Returns: (transfer full): a #GstSample. gst_sample_unref() after usage.
  *     This function returns NULL when no buffer has arrived in the sink yet
  *     or when the sink is not in PAUSED or PLAYING.
- *
- * Since: 0.10.15
  */
 GstSample *
 gst_base_sink_get_last_sample (GstBaseSink * sink)
@@ -984,8 +946,6 @@
  *
  * Configures @sink to store the last received sample in the last-sample
  * property.
- *
- * Since: 0.10.30
  */
 void
 gst_base_sink_set_last_sample_enabled (GstBaseSink * sink, gboolean enabled)
@@ -1009,8 +969,6 @@
  * the last-sample property.
  *
  * Returns: TRUE if the sink is configured to store the last received sample.
- *
- * Since: 0.10.30
  */
 gboolean
 gst_base_sink_is_last_sample_enabled (GstBaseSink * sink)
@@ -1027,8 +985,6 @@
  * Get the currently configured latency.
  *
  * Returns: The configured latency.
- *
- * Since: 0.10.12
  */
 GstClockTime
 gst_base_sink_get_latency (GstBaseSink * sink)
@@ -1062,8 +1018,6 @@
  * This function is mostly used by subclasses.
  *
  * Returns: TRUE if the query succeeded.
- *
- * Since: 0.10.12
  */
 gboolean
 gst_base_sink_query_latency (GstBaseSink * sink, gboolean * live,
@@ -1159,8 +1113,6 @@
  * other sinks will adjust their latency to delay the rendering of their media.
  *
  * This function is usually called by subclasses.
- *
- * Since: 0.10.21
  */
 void
 gst_base_sink_set_render_delay (GstBaseSink * sink, GstClockTime delay)
@@ -1191,8 +1143,6 @@
  * information about the render delay.
  *
  * Returns: the render delay of @sink.
- *
- * Since: 0.10.21
  */
 GstClockTime
 gst_base_sink_get_render_delay (GstBaseSink * sink)
@@ -1215,8 +1165,6 @@
  *
  * Set the number of bytes that the sink will pull when it is operating in pull
  * mode.
- *
- * Since: 0.10.22
  */
 /* FIXME 0.11: blocksize property should be int, otherwise min>max.. */
 void
@@ -1238,8 +1186,6 @@
  * mode.
  *
  * Returns: the number of bytes @sink will pull in pull mode.
- *
- * Since: 0.10.22
  */
 /* FIXME 0.11: blocksize property should be int, otherwise min>max.. */
 guint
@@ -1264,8 +1210,6 @@
  * Set the time that will be inserted between rendered buffers. This
  * can be used to control the maximum buffers per second that the sink
  * will render. 
- *
- * Since: 0.10.33
  */
 void
 gst_base_sink_set_throttle_time (GstBaseSink * sink, guint64 throttle)
@@ -1286,8 +1230,6 @@
  * maximum buffers per second.
  *
  * Returns: the number of nanoseconds @sink will put between frames.
- *
- * Since: 0.10.33
  */
 guint64
 gst_base_sink_get_throttle_time (GstBaseSink * sink)
@@ -1408,7 +1350,6 @@
   gboolean post_paused = FALSE;
   gboolean post_async_done = FALSE;
   gboolean post_playing = FALSE;
-  gboolean reset_time;
 
   /* we are certainly not playing async anymore now */
   basesink->playing_async = FALSE;
@@ -1418,8 +1359,6 @@
   next = GST_STATE_NEXT (basesink);
   pending = GST_STATE_PENDING (basesink);
   post_pending = pending;
-  reset_time = basesink->priv->reset_time;
-  basesink->priv->reset_time = FALSE;
 
   switch (pending) {
     case GST_STATE_PLAYING:
@@ -1470,7 +1409,8 @@
   if (post_async_done) {
     GST_DEBUG_OBJECT (basesink, "posting async-done message");
     gst_element_post_message (GST_ELEMENT_CAST (basesink),
-        gst_message_new_async_done (GST_OBJECT_CAST (basesink), reset_time));
+        gst_message_new_async_done (GST_OBJECT_CAST (basesink),
+            GST_CLOCK_TIME_NONE));
   }
   if (post_playing) {
     GST_DEBUG_OBJECT (basesink, "posting PLAYING state change message");
@@ -1556,16 +1496,30 @@
     current->start_start = segment->start;
 
   if (current->format == GST_FORMAT_TIME) {
-    end = current->start + current->amount;
+    /* calculate the running-time when the step operation should stop */
+    if (current->amount != -1)
+      end = current->start + current->amount;
+    else
+      end = -1;
+
     if (!current->flush) {
+      gint64 position;
+
       /* update the segment clipping regions for non-flushing seeks */
       if (segment->rate > 0.0) {
-        segment->stop = gst_segment_to_position (segment, GST_FORMAT_TIME, end);
-        segment->position = segment->stop;
-      } else {
-        gint64 position;
+        if (end != -1)
+          position = gst_segment_to_position (segment, GST_FORMAT_TIME, end);
+        else
+          position = segment->stop;
 
-        position = gst_segment_to_position (segment, GST_FORMAT_TIME, end);
+        segment->stop = position;
+        segment->position = position;
+      } else {
+        if (end != -1)
+          position = gst_segment_to_position (segment, GST_FORMAT_TIME, end);
+        else
+          position = segment->start;
+
         segment->time = position;
         segment->start = position;
         segment->position = position;
@@ -1577,14 +1531,9 @@
   GST_DEBUG_OBJECT (sink, "step started at running_time %" GST_TIME_FORMAT,
       GST_TIME_ARGS (current->start));
 
-  if (current->amount == -1) {
-    GST_DEBUG_OBJECT (sink, "step amount == -1, stop stepping");
-    current->valid = FALSE;
-  } else {
-    GST_DEBUG_OBJECT (sink, "step amount: %" G_GUINT64_FORMAT ", format: %s, "
-        "rate: %f", current->amount, gst_format_get_name (current->format),
-        current->rate);
-  }
+  GST_DEBUG_OBJECT (sink, "step amount: %" G_GUINT64_FORMAT ", format: %s, "
+      "rate: %f", current->amount, gst_format_get_name (current->format),
+      current->rate);
 }
 
 static void
@@ -1655,6 +1604,10 @@
 {
   gboolean step_end = FALSE;
 
+  /* stepping never stops */
+  if (current->amount == -1)
+    return FALSE;
+
   /* see if we need to skip this buffer because of stepping */
   switch (current->format) {
     case GST_FORMAT_TIME:
@@ -1749,7 +1702,6 @@
     gboolean * stepped, GstStepInfo * step, gboolean * step_end)
 {
   GstBaseSinkClass *bclass;
-  GstBuffer *buffer;
   GstClockTime start, stop;     /* raw start/stop timestamps */
   guint64 cstart, cstop;        /* clipped raw timestamps */
   guint64 rstart, rstop;        /* clipped timestamps converted to running time */
@@ -1762,8 +1714,12 @@
   priv = basesink->priv;
   segment = &basesink->segment;
 
+  bclass = GST_BASE_SINK_GET_CLASS (basesink);
+
+again:
   /* start with nothing */
   start = stop = GST_CLOCK_TIME_NONE;
+  eos = FALSE;
 
   if (G_UNLIKELY (GST_IS_EVENT (obj))) {
     GstEvent *event = GST_EVENT_CAST (obj);
@@ -1797,32 +1753,40 @@
         eos = TRUE;
         goto eos_done;
       }
+      case GST_EVENT_GAP:
+      {
+        GstClockTime timestamp, duration;
+        gst_event_parse_gap (event, &timestamp, &duration);
+
+        if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
+          start = timestamp;
+          if (GST_CLOCK_TIME_IS_VALID (duration))
+            stop = start + duration;
+        }
+        *do_sync = TRUE;
+        break;
+      }
       default:
         /* other events do not need syncing */
         return FALSE;
     }
-  }
-
-  eos = FALSE;
-
-again:
-  /* else do buffer sync code */
-  buffer = GST_BUFFER_CAST (obj);
-
-  bclass = GST_BASE_SINK_GET_CLASS (basesink);
-
-  /* just get the times to see if we need syncing, if the start returns -1 we
-   * don't sync. */
-  if (bclass->get_times)
-    bclass->get_times (basesink, buffer, &start, &stop);
-
-  if (!GST_CLOCK_TIME_IS_VALID (start)) {
-    /* we don't need to sync but we still want to get the timestamps for
-     * tracking the position */
-    gst_base_sink_default_get_times (basesink, buffer, &start, &stop);
-    *do_sync = FALSE;
   } else {
-    *do_sync = TRUE;
+    /* else do buffer sync code */
+    GstBuffer *buffer = GST_BUFFER_CAST (obj);
+
+    /* just get the times to see if we need syncing, if the start returns -1 we
+     * don't sync. */
+    if (bclass->get_times)
+      bclass->get_times (basesink, buffer, &start, &stop);
+
+    if (!GST_CLOCK_TIME_IS_VALID (start)) {
+      /* we don't need to sync but we still want to get the timestamps for
+       * tracking the position */
+      gst_base_sink_default_get_times (basesink, buffer, &start, &stop);
+      *do_sync = FALSE;
+    } else {
+      *do_sync = TRUE;
+    }
   }
 
   GST_DEBUG_OBJECT (basesink, "got times start: %" GST_TIME_FORMAT
@@ -1969,8 +1933,6 @@
  * return and is not adjusted with any latency or offset configured in the
  * sink.
  *
- * Since: 0.10.20
- *
  * Returns: #GstClockReturn
  */
 GstClockReturn
@@ -2003,8 +1965,8 @@
   /* FIXME: Casting to GstClockEntry only works because the types
    * are the same */
   if (G_LIKELY (sink->priv->cached_clock_id != NULL
-          && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->
-              priv->cached_clock_id) == clock)) {
+          && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->priv->
+              cached_clock_id) == clock)) {
     if (!gst_clock_single_shot_id_reinit (clock, sink->priv->cached_clock_id,
             time)) {
       gst_clock_id_unref (sink->priv->cached_clock_id);
@@ -2070,8 +2032,6 @@
  *
  * Returns: #GST_FLOW_OK if the preroll completed and processing can
  * continue. Any other return value should be returned from the render vmethod.
- *
- * Since: 0.10.11
  */
 GstFlowReturn
 gst_base_sink_wait_preroll (GstBaseSink * sink)
@@ -2117,8 +2077,6 @@
  *
  * Returns: #GST_FLOW_OK if the preroll completed and processing can
  * continue. Any other return value should be returned from the render vmethod.
- *
- * Since: 0.10.22
  */
 GstFlowReturn
 gst_base_sink_do_preroll (GstBaseSink * sink, GstMiniObject * obj)
@@ -2204,27 +2162,27 @@
 }
 
 /**
- * gst_base_sink_wait_eos:
+ * gst_base_sink_wait:
  * @sink: the sink
  * @time: the running_time to be reached
  * @jitter: (out) (allow-none): the jitter to be filled with time diff, or NULL
  *
- * This function will block until @time is reached. It is usually called by
- * subclasses that use their own internal synchronisation but want to let the
- * EOS be handled by the base class.
+ * This function will wait for preroll to complete and will then block until @time
+ * is reached. It is usually called by subclasses that use their own internal
+ * synchronisation but want to let some synchronization (like EOS) be handled
+ * by the base class.
  *
- * This function should only be called with the PREROLL_LOCK held, like when
- * receiving an EOS event in the ::event vmethod.
+ * This function should only be called with the PREROLL_LOCK held (like when
+ * receiving an EOS event in the ::event vmethod or when handling buffers in
+ * ::render).
  *
- * The @time argument should be the running_time of when the EOS should happen
+ * The @time argument should be the running_time of when the timeout should happen
  * and will be adjusted with any latency and offset configured in the sink.
  *
  * Returns: #GstFlowReturn
- *
- * Since: 0.10.15
  */
 GstFlowReturn
-gst_base_sink_wait_eos (GstBaseSink * sink, GstClockTime time,
+gst_base_sink_wait (GstBaseSink * sink, GstClockTime time,
     GstClockTimeDiff * jitter)
 {
   GstClockReturn status;
@@ -2824,8 +2782,13 @@
       gst_segment_init (&basesink->segment, GST_FORMAT_UNDEFINED);
     }
   }
-  basesink->priv->reset_time = reset_time;
   GST_OBJECT_UNLOCK (basesink);
+
+  if (reset_time) {
+    GST_DEBUG_OBJECT (basesink, "posting reset-time message");
+    gst_element_post_message (GST_ELEMENT_CAST (basesink),
+        gst_message_new_reset_time (GST_OBJECT_CAST (basesink), 0));
+  }
 }
 
 static GstFlowReturn
@@ -2904,6 +2867,19 @@
       gst_element_post_message (GST_ELEMENT_CAST (basesink), message);
       break;
     }
+    case GST_EVENT_STREAM_START:
+    {
+      GstMessage *message;
+      guint32 seqnum;
+
+      seqnum = gst_event_get_seqnum (event);
+      GST_DEBUG_OBJECT (basesink, "Now posting STREAM_START (seqnum:%d)",
+          seqnum);
+      message = gst_message_new_stream_start (GST_OBJECT_CAST (basesink));
+      gst_message_set_seqnum (message, seqnum);
+      gst_element_post_message (GST_ELEMENT_CAST (basesink), message);
+      break;
+    }
     case GST_EVENT_CAPS:
     {
       GstCaps *caps;
@@ -2946,6 +2922,19 @@
               gst_tag_list_copy (taglist)));
       break;
     }
+    case GST_EVENT_TOC:
+    {
+      GstToc *toc;
+      gboolean updated;
+
+      gst_event_parse_toc (event, &toc, &updated);
+
+      gst_element_post_message (GST_ELEMENT_CAST (basesink),
+          gst_message_new_toc (GST_OBJECT_CAST (basesink), toc, updated));
+
+      gst_toc_unref (toc);
+      break;
+    }
     case GST_EVENT_SINK_MESSAGE:
     {
       GstMessage *msg = NULL;
@@ -3352,7 +3341,7 @@
     guint i, len;
     GstBuffer *buffer;
 
-    GST_INFO_OBJECT (pad, "chaining each group in list as a merged buffer");
+    GST_INFO_OBJECT (pad, "chaining each buffer in list");
 
     len = gst_buffer_list_length (list);
 
@@ -3402,8 +3391,8 @@
    *     seek format, adjust by the relative seek offset and then convert back to
    *     the processing format
    */
-  GstSeekType cur_type, stop_type;
-  gint64 cur, stop;
+  GstSeekType start_type, stop_type;
+  gint64 start, stop;
   GstSeekFlags flags;
   GstFormat seek_format;
   gdouble rate;
@@ -3411,24 +3400,24 @@
   gboolean res = TRUE;
 
   gst_event_parse_seek (event, &rate, &seek_format, &flags,
-      &cur_type, &cur, &stop_type, &stop);
+      &start_type, &start, &stop_type, &stop);
 
   if (seek_format == segment->format) {
     gst_segment_do_seek (segment, rate, seek_format, flags,
-        cur_type, cur, stop_type, stop, &update);
+        start_type, start, stop_type, stop, &update);
     return TRUE;
   }
 
-  if (cur_type != GST_SEEK_TYPE_NONE) {
-    /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */
+  if (start_type != GST_SEEK_TYPE_NONE) {
+    /* FIXME: Handle seek_end by converting the input segment vals */
     res =
-        gst_pad_query_convert (sink->sinkpad, seek_format, cur, segment->format,
-        &cur);
-    cur_type = GST_SEEK_TYPE_SET;
+        gst_pad_query_convert (sink->sinkpad, seek_format, start,
+        segment->format, &start);
+    start_type = GST_SEEK_TYPE_SET;
   }
 
   if (res && stop_type != GST_SEEK_TYPE_NONE) {
-    /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */
+    /* FIXME: Handle seek_end by converting the input segment vals */
     res =
         gst_pad_query_convert (sink->sinkpad, seek_format, stop,
         segment->format, &stop);
@@ -3436,7 +3425,7 @@
   }
 
   /* And finally, configure our output segment in the desired format */
-  gst_segment_do_seek (segment, rate, segment->format, flags, cur_type, cur,
+  gst_segment_do_seek (segment, rate, segment->format, flags, start_type, start,
       stop_type, stop, &update);
 
   if (!res)
@@ -3459,9 +3448,9 @@
   gdouble rate;
   GstFormat seek_format, dest_format;
   GstSeekFlags flags;
-  GstSeekType cur_type, stop_type;
+  GstSeekType start_type, stop_type;
   gboolean seekseg_configured = FALSE;
-  gint64 cur, stop;
+  gint64 start, stop;
   gboolean update, res = TRUE;
   GstSegment seeksegment;
 
@@ -3470,7 +3459,7 @@
   if (event) {
     GST_DEBUG_OBJECT (sink, "performing seek with event %p", event);
     gst_event_parse_seek (event, &rate, &seek_format, &flags,
-        &cur_type, &cur, &stop_type, &stop);
+        &start_type, &start, &stop_type, &stop);
 
     flush = flags & GST_SEEK_FLAG_FLUSH;
   } else {
@@ -3510,7 +3499,7 @@
         /* The seek format matches our processing format, no need to ask the
          * the subclass to configure the segment. */
         gst_segment_do_seek (&seeksegment, rate, seek_format, flags,
-            cur_type, cur, stop_type, stop, &update);
+            start_type, start, stop_type, stop, &update);
       }
     }
     /* Else, no seek event passed, so we're just (re)starting the
@@ -3551,7 +3540,7 @@
   if (res) {
     gst_segment_copy_into (&seeksegment, &sink->segment);
 
-    if (sink->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+    if (sink->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
       gst_element_post_message (GST_ELEMENT (sink),
           gst_message_new_segment_start (GST_OBJECT (sink),
               sink->segment.format, sink->segment.position));
@@ -3720,10 +3709,13 @@
     gst_pad_pause_task (pad);
     if (result == GST_FLOW_EOS) {
       /* perform EOS logic */
-      if (basesink->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+      if (basesink->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
         gst_element_post_message (GST_ELEMENT_CAST (basesink),
             gst_message_new_segment_done (GST_OBJECT_CAST (basesink),
                 basesink->segment.format, basesink->segment.position));
+        gst_base_sink_event (pad, parent,
+            gst_event_new_segment_done (basesink->segment.format,
+                basesink->segment.position));
       } else {
         gst_base_sink_event (pad, parent, gst_event_new_eos ());
       }
@@ -3814,7 +3806,7 @@
   if (active) {
     /* start task */
     result = gst_pad_start_task (basesink->sinkpad,
-        (GstTaskFunction) gst_base_sink_loop, basesink->sinkpad);
+        (GstTaskFunction) gst_base_sink_loop, basesink->sinkpad, NULL);
   } else {
     /* step 2, make sure streaming finishes */
     result = gst_pad_stop_task (basesink->sinkpad);
@@ -3963,8 +3955,7 @@
     GST_DEBUG_OBJECT (basesink, "fixated to: %" GST_PTR_FORMAT, caps);
 
     if (gst_caps_is_fixed (caps)) {
-      if (!gst_pad_send_event (GST_BASE_SINK_PAD (basesink),
-              gst_event_new_caps (caps)))
+      if (!gst_pad_set_caps (GST_BASE_SINK_PAD (basesink), caps))
         goto could_not_set_caps;
 
       result = TRUE;
@@ -4644,7 +4635,6 @@
       priv->step_unlock = FALSE;
       basesink->need_preroll = TRUE;
       basesink->playing_async = TRUE;
-      basesink->priv->reset_time = FALSE;
       priv->current_sstart = GST_CLOCK_TIME_NONE;
       priv->current_sstop = GST_CLOCK_TIME_NONE;
       priv->eos_rtime = GST_CLOCK_TIME_NONE;
@@ -4806,7 +4796,8 @@
                   GST_STATE_PLAYING, GST_STATE_PAUSED, GST_STATE_READY));
 
           gst_element_post_message (GST_ELEMENT_CAST (basesink),
-              gst_message_new_async_done (GST_OBJECT_CAST (basesink), FALSE));
+              gst_message_new_async_done (GST_OBJECT_CAST (basesink),
+                  GST_CLOCK_TIME_NONE));
         }
         priv->commited = TRUE;
       } else {
diff --git a/libs/gst/base/gstbasesink.h b/libs/gst/base/gstbasesink.h
index bf7a41f..42e627c 100644
--- a/libs/gst/base/gstbasesink.h
+++ b/libs/gst/base/gstbasesink.h
@@ -125,7 +125,7 @@
  *     unblock any blocked function ASAP
  * @unlock_stop: Clear the previous unlock request. Subclasses should clear
  *     any state they set during unlock(), such as clearing command queues.
- * @query: perform a #GstQuery on the element. Since: 0.10.36
+ * @query: perform a #GstQuery on the element.
  * @event: Override this to handle events arriving on the sink pad
  * @wait_eos: Override this to implement custom logic to wait for the EOS time.
  *     subclasses should always first chain up to the default implementation.
@@ -137,7 +137,7 @@
  * @render: Called when a buffer should be presented or output, at the
  *     correct moment if the #GstBaseSink has been set to sync to the clock.
  * @render_list: Same as @render but used whith buffer lists instead of
- *     buffers. Since: 0.10.24
+ *     buffers.
  *
  * Subclasses can override any of the available virtual methods or not, as
  * needed. At the minimum, the @render method should be overridden to
@@ -246,7 +246,7 @@
 
 GstClockReturn  gst_base_sink_wait_clock        (GstBaseSink *sink, GstClockTime time,
                                                  GstClockTimeDiff * jitter);
-GstFlowReturn   gst_base_sink_wait_eos          (GstBaseSink *sink, GstClockTime time,
+GstFlowReturn   gst_base_sink_wait              (GstBaseSink *sink, GstClockTime time,
                                                  GstClockTimeDiff *jitter);
 
 G_END_DECLS
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index c5fad37..8714ab9 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -90,7 +90,7 @@
  * distributed and running.
  *
  * Live sources that synchronize and block on the clock (an audio source, for
- * example) can since 0.10.12 use gst_base_src_wait_playing() when the
+ * example) can use gst_base_src_wait_playing() when the
  * #GstBaseSrcClass.create() function was interrupted by a state change to
  * PAUSED.
  *
@@ -138,8 +138,8 @@
  * EOS message posted on the pipeline's bus to know when all data has
  * been processed and the pipeline can safely be stopped.
  *
- * Since GStreamer 0.10.16 an application may send an EOS event to a source
- * element to make it perform the EOS logic (send EOS event downstream or post a
+ * An application may send an EOS event to a source element to make it
+ * perform the EOS logic (send EOS event downstream or post a
  * #GST_MESSAGE_SEGMENT_DONE on the bus). This can typically be done
  * with the gst_element_send_event() function on the element or its parent bin.
  *
@@ -484,8 +484,6 @@
  * to a state change to READY or a FLUSH event (in which case this function
  * returns #GST_FLOW_FLUSHING).
  *
- * Since: 0.10.12
- *
  * Returns: #GST_FLOW_OK if @src is PLAYING and processing can
  * continue. Any other return value should be returned from the create vmethod.
  */
@@ -571,8 +569,6 @@
  * operate in pull mode if the #GstBaseSrcClass.is_seekable() returns TRUE.
  *
  * This function must only be called in states < %GST_STATE_PAUSED.
- *
- * Since: 0.10.1
  */
 void
 gst_base_src_set_format (GstBaseSrc * src, GstFormat format)
@@ -593,8 +589,6 @@
  * If not @dynamic, size is only updated when needed, such as when trying to
  * read past current tracked size.  Otherwise, size is checked for upon each
  * read.
- *
- * Since: 0.10.36
  */
 void
 gst_base_src_set_dynamic_size (GstBaseSrc * src, gboolean dynamic)
@@ -662,8 +656,6 @@
  * This function is mostly used by subclasses.
  *
  * Returns: TRUE if the query succeeded.
- *
- * Since: 0.10.13
  */
 gboolean
 gst_base_src_query_latency (GstBaseSrc * src, gboolean * live,
@@ -705,8 +697,6 @@
  *
  * Set the number of bytes that @src will push out with each buffer. When
  * @blocksize is set to -1, a default length will be used.
- *
- * Since: 0.10.22
  */
 void
 gst_base_src_set_blocksize (GstBaseSrc * src, guint blocksize)
@@ -725,8 +715,6 @@
  * Get the number of bytes that @src will push out with each buffer.
  *
  * Returns: the number of bytes pushed with each buffer.
- *
- * Since: 0.10.22
  */
 guint
 gst_base_src_get_blocksize (GstBaseSrc * src)
@@ -751,8 +739,6 @@
  * Configure @src to automatically timestamp outgoing buffers based on the
  * current running_time of the pipeline. This property is mostly useful for live
  * sources.
- *
- * Since: 0.10.15
  */
 void
 gst_base_src_set_do_timestamp (GstBaseSrc * src, gboolean timestamp)
@@ -771,8 +757,6 @@
  * Query if @src timestamps outgoing buffers based on the current running_time.
  *
  * Returns: %TRUE if the base class will automatically timestamp outgoing buffers.
- *
- * Since: 0.10.15
  */
 gboolean
 gst_base_src_get_do_timestamp (GstBaseSrc * src)
@@ -803,8 +787,6 @@
  * configured with gst_base_src_set_format()
  *
  * Returns: %TRUE if preparation of the seamless segment succeeded.
- *
- * Since: 0.10.26
  */
 gboolean
 gst_base_src_new_seamless_segment (GstBaseSrc * src, gint64 start, gint64 stop,
@@ -841,8 +823,17 @@
   gboolean ret = TRUE;
 
   if (src->priv->stream_start_pending) {
-    ret = gst_pad_push_event (src->srcpad, gst_event_new_stream_start ());
+    gchar *stream_id;
+
+    stream_id =
+        gst_pad_create_stream_id (src->srcpad, GST_ELEMENT_CAST (src), NULL);
+
+    GST_DEBUG_OBJECT (src, "Pushing STREAM_START");
+    ret =
+        gst_pad_push_event (src->srcpad,
+        gst_event_new_stream_start (stream_id));
     src->priv->stream_start_pending = FALSE;
+    g_free (stream_id);
   }
 
   return ret;
@@ -866,10 +857,11 @@
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
   gst_base_src_send_stream_start (src);
-  gst_pad_push_event (src->srcpad, gst_event_new_caps (caps));
 
   if (bclass->set_caps)
     res = bclass->set_caps (src, caps);
+  if (res)
+    res = gst_pad_set_caps (src->srcpad, caps);
 
   return res;
 }
@@ -1210,6 +1202,22 @@
         res = FALSE;
       break;
     }
+    case GST_QUERY_URI:{
+      if (GST_IS_URI_HANDLER (src)) {
+        gchar *uri = gst_uri_handler_get_uri (GST_URI_HANDLER (src));
+
+        if (uri != NULL) {
+          gst_query_set_uri (query, uri);
+          g_free (uri);
+          res = TRUE;
+        } else {
+          res = FALSE;
+        }
+      } else {
+        res = FALSE;
+      }
+      break;
+    }
     default:
       res = FALSE;
       break;
@@ -1282,8 +1290,8 @@
    *     seek format, adjust by the relative seek offset and then convert back to
    *     the processing format
    */
-  GstSeekType cur_type, stop_type;
-  gint64 cur, stop;
+  GstSeekType start_type, stop_type;
+  gint64 start, stop;
   GstSeekFlags flags;
   GstFormat seek_format, dest_format;
   gdouble rate;
@@ -1291,25 +1299,25 @@
   gboolean res = TRUE;
 
   gst_event_parse_seek (event, &rate, &seek_format, &flags,
-      &cur_type, &cur, &stop_type, &stop);
+      &start_type, &start, &stop_type, &stop);
   dest_format = segment->format;
 
   if (seek_format == dest_format) {
     gst_segment_do_seek (segment, rate, seek_format, flags,
-        cur_type, cur, stop_type, stop, &update);
+        start_type, start, stop_type, stop, &update);
     return TRUE;
   }
 
-  if (cur_type != GST_SEEK_TYPE_NONE) {
-    /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */
+  if (start_type != GST_SEEK_TYPE_NONE) {
+    /* FIXME: Handle seek_end by converting the input segment vals */
     res =
-        gst_pad_query_convert (src->srcpad, seek_format, cur, dest_format,
-        &cur);
-    cur_type = GST_SEEK_TYPE_SET;
+        gst_pad_query_convert (src->srcpad, seek_format, start, dest_format,
+        &start);
+    start_type = GST_SEEK_TYPE_SET;
   }
 
   if (res && stop_type != GST_SEEK_TYPE_NONE) {
-    /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */
+    /* FIXME: Handle seek_end by converting the input segment vals */
     res =
         gst_pad_query_convert (src->srcpad, seek_format, stop, dest_format,
         &stop);
@@ -1317,7 +1325,7 @@
   }
 
   /* And finally, configure our output segment in the desired format */
-  gst_segment_do_seek (segment, rate, dest_format, flags, cur_type, cur,
+  gst_segment_do_seek (segment, rate, dest_format, flags, start_type, start,
       stop_type, stop, &update);
 
   if (!res)
@@ -1482,14 +1490,14 @@
  * instead of EOS when doing a segment seek.
  */
 static gboolean
-gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event)
+gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock)
 {
   gboolean res = TRUE, tres;
   gdouble rate;
   GstFormat seek_format, dest_format;
   GstSeekFlags flags;
-  GstSeekType cur_type, stop_type;
-  gint64 cur, stop;
+  GstSeekType start_type, stop_type;
+  gint64 start, stop;
   gboolean flush, playing;
   gboolean update;
   gboolean relative_seek = FALSE;
@@ -1506,9 +1514,9 @@
 
   if (event) {
     gst_event_parse_seek (event, &rate, &seek_format, &flags,
-        &cur_type, &cur, &stop_type, &stop);
+        &start_type, &start, &stop_type, &stop);
 
-    relative_seek = SEEK_TYPE_IS_RELATIVE (cur_type) ||
+    relative_seek = SEEK_TYPE_IS_RELATIVE (start_type) ||
         SEEK_TYPE_IS_RELATIVE (stop_type);
 
     if (dest_format != seek_format && !relative_seek) {
@@ -1541,7 +1549,8 @@
     gst_pad_pause_task (src->srcpad);
 
   /* unblock streaming thread. */
-  gst_base_src_set_flushing (src, TRUE, FALSE, &playing);
+  if (unlock)
+    gst_base_src_set_flushing (src, TRUE, FALSE, &playing);
 
   /* grab streaming lock, this should eventually be possible, either
    * because the task is paused, our streaming thread stopped
@@ -1556,7 +1565,8 @@
     GST_DEBUG_OBJECT (src, "seek with seqnum %" G_GUINT32_FORMAT, seqnum);
   }
 
-  gst_base_src_set_flushing (src, FALSE, playing, NULL);
+  if (unlock)
+    gst_base_src_set_flushing (src, FALSE, playing, NULL);
 
   /* If we configured the seeksegment above, don't overwrite it now. Otherwise
    * copy the current segment info into the temp segment that we can actually
@@ -1579,7 +1589,7 @@
         /* The seek format matches our processing format, no need to ask the
          * the subclass to configure the segment. */
         gst_segment_do_seek (&seeksegment, rate, seek_format, flags,
-            cur_type, cur, stop_type, stop, &update);
+            start_type, start, stop_type, stop, &update);
       }
     }
     /* Else, no seek event passed, so we're just (re)starting the
@@ -1619,7 +1629,7 @@
     memcpy (&src->segment, &seeksegment, sizeof (GstSegment));
     GST_OBJECT_UNLOCK (src);
 
-    if (seeksegment.flags & GST_SEEK_FLAG_SEGMENT) {
+    if (seeksegment.flags & GST_SEGMENT_FLAG_SEGMENT) {
       GstMessage *message;
 
       message = gst_message_new_segment_start (GST_OBJECT (src),
@@ -1642,7 +1652,7 @@
   /* and restart the task in case it got paused explicitly or by
    * the FLUSH_START event we pushed out. */
   tres = gst_pad_start_task (src->srcpad, (GstTaskFunction) gst_base_src_loop,
-      src->srcpad);
+      src->srcpad, NULL);
   if (res && !tres)
     res = FALSE;
 
@@ -1674,9 +1684,19 @@
   switch (GST_EVENT_TYPE (event)) {
       /* bidirectional events */
     case GST_EVENT_FLUSH_START:
+      GST_DEBUG_OBJECT (src, "pushing flush-start event downstream");
+      result = gst_pad_push_event (src->srcpad, event);
+      event = NULL;
+      break;
     case GST_EVENT_FLUSH_STOP:
+      GST_LIVE_LOCK (src->srcpad);
+      src->priv->segment_pending = TRUE;
       /* sending random flushes downstream can break stuff,
        * especially sync since all segment info will get flushed */
+      GST_DEBUG_OBJECT (src, "pushing flush-stop event downstream");
+      result = gst_pad_push_event (src->srcpad, event);
+      GST_LIVE_UNLOCK (src->srcpad);
+      event = NULL;
       break;
 
       /* downstream serialized events */
@@ -1761,7 +1781,7 @@
         GST_DEBUG_OBJECT (src, "performing seek");
         /* when we are running in push mode, we can execute the
          * seek right now. */
-        result = gst_base_src_perform_seek (src, event);
+        result = gst_base_src_perform_seek (src, event, TRUE);
       } else {
         GstEvent **event_p;
 
@@ -1856,7 +1876,7 @@
       if (!gst_base_src_seekable (src))
         goto not_seekable;
 
-      result = gst_base_src_perform_seek (src, event);
+      result = gst_base_src_perform_seek (src, event, TRUE);
       break;
     case GST_EVENT_FLUSH_START:
       /* cancel any blocking getrange, is normally called
@@ -2012,7 +2032,7 @@
   GstBaseSrcClass *bclass;
   GstClockTime base_time;
   GstClock *clock;
-  GstClockTime now = GST_CLOCK_TIME_NONE, timestamp;
+  GstClockTime now = GST_CLOCK_TIME_NONE, pts, dts, timestamp;
   gboolean do_timestamp, first, pseudo_live, is_live;
 
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
@@ -2022,7 +2042,13 @@
     bclass->get_times (basesrc, buffer, &start, &end);
 
   /* get buffer timestamp */
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
+  dts = GST_BUFFER_DTS (buffer);
+  pts = GST_BUFFER_PTS (buffer);
+
+  if (GST_CLOCK_TIME_IS_VALID (dts))
+    timestamp = dts;
+  else
+    timestamp = pts;
 
   /* grab the lock to prepare for clocking and calculate the startup
    * latency. */
@@ -2081,9 +2107,9 @@
     running_time = now - base_time;
 
     GST_LOG_OBJECT (basesrc,
-        "startup timestamp: %" GST_TIME_FORMAT ", running_time %"
-        GST_TIME_FORMAT, GST_TIME_ARGS (timestamp),
-        GST_TIME_ARGS (running_time));
+        "startup PTS: %" GST_TIME_FORMAT ", DTS %" GST_TIME_FORMAT
+        ", running_time %" GST_TIME_FORMAT, GST_TIME_ARGS (pts),
+        GST_TIME_ARGS (dts), GST_TIME_ARGS (running_time));
 
     if (pseudo_live && timestamp != -1) {
       /* live source and we need to sync, add startup latency to all timestamps
@@ -2098,40 +2124,50 @@
       GST_LOG_OBJECT (basesrc, "no timestamp offset needed");
     }
 
-    if (!GST_CLOCK_TIME_IS_VALID (timestamp)) {
-      if (do_timestamp)
-        timestamp = running_time;
-      else
-        timestamp = 0;
+    if (!GST_CLOCK_TIME_IS_VALID (dts)) {
+      if (do_timestamp) {
+        dts = running_time;
+      } else {
+        dts = 0;
+      }
+      GST_BUFFER_DTS (buffer) = dts;
 
-      GST_BUFFER_TIMESTAMP (buffer) = timestamp;
-
-      GST_LOG_OBJECT (basesrc, "created timestamp: %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (timestamp));
+      GST_LOG_OBJECT (basesrc, "created DTS %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (dts));
     }
-
-    /* add the timestamp offset we need for sync */
-    timestamp += basesrc->priv->ts_offset;
   } else {
     /* not the first buffer, the timestamp is the diff between the clock and
      * base_time */
-    if (do_timestamp && !GST_CLOCK_TIME_IS_VALID (timestamp)) {
+    if (do_timestamp && !GST_CLOCK_TIME_IS_VALID (dts)) {
       now = gst_clock_get_time (clock);
 
-      GST_BUFFER_TIMESTAMP (buffer) = now - base_time;
+      dts = now - base_time;
+      GST_BUFFER_DTS (buffer) = dts;
 
-      GST_LOG_OBJECT (basesrc, "created timestamp: %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (now - base_time));
+      GST_LOG_OBJECT (basesrc, "created DTS %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (dts));
     }
   }
+  if (!GST_CLOCK_TIME_IS_VALID (pts)) {
+    if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT))
+      pts = dts;
+
+    GST_BUFFER_PTS (buffer) = dts;
+
+    GST_LOG_OBJECT (basesrc, "created PTS %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (pts));
+  }
 
   /* if we don't have a buffer timestamp, we don't sync */
   if (!GST_CLOCK_TIME_IS_VALID (start))
     goto no_sync;
 
-  if (is_live && GST_CLOCK_TIME_IS_VALID (timestamp)) {
+  if (is_live) {
     /* for pseudo live sources, add our ts_offset to the timestamp */
-    GST_BUFFER_TIMESTAMP (buffer) += basesrc->priv->ts_offset;
+    if (GST_CLOCK_TIME_IS_VALID (pts))
+      GST_BUFFER_PTS (buffer) += basesrc->priv->ts_offset;
+    if (GST_CLOCK_TIME_IS_VALID (dts))
+      GST_BUFFER_DTS (buffer) += basesrc->priv->ts_offset;
     start += basesrc->priv->ts_offset;
   }
 
@@ -2251,6 +2287,7 @@
   GstBaseSrcClass *bclass;
   GstClockReturn status;
   GstBuffer *res_buf;
+  GstBuffer *in_buf;
 
   bclass = GST_BASE_SRC_GET_CLASS (src);
 
@@ -2296,7 +2333,7 @@
       "calling create offset %" G_GUINT64_FORMAT " length %u, time %"
       G_GINT64_FORMAT, offset, length, src->segment.time);
 
-  res_buf = *buf;
+  res_buf = in_buf = *buf;
 
   ret = bclass->create (src, offset, length, &res_buf);
 
@@ -2314,12 +2351,31 @@
   if (G_UNLIKELY (ret != GST_FLOW_OK))
     goto not_ok;
 
+  /* fallback in case the create function didn't fill a provided buffer */
+  if (in_buf != NULL && res_buf != in_buf) {
+    GstMapInfo info;
+    gsize copied_size;
+
+    GST_CAT_DEBUG_OBJECT (GST_CAT_PERFORMANCE, src, "create function didn't "
+        "fill the provided buffer, copying");
+
+    gst_buffer_map (in_buf, &info, GST_MAP_WRITE);
+    copied_size = gst_buffer_extract (res_buf, 0, info.data, info.size);
+    gst_buffer_unmap (in_buf, &info);
+    gst_buffer_set_size (in_buf, copied_size);
+
+    gst_buffer_copy_into (in_buf, res_buf, GST_BUFFER_COPY_METADATA, 0, -1);
+
+    gst_buffer_unref (res_buf);
+    res_buf = in_buf;
+  }
+
   /* no timestamp set and we are at offset 0, we can timestamp with 0 */
   if (offset == 0 && src->segment.time == 0
-      && GST_BUFFER_TIMESTAMP (res_buf) == -1 && !src->is_live) {
+      && GST_BUFFER_DTS (res_buf) == -1 && !src->is_live) {
     GST_DEBUG_OBJECT (src, "setting first timestamp to 0");
     res_buf = gst_buffer_make_writable (res_buf);
-    GST_BUFFER_TIMESTAMP (res_buf) = 0;
+    GST_BUFFER_DTS (res_buf) = 0;
   }
 
   /* now sync before pushing the buffer */
@@ -2678,7 +2734,7 @@
       gint64 position;
 
       /* perform EOS logic */
-      flag_segment = (src->segment.flags & GST_SEEK_FLAG_SEGMENT) != 0;
+      flag_segment = (src->segment.flags & GST_SEGMENT_FLAG_SEGMENT) != 0;
       format = src->segment.format;
       position = src->segment.position;
 
@@ -2689,6 +2745,9 @@
             format, position);
         gst_message_set_seqnum (message, src->priv->seqnum);
         gst_element_post_message (GST_ELEMENT_CAST (src), message);
+        event = gst_event_new_segment_done (format, position);
+        gst_event_set_seqnum (event, src->priv->seqnum);
+        gst_pad_push_event (pad, event);
       } else {
         event = gst_event_new_eos ();
         gst_event_set_seqnum (event, src->priv->seqnum);
@@ -2755,7 +2814,7 @@
     gst_object_unref (oldpool);
   }
   if (oldalloc) {
-    gst_allocator_unref (oldalloc);
+    gst_object_unref (oldalloc);
   }
   return TRUE;
 
@@ -2838,7 +2897,7 @@
   else
     gst_query_add_allocation_param (query, allocator, &params);
   if (allocator)
-    gst_allocator_unref (allocator);
+    gst_object_unref (allocator);
 
   if (pool) {
     gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
@@ -3071,7 +3130,7 @@
 
 /**
  * gst_base_src_start_complete:
- * @src: base source instance
+ * @basesrc: base source instance
  * @ret: a #GstFlowReturn
  *
  * Complete an asynchronous start operation. When the subclass overrides the
@@ -3146,8 +3205,9 @@
     basesrc->pending_seek = NULL;
     GST_OBJECT_UNLOCK (basesrc);
 
-    /* The perform seek code will start the task when finished. */
-    if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event)))
+    /* The perform seek code will start the task when finished. We don't have to
+     * unlock the streaming thread because it is not running yet */
+    if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event, FALSE)))
       goto seek_failed;
 
     if (event)
@@ -3200,8 +3260,7 @@
 
 /**
  * gst_base_src_start_wait:
- * @src: base source instance
- * @ret: a #GstFlowReturn
+ * @basesrc: base source instance
  *
  * Wait until the start operation completes.
  *
@@ -3284,6 +3343,8 @@
 
   bclass = GST_BASE_SRC_GET_CLASS (basesrc);
 
+  GST_DEBUG_OBJECT (basesrc, "flushing %d, live_play %d", flushing, live_play);
+
   if (flushing) {
     gst_base_src_activate_pool (basesrc, FALSE);
     /* unlock any subclasses, we need to do this before grabbing the
@@ -3383,7 +3444,7 @@
     GST_OBJECT_UNLOCK (basesrc->srcpad);
     if (start)
       gst_pad_start_task (basesrc->srcpad, (GstTaskFunction) gst_base_src_loop,
-          basesrc->srcpad);
+          basesrc->srcpad, NULL);
     GST_DEBUG_OBJECT (basesrc, "signal");
     GST_LIVE_SIGNAL (basesrc);
   }
@@ -3471,12 +3532,16 @@
     GstPadMode mode, gboolean active)
 {
   gboolean res;
+  GstBaseSrc *src = GST_BASE_SRC (parent);
+
+  src->priv->stream_start_pending = FALSE;
 
   switch (mode) {
     case GST_PAD_MODE_PULL:
       res = gst_base_src_activate_pull (pad, parent, active);
       break;
     case GST_PAD_MODE_PUSH:
+      src->priv->stream_start_pending = active;
       res = gst_base_src_activate_push (pad, parent, active);
       break;
     default:
@@ -3501,7 +3566,6 @@
     case GST_STATE_CHANGE_NULL_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
-      basesrc->priv->stream_start_pending = TRUE;
       no_preroll = gst_base_src_is_live (basesrc);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
@@ -3535,7 +3599,6 @@
        * already did this */
       g_atomic_int_set (&basesrc->priv->pending_eos, FALSE);
       gst_event_replace (&basesrc->pending_seek, NULL);
-      basesrc->priv->stream_start_pending = FALSE;
       break;
     }
     case GST_STATE_CHANGE_READY_TO_NULL:
diff --git a/libs/gst/base/gstbasesrc.h b/libs/gst/base/gstbasesrc.h
index dd15432..289b77a 100644
--- a/libs/gst/base/gstbasesrc.h
+++ b/libs/gst/base/gstbasesrc.h
@@ -134,7 +134,6 @@
  *   this if they support seeking in formats other than the configured native
  *   format. By default, it tries to convert the seek arguments to the
  *   configured native format and prepare a segment in that format.
- *   Since: 0.10.13
  * @do_seek: Perform seeking on the resource to the indicated segment.
  * @unlock: Unlock any pending access to the resource. Subclasses should
  *    unblock any blocked function ASAP. In particular, any create() function in
diff --git a/libs/gst/base/gstbasetransform.c b/libs/gst/base/gstbasetransform.c
index 3941392..81bf956 100644
--- a/libs/gst/base/gstbasetransform.c
+++ b/libs/gst/base/gstbasetransform.c
@@ -256,8 +256,6 @@
 
   gboolean gap_aware;
 
-  gboolean reconfigure;
-
   /* QoS stats */
   guint64 processed;
   guint64 dropped;
@@ -787,7 +785,7 @@
     gst_object_unref (oldpool);
   }
   if (oldalloc) {
-    gst_allocator_unref (oldalloc);
+    gst_object_unref (oldalloc);
   }
   if (oldquery) {
     gst_query_unref (oldquery);
@@ -815,9 +813,10 @@
   n_metas = gst_query_get_n_allocation_metas (query);
   for (i = 0; i < n_metas; i++) {
     GType api;
+    const GstStructure *params;
     gboolean remove;
 
-    api = gst_query_parse_nth_allocation_meta (query, i);
+    api = gst_query_parse_nth_allocation_meta (query, i, &params);
 
     /* by default we remove all metadata, subclasses should implement a
      * filter_meta function */
@@ -829,7 +828,7 @@
       remove = TRUE;
     } else if (G_LIKELY (klass->filter_meta)) {
       /* remove if the subclass said so */
-      remove = !klass->filter_meta (trans, query, api);
+      remove = !klass->filter_meta (trans, query, api, params);
       GST_LOG_OBJECT (trans, "filter_meta for api %s returned: %s",
           g_type_name (api), (remove ? "remove" : "keep"));
     } else {
@@ -884,7 +883,7 @@
   else
     gst_query_add_allocation_param (query, allocator, &params);
   if (allocator)
-    gst_allocator_unref (allocator);
+    gst_object_unref (allocator);
 
   if (pool) {
     gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
@@ -1318,13 +1317,8 @@
   if (!(ret = gst_base_transform_configure_caps (trans, incaps, outcaps)))
     goto failed_configure;
 
-  GST_OBJECT_LOCK (trans->sinkpad);
-  GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_FLAG_NEED_RECONFIGURE);
-  trans->priv->reconfigure = FALSE;
-  GST_OBJECT_UNLOCK (trans->sinkpad);
-
   /* let downstream know about our caps */
-  gst_pad_push_event (trans->srcpad, gst_event_new_caps (outcaps));
+  ret = gst_pad_set_caps (trans->srcpad, outcaps);
 
   if (ret) {
     /* try to get a pool when needed */
@@ -1375,10 +1369,11 @@
     n_metas = gst_query_get_n_allocation_metas (decide_query);
     for (i = 0; i < n_metas; i++) {
       GType api;
+      const GstStructure *params;
 
-      api = gst_query_parse_nth_allocation_meta (decide_query, i);
+      api = gst_query_parse_nth_allocation_meta (decide_query, i, &params);
       GST_DEBUG_OBJECT (trans, "proposing metadata %s", g_type_name (api));
-      gst_query_add_allocation_meta (query, api);
+      gst_query_add_allocation_meta (query, api, params);
     }
     ret = TRUE;
   }
@@ -1813,6 +1808,8 @@
       GstCaps *caps;
 
       gst_event_parse_caps (event, &caps);
+      /* clear any pending reconfigure flag */
+      gst_pad_check_reconfigure (trans->srcpad);
       ret = gst_base_transform_setcaps (trans, trans->sinkpad, caps);
 
       forward = FALSE;
@@ -1908,12 +1905,7 @@
 
   bclass = GST_BASE_TRANSFORM_GET_CLASS (trans);
 
-  GST_OBJECT_LOCK (trans->sinkpad);
-  reconfigure = GST_PAD_NEEDS_RECONFIGURE (trans->srcpad)
-      || priv->reconfigure;
-  GST_OBJECT_FLAG_UNSET (trans->srcpad, GST_PAD_FLAG_NEED_RECONFIGURE);
-  priv->reconfigure = FALSE;
-  GST_OBJECT_UNLOCK (trans->sinkpad);
+  reconfigure = gst_pad_check_reconfigure (trans->srcpad);
 
   if (G_UNLIKELY (reconfigure)) {
     GstCaps *incaps;
@@ -2506,8 +2498,6 @@
  * when needed.
  *
  * MT safe.
- *
- * Since: 0.10.5
  */
 void
 gst_base_transform_update_qos (GstBaseTransform * trans,
@@ -2533,8 +2523,6 @@
  * Enable or disable QoS handling in the transform.
  *
  * MT safe.
- *
- * Since: 0.10.5
  */
 void
 gst_base_transform_set_qos_enabled (GstBaseTransform * trans, gboolean enabled)
@@ -2557,8 +2545,6 @@
  * Returns: TRUE if QoS is enabled.
  *
  * MT safe.
- *
- * Since: 0.10.5
  */
 gboolean
 gst_base_transform_is_qos_enabled (GstBaseTransform * trans)
@@ -2587,8 +2573,6 @@
  * unset the flag if the output is no neutral data.
  *
  * MT safe.
- *
- * Since: 0.10.16
  */
 void
 gst_base_transform_set_gap_aware (GstBaseTransform * trans, gboolean gap_aware)
@@ -2627,16 +2611,11 @@
  * Instructs @trans to renegotiate a new downstream transform on the next
  * buffer. This function is typically called after properties on the transform
  * were set that influence the output format.
- *
- * Since: 0.10.21
  */
 void
 gst_base_transform_reconfigure_src (GstBaseTransform * trans)
 {
   g_return_if_fail (GST_IS_BASE_TRANSFORM (trans));
 
-  GST_OBJECT_LOCK (trans);
-  GST_DEBUG_OBJECT (trans, "marking reconfigure");
-  trans->priv->reconfigure = TRUE;
-  GST_OBJECT_UNLOCK (trans);
+  gst_pad_mark_reconfigure (trans->srcpad);
 }
diff --git a/libs/gst/base/gstbasetransform.h b/libs/gst/base/gstbasetransform.h
index 1ebb9d9..da961ef 100644
--- a/libs/gst/base/gstbasetransform.h
+++ b/libs/gst/base/gstbasetransform.h
@@ -31,7 +31,6 @@
 #define GST_BASE_TRANSFORM_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_BASE_TRANSFORM,GstBaseTransformClass))
 #define GST_IS_BASE_TRANSFORM(obj)	   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BASE_TRANSFORM))
 #define GST_IS_BASE_TRANSFORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASE_TRANSFORM))
-/* since 0.10.4 */
 #define GST_BASE_TRANSFORM_CAST(obj)	((GstBaseTransform *)(obj))
 
 /**
@@ -52,8 +51,6 @@
  * @obj: base transform instance
  *
  * Gives the pointer to the source #GstPad object of the element.
- *
- * Since: 0.10.4
  */
 #define GST_BASE_TRANSFORM_SRC_PAD(obj)		(GST_BASE_TRANSFORM_CAST (obj)->srcpad)
 
@@ -62,8 +59,6 @@
  * @obj: base transform instance
  *
  * Gives the pointer to the sink #GstPad object of the element.
- *
- * Since: 0.10.4
  */
 #define GST_BASE_TRANSFORM_SINK_PAD(obj)	(GST_BASE_TRANSFORM_CAST (obj)->sinkpad)
 
@@ -72,8 +67,6 @@
  *
  * A #GstFlowReturn that can be returned from transform and transform_ip to
  * indicate that no output buffer was generated.
- *
- * Since: 0.10.13
  */
 #define GST_BASE_TRANSFORM_FLOW_DROPPED   GST_FLOW_CUSTOM_SUCCESS
 
@@ -122,12 +115,12 @@
  *                  caps, fixate the caps on the other pad. The function takes
  *                  ownership of @othercaps and returns a fixated version of
  *                  @othercaps. @othercaps is not guaranteed to be writable.
- * @accept_caps:    Optional. Since 0.10.30
+ * @accept_caps:    Optional.
  *                  Subclasses can override this method to check if @caps can be
  *                  handled by the element. The default implementation might not be
  *                  the most optimal way to check this in all cases.
  * @set_caps:       allows the subclass to be notified of the actual caps set.
- * @query:          Optional Since 0.10.36
+ * @query:          Optional.
  *                  Handle a requested query. Subclasses that implement this
  *                  should must chain up to the parent if they didn't handle the
  *                  query
@@ -186,7 +179,7 @@
  *                  output buffer. By default this method is NULL and no
  *                  metadata is copied. subclasses can implement this method and
  *                  return TRUE if the metadata is to be copied.
- * @before_transform: Optional. Since 0.10.22
+ * @before_transform: Optional.
  *                    This method is called right before the base class will
  *                    start processing. Dynamic properties or other delayed
  *                    configuration could be performed in this method.
@@ -225,7 +218,8 @@
 
   /* decide allocation query for output buffers */
   gboolean      (*decide_allocation)  (GstBaseTransform *trans, GstQuery *query);
-  gboolean      (*filter_meta)        (GstBaseTransform *trans, GstQuery *query, GType api);
+  gboolean      (*filter_meta)        (GstBaseTransform *trans, GstQuery *query,
+                                       GType api, const GstStructure *params);
 
   /* propose allocation query parameters for input buffers */
   gboolean      (*propose_allocation) (GstBaseTransform *trans, GstQuery *decide_query,
diff --git a/libs/gst/base/gstbitreader-docs.h b/libs/gst/base/gstbitreader-docs.h
index 8c4fc6f..80e8913 100644
--- a/libs/gst/base/gstbitreader-docs.h
+++ b/libs/gst/base/gstbitreader-docs.h
@@ -31,8 +31,6 @@
  *
  * Skips @nbits bits of the #GstBitReader instance without checking if there
  * are enough bits available in the bit reader.
- *
- * Since: 0.10.31
  */
 void gst_bit_reader_skip_unchecked (GstBitReader * reader, guint nbits);
 
@@ -42,8 +40,6 @@
  *
  * Skips until the next byte without checking if there are enough bits
  * available in the bit reader.
- *
- * Since: 0.10.31
  */
 void gst_bit_reader_skip_to_byte_unchecked (GstBitReader * reader);
 
@@ -56,8 +52,6 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 8 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint8 gst_bit_reader_peek_bits_uint8_unchecked (const GstBitReader *reader, guint nbits);
 
@@ -70,8 +64,6 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 8 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint8 gst_bit_reader_get_bits_uint8_unchecked (GstBitReader *reader, guint nbits);
 
@@ -84,8 +76,6 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 16 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint16 gst_bit_reader_peek_bits_uint16_unchecked (const GstBitReader *reader, guint nbits);
 
@@ -98,8 +88,6 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 16 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint16 gst_bit_reader_get_bits_uint16_unchecked (GstBitReader *reader, guint nbits);
 
@@ -112,8 +100,6 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 32 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint32 gst_bit_reader_peek_bits_uint32_unchecked (const GstBitReader *reader, guint nbits);
 
@@ -126,8 +112,6 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 32 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint32 gst_bit_reader_get_bits_uint32_unchecked (GstBitReader *reader, guint nbits);
 
@@ -140,8 +124,6 @@
  * checking if there are enough bits available in the bit reader.
  *
  * Returns: unsigned 64 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint64 gst_bit_reader_peek_bits_uint64_unchecked (const GstBitReader *reader, guint nbits);
 
@@ -154,8 +136,6 @@
  * checking if there are enough bits available in the bit reader
  *
  * Returns: unsigned 64 bit integer with the bits.
- *
- * Since: 0.10.31
  */
 guint64 gst_bit_reader_get_bits_uint64_unchecked (GstBitReader *reader, guint nbits);
 
diff --git a/libs/gst/base/gstbitreader.c b/libs/gst/base/gstbitreader.c
index 271424a..0f8f587 100644
--- a/libs/gst/base/gstbitreader.c
+++ b/libs/gst/base/gstbitreader.c
@@ -38,7 +38,8 @@
 
 /**
  * gst_bit_reader_new:
- * @data: Data from which the #GstBitReader should read
+ * @data: (array length=size): Data from which the #GstBitReader
+ *   should read
  * @size: Size of @data in bytes
  *
  * Create a new #GstBitReader instance, which will read from @data.
@@ -46,8 +47,6 @@
  * Free-function: gst_bit_reader_free
  *
  * Returns: (transfer full): a new #GstBitReader instance
- *
- * Since: 0.10.22
  */
 GstBitReader *
 gst_bit_reader_new (const guint8 * data, guint size)
@@ -66,8 +65,6 @@
  *
  * Frees a #GstBitReader instance, which was previously allocated by
  * gst_bit_reader_new().
- * 
- * Since: 0.10.22
  */
 void
 gst_bit_reader_free (GstBitReader * reader)
@@ -85,8 +82,6 @@
  *
  * Initializes a #GstBitReader instance to read from @data. This function
  * can be called on already initialized instances.
- * 
- * Since: 0.10.22
  */
 void
 gst_bit_reader_init (GstBitReader * reader, const guint8 * data, guint size)
@@ -107,8 +102,6 @@
  *
  * Returns: %TRUE if the position could be set successfully, %FALSE
  * otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_bit_reader_set_pos (GstBitReader * reader, guint pos)
@@ -131,8 +124,6 @@
  * Returns the current position of a #GstBitReader instance in bits.
  *
  * Returns: The current position of @reader in bits.
- * 
- * Since: 0.10.22
  */
 guint
 gst_bit_reader_get_pos (const GstBitReader * reader)
@@ -147,8 +138,6 @@
  * Returns the remaining number of bits of a #GstBitReader instance.
  *
  * Returns: The remaining number of bits of @reader instance.
- * 
- * Since: 0.10.22
  */
 guint
 gst_bit_reader_get_remaining (const GstBitReader * reader)
@@ -163,8 +152,6 @@
  * Returns the total number of bits of a #GstBitReader instance.
  *
  * Returns: The total number of bits of @reader instance.
- * 
- * Since: 0.10.26
  */
 guint
 gst_bit_reader_get_size (const GstBitReader * reader)
@@ -180,8 +167,6 @@
  * Skips @nbits bits of the #GstBitReader instance.
  *
  * Returns: %TRUE if @nbits bits could be skipped, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_bit_reader_skip (GstBitReader * reader, guint nbits)
@@ -196,8 +181,6 @@
  * Skips until the next byte.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_bit_reader_skip_to_byte (GstBitReader * reader)
@@ -214,8 +197,6 @@
  * Read @nbits bits into @val and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -227,8 +208,6 @@
  * Read @nbits bits into @val and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -240,8 +219,6 @@
  * Read @nbits bits into @val and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -253,8 +230,6 @@
  * Read @nbits bits into @val and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -266,8 +241,6 @@
  * Read @nbits bits into @val but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -279,8 +252,6 @@
  * Read @nbits bits into @val but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -292,8 +263,6 @@
  * Read @nbits bits into @val but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -305,8 +274,6 @@
  * Read @nbits bits into @val but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 #define GST_BIT_READER_READ_BITS(bits) \
diff --git a/libs/gst/base/gstbitreader.h b/libs/gst/base/gstbitreader.h
index 5233612..4a2b4a0 100644
--- a/libs/gst/base/gstbitreader.h
+++ b/libs/gst/base/gstbitreader.h
@@ -31,7 +31,8 @@
 
 /**
  * GstBitReader:
- * @data: Data from which the bit reader will read
+ * @data: (array length=size): Data from which the bit reader will
+ *   read
  * @size: Size of @data in bytes
  * @byte: Current byte position
  * @bit: Bit position in the current byte
@@ -83,8 +84,6 @@
  * used. This macro can used be to initialize a variable, but it cannot
  * be assigned to a variable. In that case you have to use
  * gst_bit_reader_init().
- *
- * Since: 0.10.22
  */
 #define GST_BIT_READER_INIT(data, size) {data, size, 0, 0}
 
diff --git a/libs/gst/base/gstbytereader-docs.h b/libs/gst/base/gstbytereader-docs.h
index e4b6e35..e6b08ac 100644
--- a/libs/gst/base/gstbytereader-docs.h
+++ b/libs/gst/base/gstbytereader-docs.h
@@ -31,8 +31,6 @@
  *
  * Skips @nbytes bytes of the #GstByteReader instance without checking if
  * there are enough bytes available in the byte reader.
- *
- * Since: 0.10.25
  */
 void gst_byte_reader_skip_unchecked (GstByteReader * reader, guint nbytes);
 
@@ -44,8 +42,6 @@
  * available in the byte reader and update the current position.
  *
  * Returns: unsigned 8 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint8_unchecked:
@@ -55,8 +51,6 @@
  * available in the byte reader, but do not advance the current read position.
  *
  * Returns: unsigned 8 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int8_unchecked:
@@ -66,8 +60,6 @@
  * available in the byte reader and update the current position.
  *
  * Returns: signed 8 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int8_unchecked:
@@ -77,8 +69,6 @@
  * available in the byte reader, but do not advance the current read position.
  *
  * Returns: signed 8 bit integer.
- *
- * Since: 0.10.25
  */
 guint8  gst_byte_reader_get_uint8_unchecked     (GstByteReader * reader);
 guint8  gst_byte_reader_peek_uint8_unchecked    (GstByteReader * reader);
@@ -94,8 +84,6 @@
  * current position.
  *
  * Returns: unsigned 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint16_le_unchecked:
@@ -106,8 +94,6 @@
  * the current position.
  *
  * Returns: unsigned 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_uint16_be_unchecked:
@@ -118,8 +104,6 @@
  * current position.
  *
  * Returns: unsigned 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint16_be_unchecked:
@@ -130,8 +114,6 @@
  * the current position.
  *
  * Returns: unsigned 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int16_le_unchecked:
@@ -142,8 +124,6 @@
  * current position.
  *
  * Returns: signed 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int16_le_unchecked:
@@ -154,8 +134,6 @@
  * the current position.
  *
  * Returns: signed 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int16_be_unchecked:
@@ -166,8 +144,6 @@
  * current position.
  *
  * Returns: signed 16 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int16_be_unchecked:
@@ -178,8 +154,6 @@
  * the current position.
  *
  * Returns: signed 16 bit integer.
- *
- * Since: 0.10.25
  */
 guint16 gst_byte_reader_get_uint16_le_unchecked  (GstByteReader * reader);
 guint16 gst_byte_reader_get_uint16_be_unchecked  (GstByteReader * reader);
@@ -199,8 +173,6 @@
  * current position.
  *
  * Returns: unsigned 24 bit integer (as guint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint24_le_unchecked:
@@ -211,8 +183,6 @@
  * the current position.
  *
  * Returns: unsigned 24 bit integer (as guint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_uint24_be_unchecked:
@@ -223,8 +193,6 @@
  * current position.
  *
  * Returns: unsigned 24 bit integer (as guint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint24_be_unchecked:
@@ -235,8 +203,6 @@
  * the current position.
  *
  * Returns: unsigned 24 bit integer (as guint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int24_le_unchecked:
@@ -247,8 +213,6 @@
  * current position.
  *
  * Returns: signed 24 bit integer (as gint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int24_le_unchecked:
@@ -259,8 +223,6 @@
  * the current position.
  *
  * Returns: signed 24 bit integer (as gint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int24_be_unchecked:
@@ -271,8 +233,6 @@
  * current position.
  *
  * Returns: signed 24 bit integer (as gint32)
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int24_be_unchecked:
@@ -283,8 +243,6 @@
  * the current position.
  *
  * Returns: signed 24 bit integer (as gint32)
- *
- * Since: 0.10.25
  */
 guint32 gst_byte_reader_get_uint24_le_unchecked  (GstByteReader * reader);
 guint32 gst_byte_reader_get_uint24_be_unchecked  (GstByteReader * reader);
@@ -304,8 +262,6 @@
  * current position.
  *
  * Returns: unsigned 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint32_le_unchecked:
@@ -316,8 +272,6 @@
  * the current position.
  *
  * Returns: unsigned 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_uint32_be_unchecked:
@@ -328,8 +282,6 @@
  * current position.
  *
  * Returns: unsigned 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint32_be_unchecked:
@@ -340,8 +292,6 @@
  * the current position.
  *
  * Returns: unsigned 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int32_le_unchecked:
@@ -352,8 +302,6 @@
  * current position.
  *
  * Returns: signed 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int32_le_unchecked:
@@ -364,8 +312,6 @@
  * the current position.
  *
  * Returns: signed 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int32_be_unchecked:
@@ -376,8 +322,6 @@
  * current position.
  *
  * Returns: signed 32 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int32_be_unchecked:
@@ -388,8 +332,6 @@
  * the current position.
  *
  * Returns: signed 32 bit integer.
- *
- * Since: 0.10.25
  */
 guint32 gst_byte_reader_get_uint32_le_unchecked  (GstByteReader * reader);
 guint32 gst_byte_reader_get_uint32_be_unchecked  (GstByteReader * reader);
@@ -409,8 +351,6 @@
  * current position.
  *
  * Returns: unsigned 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint64_le_unchecked:
@@ -421,8 +361,6 @@
  * the current position.
  *
  * Returns: unsigned 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_uint64_be_unchecked:
@@ -433,8 +371,6 @@
  * current position.
  *
  * Returns: unsigned 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_uint64_be_unchecked:
@@ -445,8 +381,6 @@
  * the current position.
  *
  * Returns: unsigned 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int64_le_unchecked:
@@ -457,8 +391,6 @@
  * current position.
  *
  * Returns: signed 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int64_le_unchecked:
@@ -469,8 +401,6 @@
  * the current position.
  *
  * Returns: signed 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_int64_be_unchecked:
@@ -481,8 +411,6 @@
  * current position.
  *
  * Returns: signed 64 bit integer.
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_int64_be_unchecked:
@@ -493,8 +421,6 @@
  * the current position.
  *
  * Returns: signed 64 bit integer.
- *
- * Since: 0.10.25
  */
 guint64 gst_byte_reader_get_uint64_le_unchecked  (GstByteReader * reader);
 guint64 gst_byte_reader_get_uint64_be_unchecked  (GstByteReader * reader);
@@ -513,8 +439,6 @@
  * data available and update the current position.
  *
  * Returns: floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_float32_le_unchecked:
@@ -524,8 +448,6 @@
  * data available, but keep the current position.
  *
  * Returns: floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_float32_be_unchecked:
@@ -535,8 +457,6 @@
  * data available and update the current position.
  *
  * Returns: floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_float32_be_unchecked:
@@ -546,8 +466,6 @@
  * data available, but keep the current position.
  *
  * Returns: floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_float64_le_unchecked:
@@ -557,8 +475,6 @@
  * data available and update the current position.
  *
  * Returns: double precision floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_float64_le_unchecked:
@@ -568,8 +484,6 @@
  * data available, but keep the current position.
  *
  * Returns: double precision floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_get_float64_be_unchecked:
@@ -579,8 +493,6 @@
  * data available and update the current position.
  *
  * Returns: double precision floating point value read
- *
- * Since: 0.10.25
  */
 /**
  * gst_byte_reader_peek_float64_be_unchecked:
@@ -590,8 +502,6 @@
  * data available, but keep the current position.
  *
  * Returns: double precision floating point value read
- *
- * Since: 0.10.25
  */
 
 gfloat  gst_byte_reader_get_float32_le_unchecked  (GstByteReader * reader);
@@ -609,8 +519,6 @@
  * @reader: a #GstByteReader instance
  *
  * Returns: (transfer none): a constant pointer to the current data position
- *
- * Since: 0.10.25
  */
 const guint8 * gst_byte_reader_peek_data_unchecked (GstByteReader * reader);
 /**
@@ -624,8 +532,6 @@
  *
  * Returns: (transfer none) (array length=size): a constant pointer to the
  *     current data position.
- *
- * Since: 0.10.25
  */
 const guint8 * gst_byte_reader_get_data_unchecked (GstByteReader * reader, guint size);
 /**
@@ -641,8 +547,6 @@
  *
  * Returns: (transfer full) (array length=size): a newly-allocated copy of the
  *     data @size bytes in size. Free with g_free() when no longer needed.
- *
- * Since: 0.10.25
  */
 guint8 * gst_byte_reader_dup_data_unchecked (GstByteReader * reader, guint size);
 
diff --git a/libs/gst/base/gstbytereader.c b/libs/gst/base/gstbytereader.c
index c1875e6..e1945d1 100644
--- a/libs/gst/base/gstbytereader.c
+++ b/libs/gst/base/gstbytereader.c
@@ -52,8 +52,6 @@
  * Free-function: gst_byte_reader_free
  *
  * Returns: (transfer full): a new #GstByteReader instance
- *
- * Since: 0.10.22
  */
 GstByteReader *
 gst_byte_reader_new (const guint8 * data, guint size)
@@ -72,8 +70,6 @@
  *
  * Frees a #GstByteReader instance, which was previously allocated by
  * gst_byte_reader_new().
- * 
- * Since: 0.10.22
  */
 void
 gst_byte_reader_free (GstByteReader * reader)
@@ -92,8 +88,6 @@
  *
  * Initializes a #GstByteReader instance to read from @data. This function
  * can be called on already initialized instances.
- * 
- * Since: 0.10.22
  */
 void
 gst_byte_reader_init (GstByteReader * reader, const guint8 * data, guint size)
@@ -114,8 +108,6 @@
  *
  * Returns: %TRUE if the position could be set successfully, %FALSE
  * otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_byte_reader_set_pos (GstByteReader * reader, guint pos)
@@ -137,8 +129,6 @@
  * Returns the current position of a #GstByteReader instance in bytes.
  *
  * Returns: The current position of @reader in bytes.
- * 
- * Since: 0.10.22
  */
 guint
 gst_byte_reader_get_pos (const GstByteReader * reader)
@@ -153,8 +143,6 @@
  * Returns the remaining number of bytes of a #GstByteReader instance.
  *
  * Returns: The remaining number of bytes of @reader instance.
- * 
- * Since: 0.10.22
  */
 guint
 gst_byte_reader_get_remaining (const GstByteReader * reader)
@@ -169,8 +157,6 @@
  * Returns the total number of bytes of a #GstByteReader instance.
  *
  * Returns: The total number of bytes of @reader instance.
- * 
- * Since: 0.10.26
  */
 guint
 gst_byte_reader_get_size (const GstByteReader * reader)
@@ -189,8 +175,6 @@
  * Skips @nbytes bytes of the #GstByteReader instance.
  *
  * Returns: %TRUE if @nbytes bytes could be skipped, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_byte_reader_skip (GstByteReader * reader, guint nbytes)
@@ -206,8 +190,6 @@
  * Read an unsigned 8 bit integer into @val and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -218,8 +200,6 @@
  * Read a signed 8 bit integer into @val and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -230,8 +210,6 @@
  * Read an unsigned 8 bit integer into @val but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -242,8 +220,6 @@
  * Read a signed 8 bit integer into @val but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -255,8 +231,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -268,8 +242,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -281,8 +253,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -294,8 +264,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -307,8 +275,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -320,8 +286,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -333,8 +297,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -346,8 +308,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -359,8 +319,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -372,8 +330,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -385,8 +341,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -398,8 +352,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -411,8 +363,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -424,8 +374,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -437,8 +385,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -450,8 +396,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 
@@ -464,8 +408,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -477,8 +419,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -490,8 +430,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -503,8 +441,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -516,8 +452,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -529,8 +463,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -542,8 +474,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -555,8 +485,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -568,8 +496,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -581,8 +507,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -594,8 +518,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -607,8 +529,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -620,8 +540,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -633,8 +551,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -646,8 +562,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -659,8 +573,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 #define GST_BYTE_READER_PEEK_GET(bits,type,name) \
@@ -710,8 +622,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -723,8 +633,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -736,8 +644,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -749,8 +655,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -762,8 +666,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -775,8 +677,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -788,8 +688,6 @@
  * and update the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 /**
@@ -801,8 +699,6 @@
  * but keep the current position.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 
 GST_BYTE_READER_PEEK_GET(32,gfloat,float32_le)
@@ -825,8 +721,6 @@
  *
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_byte_reader_get_data (GstByteReader * reader, guint size,
@@ -848,8 +742,6 @@
  *
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- * 
- * Since: 0.10.22
  */
 gboolean
 gst_byte_reader_peek_data (const GstByteReader * reader, guint size,
@@ -872,8 +764,6 @@
  * updates the current position. Free with g_free() when no longer needed.
  *
  * Returns: %TRUE if successful, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_byte_reader_dup_data (GstByteReader * reader, guint size, guint8 ** val)
@@ -922,8 +812,6 @@
  * gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4);
  * // -> returns -1
  * </programlisting>
- *
- * Since: 0.10.24
  */
 guint
 gst_byte_reader_masked_scan_uint32 (const GstByteReader * reader, guint32 mask,
@@ -1019,8 +907,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be skipped, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 /**
  * gst_byte_reader_skip_string_utf8:
@@ -1034,8 +920,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be skipped, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 GST_BYTE_READER_SKIP_STRING (8);
 
@@ -1051,8 +935,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be skipped, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 GST_BYTE_READER_SKIP_STRING (16);
 
@@ -1068,8 +950,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be skipped, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 GST_BYTE_READER_SKIP_STRING (32);
 
@@ -1088,8 +968,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be skipped, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 /**
  * gst_byte_reader_peek_string_utf8:
@@ -1108,8 +986,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be skipped, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_byte_reader_peek_string_utf8 (const GstByteReader * reader,
@@ -1143,8 +1019,6 @@
  * This function will fail if no NUL-terminator was found in in the data.
  *
  * Returns: %TRUE if a string could be found, %FALSE otherwise.
- *
- * Since: 0.10.24
  */
 gboolean
 gst_byte_reader_get_string_utf8 (GstByteReader * reader, const gchar ** str)
@@ -1201,8 +1075,6 @@
  *
  * Returns: %TRUE if a string could be read into @str, %FALSE otherwise. The
  *     string put into @str must be freed with g_free() when no longer needed.
- *
- * Since: 0.10.24
  */
 GST_BYTE_READER_DUP_STRING (8, gchar);
 
@@ -1229,8 +1101,6 @@
  *
  * Returns: %TRUE if a string could be read, %FALSE otherwise. The
  *     string put into @str must be freed with g_free() when no longer needed.
- *
- * Since: 0.10.24
  */
 GST_BYTE_READER_DUP_STRING (16, guint16);
 
@@ -1257,7 +1127,5 @@
  *
  * Returns: %TRUE if a string could be read, %FALSE otherwise. The
  *     string put into @str must be freed with g_free() when no longer needed.
- *
- * Since: 0.10.24
  */
 GST_BYTE_READER_DUP_STRING (32, guint32);
diff --git a/libs/gst/base/gstbytereader.h b/libs/gst/base/gstbytereader.h
index 2accb10..15ac2ed 100644
--- a/libs/gst/base/gstbytereader.h
+++ b/libs/gst/base/gstbytereader.h
@@ -30,7 +30,8 @@
 
 /**
  * GstByteReader:
- * @data: Data from which the bit reader will read
+ * @data: (array length=size): Data from which the bit reader will
+ *   read
  * @size: Size of @data in bytes
  * @byte: Current byte position
  *
@@ -150,8 +151,6 @@
  * used. This macro can used be to initialize a variable, but it cannot
  * be assigned to a variable. In that case you have to use
  * gst_byte_reader_init().
- *
- * Since: 0.10.22
  */
 #define GST_BYTE_READER_INIT(data, size) {data, size, 0}
 
diff --git a/libs/gst/base/gstbytewriter-docs.h b/libs/gst/base/gstbytewriter-docs.h
index da4c20e..c15b4c3 100644
--- a/libs/gst/base/gstbytewriter-docs.h
+++ b/libs/gst/base/gstbytewriter-docs.h
@@ -31,8 +31,6 @@
  *
  * Writes a unsigned 8 bit integer to @writer without checking if there
  * is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint8_unchecked (GstByteWriter *writer, guint8 val);
 
@@ -43,8 +41,6 @@
  *
  * Writes a unsigned big endian 16 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint16_be_unchecked (GstByteWriter *writer, guint16 val);
 
@@ -55,8 +51,6 @@
  *
  * Writes a unsigned big endian 24 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint24_be_unchecked (GstByteWriter *writer, guint32 val);
 
@@ -67,8 +61,6 @@
  *
  * Writes a unsigned big endian 32 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint32_be_unchecked (GstByteWriter *writer, guint32 val);
 
@@ -79,8 +71,6 @@
  *
  * Writes a unsigned big endian 64 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint64_be_unchecked (GstByteWriter *writer, guint64 val);
 
@@ -91,8 +81,6 @@
  *
  * Writes a unsigned little endian 16 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint16_le_unchecked (GstByteWriter *writer, guint16 val);
 
@@ -103,8 +91,6 @@
  *
  * Writes a unsigned little endian 24 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint24_le_unchecked (GstByteWriter *writer, guint32 val);
 
@@ -115,8 +101,6 @@
  *
  * Writes a unsigned little endian 32 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint32_le_unchecked (GstByteWriter *writer, guint32 val);
 
@@ -127,8 +111,6 @@
  *
  * Writes a unsigned little endian 64 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_uint64_le_unchecked (GstByteWriter *writer, guint64 val);
 
@@ -139,8 +121,6 @@
  *
  * Writes a signed 8 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int8_unchecked (GstByteWriter *writer, gint8 val);
 
@@ -151,8 +131,6 @@
  *
  * Writes a signed big endian 16 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int16_be_unchecked (GstByteWriter *writer, gint16 val);
 
@@ -163,8 +141,6 @@
  *
  * Writes a signed big endian 24 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int24_be_unchecked (GstByteWriter *writer, gint32 val);
 
@@ -175,8 +151,6 @@
  *
  * Writes a signed big endian 32 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int32_be_unchecked (GstByteWriter *writer, gint32 val);
 
@@ -187,8 +161,6 @@
  *
  * Writes a signed big endian 64 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int64_be_unchecked (GstByteWriter *writer, gint64 val);
 
@@ -199,8 +171,6 @@
  *
  * Writes a signed little endian 16 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int16_le_unchecked (GstByteWriter *writer, gint16 val);
 
@@ -211,8 +181,6 @@
  *
  * Writes a signed little endian 24 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int24_le_unchecked (GstByteWriter *writer, gint32 val);
 
@@ -223,8 +191,6 @@
  *
  * Writes a signed little endian 32 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int32_le_unchecked (GstByteWriter *writer, gint32 val);
 
@@ -235,8 +201,6 @@
  *
  * Writes a signed little endian 64 bit integer to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_int64_le_unchecked (GstByteWriter *writer, gint64 val);
 
@@ -247,8 +211,6 @@
  *
  * Writes a big endian 32 bit float to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_float32_be_unchecked (GstByteWriter *writer, gfloat val);
 
@@ -259,8 +221,6 @@
  *
  * Writes a big endian 64 bit float to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_float64_be_unchecked (GstByteWriter *writer, gdouble val);
 
@@ -271,8 +231,6 @@
  *
  * Writes a little endian 32 bit float to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_float32_le_unchecked (GstByteWriter *writer, gfloat val);
 
@@ -283,8 +241,6 @@
  *
  * Writes a little endian 64 bit float to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_float64_le_unchecked (GstByteWriter *writer, gdouble val);
 
@@ -296,8 +252,6 @@
  *
  * Writes @size bytes of @data to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_put_data_unchecked (GstByteWriter *writer, const guint8 *data, guint size);
 
@@ -309,8 +263,6 @@
  *
  * Writes @size bytes containing @value to @writer without
  * checking if there is enough free space available in the byte writer.
- *
- * Since: 0.10.31
  */
 void gst_byte_writer_fill_unchecked (GstByteWriter *writer, guint8 value, guint size);
 
diff --git a/libs/gst/base/gstbytewriter.c b/libs/gst/base/gstbytewriter.c
index fc41bbc..746a622 100644
--- a/libs/gst/base/gstbytewriter.c
+++ b/libs/gst/base/gstbytewriter.c
@@ -46,8 +46,6 @@
  * Free-function: gst_byte_writer_free
  *
  * Returns: (transfer full): a new, empty #GstByteWriter instance
- *
- * Since: 0.10.26
  */
 GstByteWriter *
 gst_byte_writer_new (void)
@@ -69,8 +67,6 @@
  * Free-function: gst_byte_writer_free
  *
  * Returns: (transfer full): a new #GstByteWriter instance
- *
- * Since: 0.10.26
  */
 GstByteWriter *
 gst_byte_writer_new_with_size (guint size, gboolean fixed)
@@ -98,8 +94,6 @@
  * Free-function: gst_byte_writer_free
  *
  * Returns: (transfer full): a new #GstByteWriter instance
- *
- * Since: 0.10.26
  */
 GstByteWriter *
 gst_byte_writer_new_with_data (guint8 * data, guint size, gboolean initialized)
@@ -120,8 +114,6 @@
  * @writer: #GstByteWriter instance
  *
  * Initializes @writer to an empty instance
- *
- * Since: 0.10.26
  */
 void
 gst_byte_writer_init (GstByteWriter * writer)
@@ -140,8 +132,6 @@
  * @fixed: If %TRUE the data can't be reallocated
  *
  * Initializes @writer with the given initial data size.
- *
- * Since: 0.10.26
  */
 void
 gst_byte_writer_init_with_size (GstByteWriter * writer, guint size,
@@ -160,16 +150,13 @@
 /**
  * gst_byte_writer_init_with_data:
  * @writer: #GstByteWriter instance
- * @data: (in callee-allocated) (array length=size) (transfer none): Memory
- *     area for writing
+ * @data: (array length=size) (transfer none): Memory area for writing
  * @size: Size of @data in bytes
  * @initialized: If %TRUE the complete data can be read from the beginning
  *
  * Initializes @writer with the given
  * memory area. If @initialized is %TRUE it is possible to
  * read @size bytes from the #GstByteWriter from the beginning.
- *
- * Since: 0.10.26
  */
 void
 gst_byte_writer_init_with_data (GstByteWriter * writer, guint8 * data,
@@ -192,8 +179,6 @@
  *
  * Resets @writer and frees the data if it's
  * owned by @writer.
- *
- * Since: 0.10.26
  */
 void
 gst_byte_writer_reset (GstByteWriter * writer)
@@ -213,9 +198,8 @@
  *
  * Free-function: g_free
  *
- * Returns: (transfer full): the current data. g_free() after usage.
- *
- * Since: 0.10.26
+ * Returns: (array) (transfer full): the current data. g_free() after
+ * usage.
  */
 guint8 *
 gst_byte_writer_reset_and_get_data (GstByteWriter * writer)
@@ -243,8 +227,6 @@
  *
  * Returns: (transfer full): the current data as buffer. gst_buffer_unref()
  *     after usage.
- *
- * Since: 0.10.26
  */
 GstBuffer *
 gst_byte_writer_reset_and_get_buffer (GstByteWriter * writer)
@@ -272,8 +254,6 @@
  * @writer: (in) (transfer full): #GstByteWriter instance
  *
  * Frees @writer and all memory allocated by it.
- *
- * Since: 0.10.26
  */
 void
 gst_byte_writer_free (GstByteWriter * writer)
@@ -294,8 +274,6 @@
  * Free-function: g_free
  *
  * Returns: (transfer full): the current data. g_free() after usage.
- *
- * Since: 0.10.26
  */
 guint8 *
 gst_byte_writer_free_and_get_data (GstByteWriter * writer)
@@ -321,8 +299,6 @@
  *
  * Returns: (transfer full): the current data as buffer. gst_buffer_unref()
  *     after usage.
- *
- * Since: 0.10.26
  */
 GstBuffer *
 gst_byte_writer_free_and_get_buffer (GstByteWriter * writer)
@@ -345,8 +321,6 @@
  * -1 is returned the remaining size is only limited by system resources.
  *
  * Returns: the remaining size of data that can still be written
- *
- * Since: 0.10.26
  */
 guint
 gst_byte_writer_get_remaining (const GstByteWriter * writer)
@@ -368,8 +342,6 @@
  * available and reallocates if necessary.
  *
  * Returns: %TRUE if at least @size bytes are still available
- *
- * Since: 0.10.26
  */
 gboolean
 gst_byte_writer_ensure_free_space (GstByteWriter * writer, guint size)
@@ -458,8 +430,6 @@
  * Writes a unsigned 8 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint16_be:
@@ -469,8 +439,6 @@
  * Writes a unsigned big endian 16 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint24_be:
@@ -480,8 +448,6 @@
  * Writes a unsigned big endian 24 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint32_be:
@@ -491,8 +457,6 @@
  * Writes a unsigned big endian 32 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint64_be:
@@ -502,8 +466,6 @@
  * Writes a unsigned big endian 64 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint16_le:
@@ -513,8 +475,6 @@
  * Writes a unsigned little endian 16 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint24_le:
@@ -524,8 +484,6 @@
  * Writes a unsigned little endian 24 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint32_le:
@@ -535,8 +493,6 @@
  * Writes a unsigned little endian 32 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_uint64_le:
@@ -546,8 +502,6 @@
  * Writes a unsigned little endian 64 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int8:
@@ -557,8 +511,6 @@
  * Writes a signed 8 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int16_be:
@@ -568,8 +520,6 @@
  * Writes a signed big endian 16 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int24_be:
@@ -579,8 +529,6 @@
  * Writes a signed big endian 24 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int32_be:
@@ -590,8 +538,6 @@
  * Writes a signed big endian 32 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int64_be:
@@ -601,8 +547,6 @@
  * Writes a signed big endian 64 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int16_le:
@@ -612,8 +556,6 @@
  * Writes a signed little endian 16 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int24_le:
@@ -623,8 +565,6 @@
  * Writes a signed little endian 24 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int32_le:
@@ -634,8 +574,6 @@
  * Writes a signed little endian 32 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_int64_le:
@@ -645,8 +583,6 @@
  * Writes a signed little endian 64 bit integer to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_float32_be:
@@ -656,8 +592,6 @@
  * Writes a big endian 32 bit float to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.27
  */
 /**
  * gst_byte_writer_put_float64_be:
@@ -667,8 +601,6 @@
  * Writes a big endian 64 bit float to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.27
  */
 /**
  * gst_byte_writer_put_float32_le:
@@ -678,8 +610,6 @@
  * Writes a little endian 32 bit float to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.27
  */
 /**
  * gst_byte_writer_put_float64_le:
@@ -689,8 +619,6 @@
  * Writes a little endian 64 bit float to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.27
  */
 /**
  * gst_byte_writer_put_string_utf8:
@@ -701,8 +629,6 @@
  * Writes a NUL-terminated UTF8 string to @writer (including the terminator).
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_string_utf16:
@@ -712,8 +638,6 @@
  * Writes a NUL-terminated UTF16 string to @writer (including the terminator).
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_string_utf32:
@@ -723,8 +647,6 @@
  * Writes a NUL-terminated UTF32 string to @writer (including the terminator).
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_put_data:
@@ -735,8 +657,6 @@
  * Writes @size bytes of @data to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_fill:
@@ -747,8 +667,6 @@
  * Writes @size bytes containing @value to @writer.
  *
  * Returns: %TRUE if the value could be written
- *
- * Since: 0.10.27
  */
 
 /**
diff --git a/libs/gst/base/gstbytewriter.h b/libs/gst/base/gstbytewriter.h
index 72da716..079e16f 100644
--- a/libs/gst/base/gstbytewriter.h
+++ b/libs/gst/base/gstbytewriter.h
@@ -73,8 +73,6 @@
  * @writer: #GstByteWriter instance
  *
  * Returns: The current position of the read/write cursor
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_set_pos:
@@ -85,16 +83,12 @@
  * can only be between 0 and the current size.
  *
  * Returns: %TRUE if the new position could be set
- *
- * Since: 0.10.26
  */
 /**
  * gst_byte_writer_get_size:
  * @writer: #GstByteWriter instance
  *
  * Returns: The current, initialized size of the data
- *
- * Since: 0.10.26
  */
 #ifdef _FOOL_GTK_DOC_
 G_INLINE_FUNC guint     gst_byte_writer_get_pos  (const GstByteWriter *writer);
@@ -164,8 +158,6 @@
  * ISO-8859-1).
  *
  * Returns: %TRUE if the string could be written
- *
- * Since: 0.10.26
  */
 #define gst_byte_writer_put_string(writer, data) \
   gst_byte_writer_put_string_utf8(writer, data)
diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c
index f40463c..19c24f2 100644
--- a/libs/gst/base/gstcollectpads.c
+++ b/libs/gst/base/gstcollectpads.c
@@ -78,8 +78,6 @@
  * </itemizedlist>
  *
  * Last reviewed on 2011-10-28 (0.10.36)
- *
- * Since: 0.10.36
  */
 
 #ifdef HAVE_CONFIG_H
@@ -109,6 +107,7 @@
 {
   /* with LOCK and/or STREAM_LOCK */
   gboolean started;
+  gboolean stream_started;
 
   /* with STREAM_LOCK */
   guint32 cookie;               /* @data list cookie */
@@ -235,6 +234,7 @@
   pads->priv->queuedpads = 0;
   pads->priv->eospads = 0;
   pads->priv->started = FALSE;
+  pads->priv->stream_started = FALSE;
 
   g_rec_mutex_init (&pads->stream_lock);
 
@@ -293,8 +293,6 @@
  * MT safe.
  *
  * Returns: (transfer full): a new #GstCollectPads, or NULL in case of an error.
- *
- * Since: 0.10.36
  */
 GstCollectPads *
 gst_collect_pads_new (void)
@@ -325,8 +323,6 @@
  * the oldest buffer when all pads have been collected.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_buffer_function (GstCollectPads * pads,
@@ -349,8 +345,6 @@
  * Set the timestamp comparison function.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 /* NOTE allowing to change comparison seems not advisable;
 no known use-case, and collaboration with default algorithm is unpredictable.
@@ -386,8 +380,6 @@
  * If this callback is set, the former will be unset.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_function (GstCollectPads * pads,
@@ -445,8 +437,6 @@
  * if so (unusually) needed.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_event_function (GstCollectPads * pads,
@@ -475,8 +465,6 @@
  * if so (unusually) needed.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_query_function (GstCollectPads * pads,
@@ -501,8 +489,6 @@
 *
 * Convenience clipping function that converts incoming buffer's timestamp
 * to running time, or clips the buffer if outside configured segment.
-*
-* Since: 0.10.37
 */
 GstFlowReturn
 gst_collect_pads_clip_running_time (GstCollectPads * pads,
@@ -541,8 +527,6 @@
  *
  * Install a clipping function that is called right after a buffer is received
  * on a pad managed by @pads. See #GstCollectPad2ClipFunction for more info.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_clip_function (GstCollectPads * pads,
@@ -579,8 +563,6 @@
  *
  * Returns: a new #GstCollectData to identify the new pad. Or NULL
  *   if wrong parameters are supplied.
- *
- * Since: 0.10.36
  */
 GstCollectData *
 gst_collect_pads_add_pad (GstCollectPads * pads, GstPad * pad, guint size)
@@ -623,8 +605,6 @@
  *
  * MT safe.
  *
- * Since: 0.10.36
- *
  * Returns: a new #GstCollectData to identify the new pad. Or NULL
  *   if wrong parameters are supplied.
  */
@@ -701,8 +681,6 @@
  * MT safe.
  *
  * Returns: %TRUE if the pad could be removed.
- *
- * Since: 0.10.36
  */
 gboolean
 gst_collect_pads_remove_pad (GstCollectPads * pads, GstPad * pad)
@@ -776,89 +754,6 @@
   }
 }
 
-/**
- * gst_collect_pads_is_active:
- * @pads: the collectspads to use
- * @pad: the pad to check
- *
- * Check if a pad is active.
- *
- * This function is currently not implemented.
- *
- * MT safe.
- *
- * Returns: %TRUE if the pad is active.
- *
- * Since: 0.10.36
- */
-gboolean
-gst_collect_pads_is_active (GstCollectPads * pads, GstPad * pad)
-{
-  g_return_val_if_fail (pads != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), FALSE);
-  g_return_val_if_fail (pad != NULL, FALSE);
-  g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
-
-  g_warning ("gst_collect_pads_is_active() is not implemented");
-
-  return FALSE;
-}
-
-/**
- * gst_collect_pads_collect:
- * @pads: the collectspads to use
- *
- * Collect data on all pads. This function is usually called
- * from a #GstTask function in an element. 
- *
- * This function is currently not implemented.
- *
- * MT safe.
- *
- * Returns: #GstFlowReturn of the operation.
- *
- * Since: 0.10.36
- */
-GstFlowReturn
-gst_collect_pads_collect (GstCollectPads * pads)
-{
-  g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), GST_FLOW_ERROR);
-
-  g_warning ("gst_collect_pads_collect() is not implemented");
-
-  return GST_FLOW_NOT_SUPPORTED;
-}
-
-/**
- * gst_collect_pads_collect_range:
- * @pads: the collectspads to use
- * @offset: the offset to collect
- * @length: the length to collect
- *
- * Collect data with @offset and @length on all pads. This function
- * is typically called in the getrange function of an element. 
- *
- * This function is currently not implemented.
- *
- * MT safe.
- *
- * Returns: #GstFlowReturn of the operation.
- *
- * Since: 0.10.36
- */
-GstFlowReturn
-gst_collect_pads_collect_range (GstCollectPads * pads, guint64 offset,
-    guint length)
-{
-  g_return_val_if_fail (pads != NULL, GST_FLOW_ERROR);
-  g_return_val_if_fail (GST_IS_COLLECT_PADS (pads), GST_FLOW_ERROR);
-
-  g_warning ("gst_collect_pads_collect_range() is not implemented");
-
-  return GST_FLOW_NOT_SUPPORTED;
-}
-
 /*
  * Must be called with STREAM_LOCK.
  */
@@ -903,8 +798,6 @@
  * e.g. by sending a FLUSH_START downstream.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_flushing (GstCollectPads * pads, gboolean flushing)
@@ -925,8 +818,6 @@
  * Starts the processing of data in the collect_pads.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_start (GstCollectPads * pads)
@@ -969,8 +860,6 @@
  * will also unblock any blocking operations.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_stop (GstCollectPads * pads)
@@ -1013,6 +902,7 @@
     unref_data (pads->priv->earliest_data);
   pads->priv->earliest_data = NULL;
   pads->priv->earliest_time = GST_CLOCK_TIME_NONE;
+  pads->priv->stream_started = FALSE;
 
   GST_OBJECT_UNLOCK (pads);
   /* Wake them up so they can end the chain functions. */
@@ -1034,8 +924,6 @@
  *
  * Returns: The buffer in @data or NULL if no buffer is queued.
  *  should unref the buffer after usage.
- *
- * Since: 0.10.36
  */
 GstBuffer *
 gst_collect_pads_peek (GstCollectPads * pads, GstCollectData * data)
@@ -1068,8 +956,6 @@
  *
  * Returns: (transfer full): The buffer in @data or NULL if no buffer was
  *   queued. You should unref the buffer after usage.
- *
- * Since: 0.10.36
  */
 GstBuffer *
 gst_collect_pads_pop (GstCollectPads * pads, GstCollectData * data)
@@ -1122,8 +1008,6 @@
  *
  * Returns: The maximum number of bytes queued on all pads. This function
  * returns 0 if a pad has no queued buffer.
- *
- * Since: 0.10.36
  */
 /* we might pre-calculate this in some struct field,
  * but would then have to maintain this in _chain and particularly _pop, etc,
@@ -1193,8 +1077,6 @@
  *
  * Returns: The number of bytes flushed This can be less than @size and
  * is 0 if the pad was end-of-stream.
- *
- * Since: 0.10.36
  */
 guint
 gst_collect_pads_flush (GstCollectPads * pads, GstCollectData * data,
@@ -1239,8 +1121,6 @@
  *
  * MT safe.
  *
- * Since: 0.10.36
- *
  * Returns: (transfer full): A sub buffer. The size of the buffer can be less that requested.
  * A return of NULL signals that the pad is end-of-stream.
  * Unref the buffer after use.
@@ -1280,8 +1160,6 @@
  *
  * MT safe.
  *
- * Since: 0.10.36
- *
  * Returns: A sub buffer. The size of the buffer can be less that requested.
  * A return of NULL signals that the pad is end-of-stream.
  * Unref the buffer after use.
@@ -1313,8 +1191,6 @@
  * in the callback.
  *
  * MT safe.
- *
- * Since: 0.10.36
  */
 void
 gst_collect_pads_set_waiting (GstCollectPads * pads, GstCollectData * data,
@@ -1539,8 +1415,6 @@
  *
  * This function should be called with STREAM_LOCK held,
  * such as in the callback.
- *
- * Since: 0.10.36
  */
 static void
 gst_collect_pads_find_best_pad (GstCollectPads * pads,
@@ -1697,8 +1571,6 @@
  * Default GstCollectPads event handling that elements should always
  * chain up to to ensure proper operation.  Element might however indicate
  * event should not be forwarded downstream.
- *
- * Since: 0.11.x
  */
 gboolean
 gst_collect_pads_event_default (GstCollectPads * pads, GstCollectData * data,
@@ -1837,8 +1709,16 @@
        * accumulated and this is certainly not what we want. */
       goto eat;
     }
-    case GST_EVENT_CAPS:
     case GST_EVENT_STREAM_START:
+      /* let the only the first one go through */
+      if (!pads->priv->stream_started) {
+        pads->priv->stream_started = TRUE;
+        goto forward;
+      } else {
+        goto eat;
+      }
+      break;
+    case GST_EVENT_CAPS:
     case GST_EVENT_STREAM_CONFIG:
       goto eat;
     default:
@@ -1928,8 +1808,6 @@
  * Default GstCollectPads query handling that elements should always
  * chain up to to ensure proper operation.  Element might however indicate
  * query should not be forwarded downstream.
- *
- * Since: 0.11.x
  */
 gboolean
 gst_collect_pads_query_default (GstCollectPads * pads, GstCollectData * data,
diff --git a/libs/gst/base/gstcollectpads.h b/libs/gst/base/gstcollectpads.h
index b4dfa75..6436bb8 100644
--- a/libs/gst/base/gstcollectpads.h
+++ b/libs/gst/base/gstcollectpads.h
@@ -47,8 +47,6 @@
  * A function that will be called when the #GstCollectData will be freed.
  * It is passed the pointer to the structure and should free any custom
  * memory and resources allocated for it.
- *
- * Since: 0.10.36
  */
 typedef void (*GstCollectDataDestroyNotify) (GstCollectData *data);
 
@@ -63,8 +61,6 @@
  * @GST_COLLECT_PADS_STATE_LOCKED:      Set collectdata's pad WAITING state must
  *                                      not be changed.
  * #GstCollectPadsStateFlags indicate private state of a collectdata('s pad).
- *
- * Since: 0.10.36
  */
 typedef enum {
   GST_COLLECT_PADS_STATE_EOS = 1 << 0,
@@ -80,8 +76,6 @@
  *
  * A flags word containing #GstCollectPadsStateFlags flags set
  * on this collected pad.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_STATE(data)                 (((GstCollectData *) data)->state)
 /**
@@ -90,8 +84,6 @@
  * @flag: the #GstCollectPadsStateFlags to check.
  *
  * Gives the status of a specific flag on a collected pad.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_STATE_IS_SET(data,flag)     !!(GST_COLLECT_PADS_STATE (data) & flag)
 /**
@@ -100,8 +92,6 @@
  * @flag: the #GstCollectPadsStateFlags to set.
  *
  * Sets a state flag on a collected pad.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_STATE_SET(data,flag)        (GST_COLLECT_PADS_STATE (data) |= flag)
 /**
@@ -110,8 +100,6 @@
  * @flag: the #GstCollectPadsStateFlags to clear.
  *
  * Clears a state flag on a collected pad.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_STATE_UNSET(data,flag)      (GST_COLLECT_PADS_STATE (data) &= ~(flag))
 
@@ -124,8 +112,6 @@
  * @segment: last segment received.
  *
  * Structure used by the collect_pads.
- *
- * Since: 0.10.36
  */
 struct _GstCollectData
 {
@@ -154,8 +140,6 @@
  * A function that will be called when all pads have received data.
  *
  * Returns: #GST_FLOW_OK for success
- *
- * Since: 0.10.36
  */
 typedef GstFlowReturn (*GstCollectPadsFunction) (GstCollectPads *pads, gpointer user_data);
 
@@ -171,8 +155,6 @@
  * and NULL @data.
  *
  * Returns: #GST_FLOW_OK for success
- *
- * Since: 0.10.36
  */
 typedef GstFlowReturn (*GstCollectPadsBufferFunction) (GstCollectPads *pads, GstCollectData *data,
                                                         GstBuffer *buffer, gpointer user_data);
@@ -191,8 +173,6 @@
  * Returns: Integer less than zero when first timestamp is deemed older than the second one.
  *          Zero if the timestamps are deemed equally old.
  *          Integer greate than zero when second timestamp is deemed older than the first one.
- *
- * Since: 0.10.36
  */
 typedef gint (*GstCollectPadsCompareFunction) (GstCollectPads *pads,
                                                 GstCollectData * data1, GstClockTime timestamp1,
@@ -212,8 +192,6 @@
  * being handled by the default handler).
  *
  * Returns: %TRUE if the pad could handle the event
- *
- * Since: 0.10.36
  */
 typedef gboolean (*GstCollectPadsEventFunction)        (GstCollectPads *pads, GstCollectData * pad,
                                                          GstEvent * event, gpointer user_data);
@@ -231,8 +209,6 @@
  * events downstream (with gst_pad_event_default()).
  *
  * Returns: %TRUE if the pad could handle the event
- *
- * Since: 0.11.x
  */
 typedef gboolean (*GstCollectPadsQueryFunction)        (GstCollectPads *pads, GstCollectData * pad,
                                                          GstQuery * query, gpointer user_data);
@@ -255,8 +231,6 @@
  * @outbuffer or return %NULL in @outbuffer if the buffer should be dropped.
  *
  * Returns: a #GstFlowReturn that corresponds to the result of clipping.
- *
- * Since: 0.10.36
  */
 typedef GstFlowReturn (*GstCollectPadsClipFunction) (GstCollectPads *pads, GstCollectData *data,
                                                    GstBuffer *inbuffer, GstBuffer **outbuffer,
@@ -269,8 +243,6 @@
  * Get the stream lock of @pads. The stream lock is used to coordinate and
  * serialize execution among the various streams being collected, and in
  * protecting the resources used to accomplish this.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_GET_STREAM_LOCK(pads) (&((GstCollectPads *)pads)->stream_lock)
 /**
@@ -278,8 +250,6 @@
  * @pads: a #GstCollectPads
  *
  * Lock the stream lock of @pads.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_STREAM_LOCK(pads)     g_rec_mutex_lock(GST_COLLECT_PADS_GET_STREAM_LOCK (pads))
 /**
@@ -287,8 +257,6 @@
  * @pads: a #GstCollectPads
  *
  * Unlock the stream lock of @pads.
- *
- * Since: 0.10.36
  */
 #define GST_COLLECT_PADS_STREAM_UNLOCK(pads)   g_rec_mutex_unlock(GST_COLLECT_PADS_GET_STREAM_LOCK (pads))
 
@@ -297,8 +265,6 @@
  * @data: #GList of #GstCollectData managed by this #GstCollectPads.
  *
  * Collectpads object.
- *
- * Since: 0.10.36
  */
 struct _GstCollectPads {
   GstObject      object;
@@ -352,12 +318,8 @@
                                                  GstCollectDataDestroyNotify destroy_notify,
                                                  gboolean lock);
 gboolean        gst_collect_pads_remove_pad    (GstCollectPads *pads, GstPad *pad);
-gboolean        gst_collect_pads_is_active     (GstCollectPads *pads, GstPad *pad);
 
 /* start/stop collection */
-GstFlowReturn   gst_collect_pads_collect       (GstCollectPads *pads);
-GstFlowReturn   gst_collect_pads_collect_range (GstCollectPads *pads, guint64 offset, guint length);
-
 void            gst_collect_pads_start         (GstCollectPads *pads);
 void            gst_collect_pads_stop          (GstCollectPads *pads);
 void            gst_collect_pads_set_flushing  (GstCollectPads *pads, gboolean flushing);
diff --git a/libs/gst/base/gstindex.c b/libs/gst/base/gstindex.c
index a0505cc..a1b9d0e 100644
--- a/libs/gst/base/gstindex.c
+++ b/libs/gst/base/gstindex.c
@@ -496,8 +496,6 @@
  *
  * Lets the app register a custom function to map index
  * ids to writer descriptions.
- *
- * Since: 0.10.18
  */
 void
 gst_index_set_resolver_full (GstIndex * index, GstIndexResolver resolver,
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c
index 23412b7..e3dba71 100644
--- a/libs/gst/base/gsttypefindhelper.c
+++ b/libs/gst/base/gsttypefindhelper.c
@@ -260,8 +260,6 @@
  *
  * Returns: (transfer full): the #GstCaps corresponding to the data stream.
  *     Returns #NULL if no #GstCaps matches the data stream.
- *
- * Since: 0.10.26
  */
 GstCaps *
 gst_type_find_helper_get_range (GstObject * obj, GstObject * parent,
@@ -601,8 +599,6 @@
  * Returns: (transfer full): the #GstCaps corresponding to @extension, or
  *     #NULL if no type could be found. The caller should free the caps
  *     returned with gst_caps_unref().
- * 
- * Since: 0.10.23
  */
 GstCaps *
 gst_type_find_helper_for_extension (GstObject * obj, const gchar * extension)
diff --git a/libs/gst/check/Makefile.in b/libs/gst/check/Makefile.in
index 5c57700..e03f4c3 100644
--- a/libs/gst/check/Makefile.in
+++ b/libs/gst/check/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -281,7 +281,9 @@
 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@
diff --git a/libs/gst/check/gstcheck.c b/libs/gst/check/gstcheck.c
index 98934f9..4f96793 100644
--- a/libs/gst/check/gstcheck.c
+++ b/libs/gst/check/gstcheck.c
@@ -174,7 +174,14 @@
   return GST_FLOW_OK;
 }
 
-/* setup an element for a filter test with mysrcpad and mysinkpad */
+/**
+ * gst_check_setup_element:
+ * @factory: factory
+ *
+ * setup an element for a filter test with mysrcpad and mysinkpad
+ *
+ * Returns: (transfer full): a new element
+ */
 GstElement *
 gst_check_setup_element (const gchar * factory)
 {
@@ -199,12 +206,27 @@
   gst_object_unref (element);
 }
 
+/**
+ * gst_check_setup_src_pad:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ *
+ * Returns: (transfer full): a new pad
+ */
 GstPad *
 gst_check_setup_src_pad (GstElement * element, GstStaticPadTemplate * tmpl)
 {
   return gst_check_setup_src_pad_by_name (element, tmpl, "sink");
 }
 
+/**
+ * gst_check_setup_src_pad_by_name:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ * @name: name
+ *
+ * Returns: (transfer full): a new pad
+ */
 GstPad *
 gst_check_setup_src_pad_by_name (GstElement * element,
     GstStaticPadTemplate * tmpl, const gchar * name)
@@ -270,12 +292,27 @@
   gst_check_teardown_pad_by_name (element, "sink");
 }
 
+/**
+ * gst_check_setup_sink_pad:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ *
+ * Returns: (transfer full): a new pad
+ */
 GstPad *
 gst_check_setup_sink_pad (GstElement * element, GstStaticPadTemplate * tmpl)
 {
   return gst_check_setup_sink_pad_by_name (element, tmpl, "src");
 }
 
+/**
+ * gst_check_setup_sink_pad_by_name:
+ * @element: element to setup pad on
+ * @tmpl: pad template
+ * @name: name
+ *
+ * Returns: (transfer full): a new pad
+ */
 GstPad *
 gst_check_setup_sink_pad_by_name (GstElement * element,
     GstStaticPadTemplate * tmpl, const gchar * name)
@@ -315,8 +352,6 @@
  *
  * Unref and remove all buffers that are in the global @buffers GList,
  * emptying the list.
- *
- * Since: 0.10.18
  */
 void
 gst_check_drop_buffers (void)
@@ -334,8 +369,6 @@
  *
  * Compare two caps with gst_caps_is_equal and fail unless they are
  * equal.
- *
- * Since: 0.10.18
  */
 void
 gst_check_caps_equal (GstCaps * caps1, GstCaps * caps2)
@@ -413,8 +446,6 @@
  * pushing the final buffer in the list.
  * This can be used to set up a test which pushes some buffers and then an
  * invalid buffer, when the final buffer is expected to fail, for example.
- * 
- * Since: 0.10.18
  */
 /* FIXME 0.11: rename this function now that there's GstBufferList? */
 void
@@ -556,8 +587,6 @@
  * @buffer_in to this element. The element should create one buffer
  * and this will be compared with @buffer_out. We only check the caps
  * and the data of the buffers. This function unrefs the buffers.
- * 
- * Since: 0.10.18
  */
 void
 gst_check_element_push_buffer (const gchar * element_name,
diff --git a/libs/gst/check/gstcheck.h b/libs/gst/check/gstcheck.h
index ff66993..a527c1b 100644
--- a/libs/gst/check/gstcheck.h
+++ b/libs/gst/check/gstcheck.h
@@ -240,8 +240,6 @@
  * This macro checks that @a and @b are (almost) equal and aborts if this
  * is not the case, printing both expressions and the values they evaluated
  * to. This macro is for use in unit tests.
- *
- * Since: 0.10.14
  */
 #define fail_unless_equals_float(a, b)                            \
 G_STMT_START {                                                    \
@@ -261,8 +259,6 @@
  * This macro checks that @a and @b are (almost) equal and aborts if this
  * is not the case, printing both expressions and the values they evaluated
  * to. This macro is for use in unit tests.
- *
- * Since: 0.10.14
  */
 #define assert_equals_float(a, b) fail_unless_equals_float(a, b)
 
@@ -490,14 +486,6 @@
 #define ASSERT_BUFFER_REFCOUNT(buffer, name, value)             \
         ASSERT_MINI_OBJECT_REFCOUNT(buffer, name, value)
 
-#define ASSERT_MEMORY_REFCOUNT(memory, name, value)             \
-G_STMT_START {                                                  \
-  int rc;                                                       \
-  rc = memory->refcount;                                        \
-  fail_unless (rc == value,                                     \
-               name " (%p) refcount is %d instead of %d", memory, rc, value); \
-} G_STMT_END
-
 #define ASSERT_MINI_OBJECT_REFCOUNT(miniobj, name, value)       \
 G_STMT_START {                                                  \
   int rc;                                                       \
@@ -536,6 +524,12 @@
 
 #define _tcase_add_test __gst_tcase_add_test
 
+/* add define to skip broken tests */
+#define tcase_skip_broken_test(chain,test_func) \
+  if (0) { tcase_add_test(chain,test_func); } else { \
+    GST_ERROR ("FIXME: skipping test %s because it's broken.", G_STRINGIFY (test_func)); \
+  }
+
 G_END_DECLS
 
 #endif /* __GST_CHECK_H__ */
diff --git a/libs/gst/check/gstconsistencychecker.c b/libs/gst/check/gstconsistencychecker.c
index 576b575..04d7348 100644
--- a/libs/gst/check/gstconsistencychecker.c
+++ b/libs/gst/check/gstconsistencychecker.c
@@ -27,8 +27,6 @@
  *
  * These macros and functions are for internal use of the unit tests found
  * inside the 'check' directories of various GStreamer packages.
- *
- * Since: 0.10.24
  */
 
 #include "gstconsistencychecker.h"
@@ -40,6 +38,8 @@
   volatile gboolean segment;
   volatile gboolean eos;
   volatile gboolean expect_flush;
+  volatile gboolean saw_serialized_event;
+  volatile gboolean saw_stream_start;
   GstObject *parent;
   GList *pads;
 };
@@ -71,7 +71,7 @@
   } else if (GST_IS_EVENT (data)) {
     GstEvent *event = (GstEvent *) data;
 
-    GST_DEBUG_OBJECT (pad, "%s", GST_EVENT_TYPE_NAME (event));
+    GST_DEBUG_OBJECT (pad, "Event : %s", GST_EVENT_TYPE_NAME (event));
     switch (GST_EVENT_TYPE (event)) {
       case GST_EVENT_FLUSH_START:
         /* getting two flush_start in a row seems to be okay
@@ -87,6 +87,10 @@
         consist->flushing = consist->expect_flush = FALSE;
         break;
       case GST_EVENT_STREAM_START:
+        fail_if (consist->saw_serialized_event && !consist->saw_stream_start,
+            "Got a STREAM_START event after a serialized event");
+        consist->saw_stream_start = TRUE;
+        break;
       case GST_EVENT_STREAM_CONFIG:
       case GST_EVENT_CAPS:
         /* ok to have these before segment event */
@@ -116,6 +120,13 @@
         /* FIXME : Figure out what to do for other events */
         break;
     }
+    if (GST_EVENT_IS_SERIALIZED (event)) {
+      fail_if (!consist->saw_stream_start
+          && GST_EVENT_TYPE (event) != GST_EVENT_STREAM_START,
+          "Got a serialized event (%s) before a STREAM_START",
+          GST_EVENT_TYPE_NAME (event));
+      consist->saw_serialized_event = TRUE;
+    }
   }
 
   return TRUE;
@@ -198,8 +209,6 @@
  * data flow is inconsistent.
  *
  * Returns: A #GstStreamConsistency structure used to track data flow.
- *
- * Since: 0.10.24
  */
 GstStreamConsistency *
 gst_consistency_checker_new (GstPad * pad)
@@ -226,8 +235,6 @@
  * data flow is inconsistent.
  *
  * Returns: %TRUE if the pad was added
- *
- * Since: 0.10.37
  */
 gboolean
 gst_consistency_checker_add_pad (GstStreamConsistency * consist, GstPad * pad)
@@ -245,16 +252,17 @@
  * @consist: The #GstStreamConsistency to reset.
  *
  * Reset the stream checker's internal variables.
- *
- * Since: 0.10.24
  */
 
 void
 gst_consistency_checker_reset (GstStreamConsistency * consist)
 {
-  consist->eos = FALSE;
   consist->flushing = FALSE;
   consist->segment = FALSE;
+  consist->eos = FALSE;
+  consist->expect_flush = FALSE;
+  consist->saw_serialized_event = FALSE;
+  consist->saw_stream_start = FALSE;
 }
 
 /**
@@ -262,8 +270,6 @@
  * @consist: The #GstStreamConsistency to free.
  *
  * Frees the allocated data and probes associated with @consist.
- *
- * Since: 0.10.24
  */
 
 void
diff --git a/libs/gst/check/gstconsistencychecker.h b/libs/gst/check/gstconsistencychecker.h
index 4cbf3f8..35b675c 100644
--- a/libs/gst/check/gstconsistencychecker.h
+++ b/libs/gst/check/gstconsistencychecker.h
@@ -31,8 +31,6 @@
  * GstStreamConsistency:
  *
  * Opaque consistency checker handle.
- *
- * Since: 0.10.24
  */
 typedef struct _GstStreamConsistency GstStreamConsistency;
 
diff --git a/libs/gst/check/libcheck/Makefile.in b/libs/gst/check/libcheck/Makefile.in
index a02142b..910f594 100644
--- a/libs/gst/check/libcheck/Makefile.in
+++ b/libs/gst/check/libcheck/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -214,7 +214,9 @@
 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@
diff --git a/libs/gst/check/libcheck/check.h b/libs/gst/check/libcheck/check.h
index 75ebdde..5b29aca 100644
--- a/libs/gst/check/libcheck/check.h
+++ b/libs/gst/check/libcheck/check.h
@@ -232,7 +232,7 @@
         "Failure '"#expr"' occured" , ## __VA_ARGS__, NULL)
 
 /* Always fail */
-#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed"  __VA_ARGS__, NULL)
+#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed", __VA_ARGS__, NULL)
 
 /* Non macro version of #fail_unless, with more complicated interface */
 void CK_EXPORT _fail_unless (int result, const char *file,
diff --git a/libs/gst/check/libcheck/check.h.in b/libs/gst/check/libcheck/check.h.in
index 3ed1acd..b0edb41 100644
--- a/libs/gst/check/libcheck/check.h.in
+++ b/libs/gst/check/libcheck/check.h.in
@@ -232,7 +232,7 @@
         "Failure '"#expr"' occured" , ## __VA_ARGS__, NULL)
 
 /* Always fail */
-#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed"  __VA_ARGS__, NULL)
+#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed", __VA_ARGS__, NULL)
 
 /* Non macro version of #fail_unless, with more complicated interface */
 void CK_EXPORT _fail_unless (int result, const char *file,
diff --git a/libs/gst/controller/Makefile.in b/libs/gst/controller/Makefile.in
index 897da92..66c0266 100644
--- a/libs/gst/controller/Makefile.in
+++ b/libs/gst/controller/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -246,7 +246,9 @@
 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@
diff --git a/libs/gst/controller/gstargbcontrolbinding.c b/libs/gst/controller/gstargbcontrolbinding.c
index 9e4728a..ac73c5c 100644
--- a/libs/gst/controller/gstargbcontrolbinding.c
+++ b/libs/gst/controller/gstargbcontrolbinding.c
@@ -33,7 +33,7 @@
 
 #include "gstargbcontrolbinding.h"
 
-#include <math.h>
+#include <gst/math-compat.h>
 
 #define GST_CAT_DEFAULT control_binding_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
diff --git a/libs/gst/controller/gstdirectcontrolbinding.c b/libs/gst/controller/gstdirectcontrolbinding.c
index 0596489..bc85d93 100644
--- a/libs/gst/controller/gstdirectcontrolbinding.c
+++ b/libs/gst/controller/gstdirectcontrolbinding.c
@@ -32,7 +32,7 @@
 
 #include "gstdirectcontrolbinding.h"
 
-#include <math.h>
+#include <gst/math-compat.h>
 
 #define GST_CAT_DEFAULT control_binding_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
@@ -478,7 +478,7 @@
  * gst_direct_control_binding_new:
  * @object: the object of the property
  * @property_name: the property-name to attach the control source
- * @csource: the control source
+ * @cs: the control source
  *
  * Create a new control-binding that attaches the #GstControlSource to the
  * #GObject property.
diff --git a/libs/gst/controller/gstlfocontrolsource.c b/libs/gst/controller/gstlfocontrolsource.c
index 819518d..20ee0fd 100644
--- a/libs/gst/controller/gstlfocontrolsource.c
+++ b/libs/gst/controller/gstlfocontrolsource.c
@@ -556,7 +556,7 @@
   gobject_class->get_property = gst_lfo_control_source_get_property;
 
   /**
-   * GstLFOControlSource:waveform
+   * GstLFOControlSource:waveform:
    *
    * Specifies the waveform that should be used for this #GstLFOControlSource.
    */
@@ -566,7 +566,7 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstLFOControlSource:frequency
+   * GstLFOControlSource:frequency:
    *
    * Specifies the frequency that should be used for the waveform
    * of this #GstLFOControlSource. It should be large enough
@@ -578,7 +578,7 @@
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstLFOControlSource:timeshift
+   * GstLFOControlSource:timeshift:
    *
    * Specifies the timeshift to the right that should be used for the waveform
    * of this #GstLFOControlSource in nanoseconds.
@@ -593,7 +593,7 @@
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstLFOControlSource:amplitude
+   * GstLFOControlSource:amplitude:
    *
    * Specifies the amplitude for the waveform of this #GstLFOControlSource.
    */
@@ -603,7 +603,7 @@
           G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
 
   /**
-   * GstLFOControlSource:offset
+   * GstLFOControlSource:offset:
    *
    * Specifies the value offset for the waveform of this #GstLFOControlSource.
    */
diff --git a/libs/gst/controller/gsttimedvaluecontrolsource.h b/libs/gst/controller/gsttimedvaluecontrolsource.h
index e1dde55..d6624ed 100644
--- a/libs/gst/controller/gsttimedvaluecontrolsource.h
+++ b/libs/gst/controller/gsttimedvaluecontrolsource.h
@@ -48,6 +48,7 @@
 typedef struct _GstTimedValueControlSource GstTimedValueControlSource;
 typedef struct _GstTimedValueControlSourceClass GstTimedValueControlSourceClass;
 typedef struct _GstTimedValueControlSourcePrivate GstTimedValueControlSourcePrivate;
+typedef struct _GstControlPoint GstControlPoint;
 
 /**
  * GstControlPoint:
@@ -56,7 +57,7 @@
  * values used for interpolation. This "inherits" from
  * GstTimedValue.
  */
-typedef struct _GstControlPoint
+struct _GstControlPoint
 {
   /* fields from GstTimedValue. DO NOT CHANGE! */
   GstClockTime timestamp;       /* timestamp of the value change */
@@ -73,7 +74,7 @@
     } cubic;
   } cache;
 
-} GstControlPoint;
+};
 
 /**
  * GstTimedValueControlSource:
@@ -90,6 +91,7 @@
   gint nvalues;                 /* Number of control points */
   gboolean valid_cache;
 
+  /*< private >*/
   GstTimedValueControlSourcePrivate *priv;
   gpointer _gst_reserved[GST_PADDING];
 };
diff --git a/libs/gst/helpers/Makefile.in b/libs/gst/helpers/Makefile.in
index 7a9fc3f..d68803b 100644
--- a/libs/gst/helpers/Makefile.in
+++ b/libs/gst/helpers/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -205,7 +205,9 @@
 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@
diff --git a/libs/gst/net/Makefile.in b/libs/gst/net/Makefile.in
index 770630b..98691e2 100644
--- a/libs/gst/net/Makefile.in
+++ b/libs/gst/net/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -244,7 +244,9 @@
 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@
diff --git a/libs/gst/net/gstnettimepacket.c b/libs/gst/net/gstnettimepacket.c
index f4667f6..6d18ab6 100644
--- a/libs/gst/net/gstnettimepacket.c
+++ b/libs/gst/net/gstnettimepacket.c
@@ -43,10 +43,12 @@
 
 #include "gstnettimepacket.h"
 
+G_DEFINE_BOXED_TYPE (GstNetTimePacket, gst_net_time_packet,
+    gst_net_time_packet_copy, gst_net_time_packet_free);
 
 /**
  * gst_net_time_packet_new:
- * @buffer: a buffer from which to construct the packet, or NULL
+ * @buffer: (array): a buffer from which to construct the packet, or NULL
  *
  * Creates a new #GstNetTimePacket from a buffer received over the network. The
  * caller is responsible for ensuring that @buffer is at least
@@ -55,7 +57,7 @@
  * If @buffer is #NULL, the local and remote times will be set to
  * #GST_CLOCK_TIME_NONE.
  *
- * MT safe. Caller owns return value (g_free to free).
+ * MT safe. Caller owns return value (gst_net_time_packet_free to free).
  *
  * Returns: The new #GstNetTimePacket.
  */
@@ -80,6 +82,38 @@
 }
 
 /**
+ * gst_net_time_packet_free:
+ * @packet: the #GstNetTimePacket
+ *
+ * Free @packet.
+ */
+void
+gst_net_time_packet_free (GstNetTimePacket * packet)
+{
+  g_free (packet);
+}
+
+/**
+ * gst_net_time_packet_copy:
+ * @packet: the #GstNetTimePacket
+ *
+ * Make a copy of @packet.
+ *
+ * Returns: a copy of @packet, free with gst_net_time_packet_free().
+ */
+GstNetTimePacket *
+gst_net_time_packet_copy (const GstNetTimePacket * packet)
+{
+  GstNetTimePacket *ret;
+
+  ret = g_new0 (GstNetTimePacket, 1);
+  ret->local_time = packet->local_time;
+  ret->remote_time = packet->remote_time;
+
+  return ret;
+}
+
+/**
  * gst_net_time_packet_serialize:
  * @packet: the #GstNetTimePacket
  *
@@ -110,14 +144,14 @@
 /**
  * gst_net_time_packet_receive:
  * @socket: socket to receive the time packet on
- * @src_addr: (out): address of variable to return sender address
- * @err: return address for a #GError, or NULL
+ * @src_address: (out): address of variable to return sender address
+ * @error: return address for a #GError, or NULL
  *
  * Receives a #GstNetTimePacket over a socket. Handles interrupted system
  * calls, but otherwise returns NULL on error.
  *
  * Returns: (transfer full): a new #GstNetTimePacket, or NULL on error. Free
- *    with g_free() when done.
+ *    with gst_net_time_packet_free() when done.
  */
 GstNetTimePacket *
 gst_net_time_packet_receive (GSocket * socket,
@@ -169,8 +203,8 @@
  * gst_net_time_packet_send:
  * @packet: the #GstNetTimePacket to send
  * @socket: socket to send the time packet on
- * @dest_addr: address to send the time packet to
- * @err: return address for a #GError, or NULL
+ * @dest_address: address to send the time packet to
+ * @error: return address for a #GError, or NULL
  *
  * Sends a #GstNetTimePacket over a socket.
  *
diff --git a/libs/gst/net/gstnettimepacket.h b/libs/gst/net/gstnettimepacket.h
index e37342c..8839596 100644
--- a/libs/gst/net/gstnettimepacket.h
+++ b/libs/gst/net/gstnettimepacket.h
@@ -47,8 +47,12 @@
   GstClockTime remote_time;
 };
 
-/* FIXME 0.11: get rid of the packet stuff? add an unref/free function? */
+GType gst_net_time_packet_get_type(void);
+
 GstNetTimePacket*       gst_net_time_packet_new         (const guint8 *buffer);
+GstNetTimePacket*       gst_net_time_packet_copy        (const GstNetTimePacket *packet);
+void                    gst_net_time_packet_free        (GstNetTimePacket *packet);
+
 guint8*                 gst_net_time_packet_serialize   (const GstNetTimePacket *packet);
 
 GstNetTimePacket*	gst_net_time_packet_receive     (GSocket         * socket,
diff --git a/ltmain.sh b/ltmain.sh
index c7d06c3..33f642a 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.1
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1"
+VERSION="2.4.2 Debian-2.4.2-1.1"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 309850d..e83c601 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -167,7 +167,9 @@
 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@
diff --git a/m4/check-checks.m4 b/m4/check-checks.m4
index cd996ce..349a1b5 100644
--- a/m4/check-checks.m4
+++ b/m4/check-checks.m4
@@ -16,7 +16,7 @@
 AC_SUBST(CHECK_VERSION)
 
 dnl Checks for header files and declarations
-AC_CHECK_HEADERS([unistd.h sys/wait.h sys/time.h])
+AC_CHECK_HEADERS([unistd.h sys/wait.h sys/time.h], [], [], [AC_INCLUDES_DEFAULT])
 
 AC_CHECK_FUNCS([localtime_r])
 
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 828104c..534d1cc 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -2512,17 +2512,6 @@
   esac
   ;;
 
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -2639,7 +2628,7 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -3255,10 +3244,6 @@
   fi
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3297,7 +3282,7 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -4049,7 +4034,7 @@
 	    ;;
 	esac
 	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
 	case $cc_basename in
 	  KCC*)
 	    # KAI C++ Compiler
@@ -4348,7 +4333,7 @@
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -6241,9 +6226,6 @@
         _LT_TAGVAR(ld_shlibs, $1)=yes
         ;;
 
-      gnu*)
-        ;;
-
       haiku*)
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6405,7 +6387,7 @@
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
 	    # Kuck and Associates, Inc. (KAI) C++ Compiler
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index dd75868..88585f5 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -211,7 +211,9 @@
 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@
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index 099c0e4..b666215 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -206,7 +206,9 @@
 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@
diff --git a/plugins/elements/Makefile.am b/plugins/elements/Makefile.am
index d451a1f..5e0230c 100644
--- a/plugins/elements/Makefile.am
+++ b/plugins/elements/Makefile.am
@@ -17,6 +17,7 @@
 	gstoutputselector.c	\
 	gstdataqueue.c 		\
 	gstmultiqueue.c		\
+	gstqueuearray.c \
 	gstqueue.c		\
 	gstqueue2.c		\
 	gsttee.c		\
@@ -44,6 +45,7 @@
 	gstoutputselector.h	\
 	gstdataqueue.h 		\
 	gstmultiqueue.h		\
+	gstqueuearray.h \
 	gstqueue.h		\
 	gstqueue2.h		\
 	gsttee.h		\
diff --git a/plugins/elements/Makefile.in b/plugins/elements/Makefile.in
index 56a2e0c..3bb168f 100644
--- a/plugins/elements/Makefile.in
+++ b/plugins/elements/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -143,6 +143,7 @@
 	libgstcoreelements_la-gstoutputselector.lo \
 	libgstcoreelements_la-gstdataqueue.lo \
 	libgstcoreelements_la-gstmultiqueue.lo \
+	libgstcoreelements_la-gstqueuearray.lo \
 	libgstcoreelements_la-gstqueue.lo \
 	libgstcoreelements_la-gstqueue2.lo \
 	libgstcoreelements_la-gsttee.lo \
@@ -251,7 +252,9 @@
 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@
@@ -483,6 +486,7 @@
 	gstoutputselector.c	\
 	gstdataqueue.c 		\
 	gstmultiqueue.c		\
+	gstqueuearray.c \
 	gstqueue.c		\
 	gstqueue2.c		\
 	gsttee.c		\
@@ -510,6 +514,7 @@
 	gstoutputselector.h	\
 	gstdataqueue.h 		\
 	gstmultiqueue.h		\
+	gstqueuearray.h \
 	gstqueue.h		\
 	gstqueue2.h		\
 	gsttee.h		\
@@ -611,6 +616,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstoutputselector.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstqueue.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstqueue2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstqueuearray.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gsttee.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gsttypefindelement.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcoreelements_la-gstvalve.Plo@am__quote@
@@ -734,6 +740,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 $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstmultiqueue.lo `test -f 'gstmultiqueue.c' || echo '$(srcdir)/'`gstmultiqueue.c
 
+libgstcoreelements_la-gstqueuearray.lo: gstqueuearray.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstqueuearray.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstqueuearray.Tpo -c -o libgstcoreelements_la-gstqueuearray.lo `test -f 'gstqueuearray.c' || echo '$(srcdir)/'`gstqueuearray.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstqueuearray.Tpo $(DEPDIR)/libgstcoreelements_la-gstqueuearray.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstqueuearray.c' object='libgstcoreelements_la-gstqueuearray.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 $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -c -o libgstcoreelements_la-gstqueuearray.lo `test -f 'gstqueuearray.c' || echo '$(srcdir)/'`gstqueuearray.c
+
 libgstcoreelements_la-gstqueue.lo: gstqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcoreelements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcoreelements_la_CFLAGS) $(CFLAGS) -MT libgstcoreelements_la-gstqueue.lo -MD -MP -MF $(DEPDIR)/libgstcoreelements_la-gstqueue.Tpo -c -o libgstcoreelements_la-gstqueue.lo `test -f 'gstqueue.c' || echo '$(srcdir)/'`gstqueue.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstcoreelements_la-gstqueue.Tpo $(DEPDIR)/libgstcoreelements_la-gstqueue.Plo
diff --git a/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c
index 971cb7f..1c585d9 100644
--- a/plugins/elements/gstcapsfilter.c
+++ b/plugins/elements/gstcapsfilter.c
@@ -305,7 +305,8 @@
           GST_PTR_FORMAT " to apply to srcpad", out_caps);
 
       if (!gst_pad_has_current_caps (trans->srcpad))
-        gst_pad_push_event (trans->srcpad, gst_event_new_caps (out_caps));
+        if (!gst_pad_set_caps (trans->srcpad, out_caps))
+          ret = GST_FLOW_NOT_NEGOTIATED;
       gst_caps_unref (out_caps);
     } else {
       gchar *caps_str = gst_caps_to_string (out_caps);
diff --git a/plugins/elements/gstcapsfilter.h b/plugins/elements/gstcapsfilter.h
index d132e66..9db6ebc 100644
--- a/plugins/elements/gstcapsfilter.h
+++ b/plugins/elements/gstcapsfilter.h
@@ -59,7 +59,7 @@
   GstBaseTransformClass trans_class;
 };
 
-GType gst_capsfilter_get_type (void);
+G_GNUC_INTERNAL GType gst_capsfilter_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstdataqueue.c b/plugins/elements/gstdataqueue.c
index c1b8820..dff49c6 100644
--- a/plugins/elements/gstdataqueue.c
+++ b/plugins/elements/gstdataqueue.c
@@ -26,8 +26,6 @@
  * #GstDataQueue is an object that handles threadsafe queueing of objects. It
  * also provides size-related functionality. This object should be used for
  * any #GstElement that wishes to provide some sort of queueing functionality.
- *
- * Since: 0.10.11
  */
 
 #include <gst/gst.h>
@@ -89,7 +87,7 @@
                q->cur_level.visible,                                    \
                q->cur_level.bytes,                                      \
                q->cur_level.time,                                       \
-               q->queue->length)
+               q->queue.length)
 
 static void gst_data_queue_finalize (GObject * object);
 
@@ -181,7 +179,7 @@
   g_mutex_init (&queue->qlock);
   g_cond_init (&queue->item_add);
   g_cond_init (&queue->item_del);
-  queue->queue = g_queue_new ();
+  gst_queue_array_init (&queue->queue, 50);
 
   GST_DEBUG ("initialized queue's not_empty & not_full conditions");
 }
@@ -199,8 +197,6 @@
  * or @emptycallback.
  *
  * Returns: a new #GstDataQueue.
- *
- * Since: 0.10.26
  */
 
 GstDataQueue *
@@ -239,8 +235,8 @@
 static void
 gst_data_queue_cleanup (GstDataQueue * queue)
 {
-  while (!g_queue_is_empty (queue->queue)) {
-    GstDataQueueItem *item = g_queue_pop_head (queue->queue);
+  while (!gst_queue_array_is_empty (&queue->queue)) {
+    GstDataQueueItem *item = gst_queue_array_pop_head (&queue->queue);
 
     /* Just call the destroy notify on the item */
     item->destroy (item);
@@ -259,7 +255,7 @@
   GST_DEBUG ("finalizing queue");
 
   gst_data_queue_cleanup (queue);
-  g_queue_free (queue->queue);
+  gst_queue_array_clear (&queue->queue);
 
   GST_DEBUG ("free mutex");
   g_mutex_clear (&queue->qlock);
@@ -285,7 +281,7 @@
 static inline gboolean
 gst_data_queue_locked_is_empty (GstDataQueue * queue)
 {
-  return (queue->queue->length == 0);
+  return (queue->queue.length == 0);
 }
 
 static inline gboolean
@@ -302,8 +298,6 @@
  * Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
  * #gst_data_queue_pop will be released.
  * MT safe.
- *
- * Since: 0.10.11
  */
 void
 gst_data_queue_flush (GstDataQueue * queue)
@@ -322,8 +316,6 @@
  * MT safe.
  *
  * Returns: #TRUE if @queue is empty.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_data_queue_is_empty (GstDataQueue * queue)
@@ -346,8 +338,6 @@
  * MT safe.
  *
  * Returns: #TRUE if @queue is full.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_data_queue_is_full (GstDataQueue * queue)
@@ -373,8 +363,6 @@
  * all calls to those two functions will return #FALSE.
  *
  * MT Safe.
- *
- * Since: 0.10.11
  */
 void
 gst_data_queue_set_flushing (GstDataQueue * queue, gboolean flushing)
@@ -409,8 +397,6 @@
  * is returned, the caller is responsible for freeing @item and its contents.
  *
  * Returns: #TRUE if the @item was successfully pushed on the @queue.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_data_queue_push (GstDataQueue * queue, GstDataQueueItem * item)
@@ -441,7 +427,7 @@
     }
   }
 
-  g_queue_push_tail (queue->queue, item);
+  gst_queue_array_push_tail (&queue->queue, item);
 
   if (item->visible)
     queue->cur_level.visible++;
@@ -476,8 +462,6 @@
  * MT safe.
  *
  * Returns: #TRUE if an @item was successfully retrieved from the @queue.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_data_queue_pop (GstDataQueue * queue, GstDataQueueItem ** item)
@@ -507,7 +491,7 @@
   }
 
   /* Get the item from the GQueue */
-  *item = g_queue_pop_head (queue->queue);
+  *item = gst_queue_array_pop_head (&queue->queue);
 
   /* update current level counter */
   if ((*item)->visible)
@@ -532,6 +516,12 @@
   }
 }
 
+static gint
+is_of_type (gconstpointer a, gconstpointer b)
+{
+  return !G_TYPE_CHECK_INSTANCE_TYPE (a, GPOINTER_TO_INT (b));
+}
+
 /**
  * gst_data_queue_drop_head:
  * @queue: The #GstDataQueue to drop an item from.
@@ -540,34 +530,27 @@
  * Pop and unref the head-most #GstMiniObject with the given #GType.
  *
  * Returns: TRUE if an element was removed.
- *
- * Since: 0.10.11
  */
 gboolean
 gst_data_queue_drop_head (GstDataQueue * queue, GType type)
 {
   gboolean res = FALSE;
-  GList *item;
   GstDataQueueItem *leak = NULL;
+  guint idx;
 
   g_return_val_if_fail (GST_IS_DATA_QUEUE (queue), FALSE);
 
   GST_DEBUG ("queue:%p", queue);
 
   GST_DATA_QUEUE_MUTEX_LOCK (queue);
-  for (item = g_queue_peek_head_link (queue->queue); item; item = item->next) {
-    GstDataQueueItem *tmp = (GstDataQueueItem *) item->data;
+  idx =
+      gst_queue_array_find (&queue->queue, is_of_type, GINT_TO_POINTER (type));
 
-    if (G_TYPE_CHECK_INSTANCE_TYPE (tmp->object, type)) {
-      leak = tmp;
-      break;
-    }
-  }
-
-  if (!leak)
+  if (idx == -1)
     goto done;
 
-  g_queue_delete_link (queue->queue, item);
+  leak = queue->queue.array[idx];
+  gst_queue_array_drop_element (&queue->queue, idx);
 
   if (leak->visible)
     queue->cur_level.visible--;
@@ -592,8 +575,6 @@
  *
  * Inform the queue that the limits for the fullness check have changed and that
  * any blocking gst_data_queue_push() should be unblocked to recheck the limts.
- *
- * Since: 0.10.11
  */
 void
 gst_data_queue_limits_changed (GstDataQueue * queue)
@@ -614,8 +595,6 @@
  * @level: the location to store the result
  *
  * Get the current level of the queue.
- *
- * Since: 0.10.11
  */
 void
 gst_data_queue_get_level (GstDataQueue * queue, GstDataQueueSize * level)
diff --git a/plugins/elements/gstdataqueue.h b/plugins/elements/gstdataqueue.h
index 36f4be7..52fdeaf 100644
--- a/plugins/elements/gstdataqueue.h
+++ b/plugins/elements/gstdataqueue.h
@@ -24,6 +24,7 @@
 #define __GST_DATA_QUEUE_H__
 
 #include <gst/gst.h>
+#include "gstqueuearray.h"
 
 G_BEGIN_DECLS
 #define GST_TYPE_DATA_QUEUE \
@@ -54,8 +55,6 @@
  *
  * Structure used by #GstDataQueue. You can supply a different structure, as
  * long as the top of the structure is identical to this structure.
- *
- * Since: 0.10.11
  */
 
 struct _GstDataQueueItem
@@ -76,8 +75,6 @@
  * @time: amount of time
  *
  * Structure describing the size of a queue.
- *
- * Since: 0.10.11
  */
 struct _GstDataQueueSize
 {
@@ -98,8 +95,6 @@
  * considered as full.
  *
  * Returns: #TRUE if the queue should be considered full.
- *
- * Since: 0.10.11
  */
 typedef gboolean (*GstDataQueueCheckFullFunction) (GstDataQueue * queue,
     guint visible, guint bytes, guint64 time, gpointer checkdata);
@@ -112,16 +107,14 @@
  * @object: the parent structure
  *
  * Opaque #GstDataQueue structure.
- *
- * Since: 0.10.11
  */
 struct _GstDataQueue
 {
   GObject object;
 
   /*< private >*/
-  /* the queue of data we're keeping our grubby hands on */
-  GQueue *queue;
+  /* the array of data we're keeping our grubby hands on */
+  GstQueueArray queue;
 
   GstDataQueueSize cur_level;   /* size of the queue */
   GstDataQueueCheckFullFunction checkfull;      /* Callback to check if the queue is full */
@@ -137,7 +130,7 @@
   GstDataQueueFullCallback fullcallback;
   GstDataQueueEmptyCallback emptycallback;
 
-  gpointer _gst_reserved[GST_PADDING];
+  /* gpointer _gst_reserved[GST_PADDING]; */
 };
 
 struct _GstDataQueueClass
@@ -148,31 +141,47 @@
   void (*empty) (GstDataQueue * queue);
   void (*full) (GstDataQueue * queue);
 
-  gpointer _gst_reserved[GST_PADDING];
+  /* gpointer _gst_reserved[GST_PADDING]; */
 };
 
+G_GNUC_INTERNAL
 GType gst_data_queue_get_type (void);
 
+G_GNUC_INTERNAL
 GstDataQueue * gst_data_queue_new            (GstDataQueueCheckFullFunction checkfull,
                                               gpointer checkdata) G_GNUC_MALLOC;
 
+G_GNUC_INTERNAL
 GstDataQueue * gst_data_queue_new_full       (GstDataQueueCheckFullFunction checkfull,
 					      GstDataQueueFullCallback fullcallback,
 					      GstDataQueueEmptyCallback emptycallback,
 					      gpointer checkdata) G_GNUC_MALLOC;
 
+G_GNUC_INTERNAL
 gboolean       gst_data_queue_push           (GstDataQueue * queue, GstDataQueueItem * item);
+
+G_GNUC_INTERNAL
 gboolean       gst_data_queue_pop            (GstDataQueue * queue, GstDataQueueItem ** item);
 
+G_GNUC_INTERNAL
 void           gst_data_queue_flush          (GstDataQueue * queue);
+
+G_GNUC_INTERNAL
 void           gst_data_queue_set_flushing   (GstDataQueue * queue, gboolean flushing);
 
+G_GNUC_INTERNAL
 gboolean       gst_data_queue_drop_head      (GstDataQueue * queue, GType type);
 
+G_GNUC_INTERNAL
 gboolean       gst_data_queue_is_full        (GstDataQueue * queue);
+
+G_GNUC_INTERNAL
 gboolean       gst_data_queue_is_empty       (GstDataQueue * queue);
 
+G_GNUC_INTERNAL
 void           gst_data_queue_get_level      (GstDataQueue * queue, GstDataQueueSize *level);
+
+G_GNUC_INTERNAL
 void           gst_data_queue_limits_changed (GstDataQueue * queue);
 
 G_END_DECLS
diff --git a/plugins/elements/gstelements.c b/plugins/elements/gstelements.c
index 00594b5..6ba95d0 100644
--- a/plugins/elements/gstelements.c
+++ b/plugins/elements/gstelements.c
@@ -45,54 +45,65 @@
 #include "gsttypefindelement.h"
 #include "gstvalve.h"
 
-struct _elements_entry
-{
-  const gchar *name;
-  guint rank;
-    GType (*type) (void);
-};
-
-
-static struct _elements_entry _elements[] = {
-  {"capsfilter", GST_RANK_NONE, gst_capsfilter_get_type},
-  {"fakesrc", GST_RANK_NONE, gst_fake_src_get_type},
-  {"fakesink", GST_RANK_NONE, gst_fake_sink_get_type},
-#if defined(HAVE_SYS_SOCKET_H) || defined(_MSC_VER)
-  {"fdsrc", GST_RANK_NONE, gst_fd_src_get_type},
-  {"fdsink", GST_RANK_NONE, gst_fd_sink_get_type},
-#endif
-  {"filesrc", GST_RANK_PRIMARY, gst_file_src_get_type},
-  {"funnel", GST_RANK_NONE, gst_funnel_get_type},
-  {"identity", GST_RANK_NONE, gst_identity_get_type},
-  {"input-selector", GST_RANK_NONE, gst_input_selector_get_type},
-  {"output-selector", GST_RANK_NONE, gst_output_selector_get_type},
-  {"queue", GST_RANK_NONE, gst_queue_get_type},
-  {"queue2", GST_RANK_NONE, gst_queue2_get_type},
-  {"filesink", GST_RANK_PRIMARY, gst_file_sink_get_type},
-  {"tee", GST_RANK_NONE, gst_tee_get_type},
-  {"typefind", GST_RANK_NONE, gst_type_find_element_get_type},
-  {"multiqueue", GST_RANK_NONE, gst_multi_queue_get_type},
-  {"valve", GST_RANK_NONE, gst_valve_get_type},
-  {NULL, 0},
-};
-
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  struct _elements_entry *my_elements = _elements;
-
-  while ((*my_elements).name) {
-    if (!gst_element_register (plugin, (*my_elements).name, (*my_elements).rank,
-            ((*my_elements).type) ()))
-      return FALSE;
-    my_elements++;
-  }
+  if (!gst_element_register (plugin, "capsfilter", GST_RANK_NONE,
+          gst_capsfilter_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "fakesrc", GST_RANK_NONE,
+          gst_fake_src_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "fakesink", GST_RANK_NONE,
+          gst_fake_sink_get_type ()))
+    return FALSE;
+#if defined(HAVE_SYS_SOCKET_H) || defined(_MSC_VER)
+  if (!gst_element_register (plugin, "fdsrc", GST_RANK_NONE,
+          gst_fd_src_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "fdsink", GST_RANK_NONE,
+          gst_fd_sink_get_type ()))
+    return FALSE;
+#endif
+  if (!gst_element_register (plugin, "filesrc", GST_RANK_PRIMARY,
+          gst_file_src_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "funnel", GST_RANK_NONE,
+          gst_funnel_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "identity", GST_RANK_NONE,
+          gst_identity_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "input-selector", GST_RANK_NONE,
+          gst_input_selector_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "output-selector", GST_RANK_NONE,
+          gst_output_selector_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "queue", GST_RANK_NONE,
+          gst_queue_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "queue2", GST_RANK_NONE,
+          gst_queue2_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "filesink", GST_RANK_PRIMARY,
+          gst_file_sink_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "tee", GST_RANK_NONE, gst_tee_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "typefind", GST_RANK_NONE,
+          gst_type_find_element_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "multiqueue", GST_RANK_NONE,
+          gst_multi_queue_get_type ()))
+    return FALSE;
+  if (!gst_element_register (plugin, "valve", GST_RANK_NONE,
+          gst_valve_get_type ()))
+    return FALSE;
 
   return TRUE;
 }
 
-GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
-    GST_VERSION_MINOR,
-    coreelements,
-    "standard GStreamer elements",
-    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, coreelements,
+    " GStreamer core elements", plugin_init, VERSION, GST_LICENSE,
+    GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
diff --git a/plugins/elements/gstfakesink.c b/plugins/elements/gstfakesink.c
index 363fde9..c328f37 100644
--- a/plugins/elements/gstfakesink.c
+++ b/plugins/elements/gstfakesink.c
@@ -207,8 +207,6 @@
    * @pad: the pad that received it
    *
    * This signal gets emitted before unreffing the buffer.
-   *
-   * Since: 0.10.7
    */
   gst_fake_sink_signals[SIGNAL_PREROLL_HANDOFF] =
       g_signal_new ("preroll-handoff", G_TYPE_FROM_CLASS (klass),
@@ -478,7 +476,7 @@
     sink->last_message =
         g_strdup_printf ("chain   ******* (%s:%s) (%u bytes, dts: %s, pts: %s"
         ", duration: %s, offset: %" G_GINT64_FORMAT ", offset_end: %"
-        G_GINT64_FORMAT ", flags: %d %s) %p",
+        G_GINT64_FORMAT ", flags: %08x %s) %p",
         GST_DEBUG_PAD_NAME (GST_BASE_SINK_CAST (sink)->sinkpad),
         (guint) gst_buffer_get_size (buf), dts_str, pts_str,
         dur_str, GST_BUFFER_OFFSET (buf), GST_BUFFER_OFFSET_END (buf),
diff --git a/plugins/elements/gstfakesink.h b/plugins/elements/gstfakesink.h
index 2db98b9..274b45a 100644
--- a/plugins/elements/gstfakesink.h
+++ b/plugins/elements/gstfakesink.h
@@ -92,7 +92,7 @@
   void (*preroll_handoff) (GstElement *element, GstBuffer *buf, GstPad *pad);
 };
 
-GType gst_fake_sink_get_type (void);
+G_GNUC_INTERNAL GType gst_fake_sink_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index 89eb17b..bbdff16 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -315,8 +315,6 @@
    * GstFakeSrc:format
    *
    * Set the format of the newsegment events to produce.
-   *
-   * Since: 0.10.20
    */
   g_object_class_install_property (gobject_class, PROP_FORMAT,
       g_param_spec_enum ("format", "Format",
@@ -854,7 +852,7 @@
     src->last_message =
         g_strdup_printf ("create   ******* (%s:%s) (%u bytes, dts: %s, pts:%s"
         ", duration: %s, offset: %" G_GINT64_FORMAT ", offset_end: %"
-        G_GINT64_FORMAT ", flags: %d %s) %p",
+        G_GINT64_FORMAT ", flags: %08x %s) %p",
         GST_DEBUG_PAD_NAME (GST_BASE_SRC_CAST (src)->srcpad), (guint) size,
         dts_str, pts_str, dur_str, GST_BUFFER_OFFSET (buf),
         GST_BUFFER_OFFSET_END (buf), GST_MINI_OBJECT_CAST (buf)->flags,
diff --git a/plugins/elements/gstfakesrc.h b/plugins/elements/gstfakesrc.h
index 965fcb0..3ed0e60 100644
--- a/plugins/elements/gstfakesrc.h
+++ b/plugins/elements/gstfakesrc.h
@@ -159,7 +159,7 @@
   void (*handoff) (GstElement *element, GstBuffer *buf, GstPad *pad);
 };
 
-GType gst_fake_src_get_type (void);
+G_GNUC_INTERNAL GType gst_fake_src_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstfdsink.c b/plugins/elements/gstfdsink.c
index 7852561..74d30ca 100644
--- a/plugins/elements/gstfdsink.c
+++ b/plugins/elements/gstfdsink.c
@@ -41,14 +41,6 @@
 
 #include <sys/types.h>
 
-#ifdef G_OS_WIN32
-#include <io.h>                 /* lseek, open, close, read */
-#undef lseek
-#define lseek _lseeki64
-#undef off_t
-#define off_t guint64
-#endif
-
 #include <sys/stat.h>
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
@@ -69,6 +61,14 @@
 
 #include "gstfdsink.h"
 
+#ifdef G_OS_WIN32
+#include <io.h>                 /* lseek, open, close, read */
+#undef lseek
+#define lseek _lseeki64
+#undef off_t
+#define off_t guint64
+#endif
+
 static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
diff --git a/plugins/elements/gstfdsink.h b/plugins/elements/gstfdsink.h
index 59393d0..643453d 100644
--- a/plugins/elements/gstfdsink.h
+++ b/plugins/elements/gstfdsink.h
@@ -67,7 +67,7 @@
   GstBaseSinkClass parent_class;
 };
 
-GType gst_fd_sink_get_type(void);
+G_GNUC_INTERNAL GType gst_fd_sink_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstfdsrc.c b/plugins/elements/gstfdsrc.c
index 13c70bd..a29d84c 100644
--- a/plugins/elements/gstfdsrc.c
+++ b/plugins/elements/gstfdsrc.c
@@ -160,8 +160,6 @@
    * GstFdSrc:timeout
    *
    * Post a message after timeout microseconds
-   *
-   * Since: 0.10.21
    */
   g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TIMEOUT,
       g_param_spec_uint64 ("timeout", "Timeout",
diff --git a/plugins/elements/gstfdsrc.h b/plugins/elements/gstfdsrc.h
index aac1d52..16e696f 100644
--- a/plugins/elements/gstfdsrc.h
+++ b/plugins/elements/gstfdsrc.h
@@ -80,7 +80,7 @@
   void (*timeout) (GstElement *element);
 };
 
-GType gst_fd_src_get_type(void);
+G_GNUC_INTERNAL GType gst_fd_src_get_type(void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c
index 7b5218b..c434a56 100644
--- a/plugins/elements/gstfilesink.c
+++ b/plugins/elements/gstfilesink.c
@@ -212,8 +212,6 @@
    * GstFileSink:append
    * 
    * Append to an already existing file.
-   *
-   * Since: 0.10.25
    */
   g_object_class_install_property (gobject_class, PROP_APPEND,
       g_param_spec_boolean ("append", "Append",
diff --git a/plugins/elements/gstfilesink.h b/plugins/elements/gstfilesink.h
index 3f0d6ce..9776550 100644
--- a/plugins/elements/gstfilesink.h
+++ b/plugins/elements/gstfilesink.h
@@ -72,7 +72,7 @@
   GstBaseSinkClass parent_class;
 };
 
-GType gst_file_sink_get_type(void);
+G_GNUC_INTERNAL GType gst_file_sink_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index a0672d1..911223b 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -149,7 +149,6 @@
 static gboolean gst_file_src_get_size (GstBaseSrc * src, guint64 * size);
 static GstFlowReturn gst_file_src_fill (GstBaseSrc * src, guint64 offset,
     guint length, GstBuffer * buf);
-static gboolean gst_file_src_query (GstBaseSrc * src, GstQuery * query);
 
 static void gst_file_src_uri_handler_init (gpointer g_iface,
     gpointer iface_data);
@@ -195,7 +194,6 @@
   gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_file_src_is_seekable);
   gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_file_src_get_size);
   gstbasesrc_class->fill = GST_DEBUG_FUNCPTR (gst_file_src_fill);
-  gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_file_src_query);
 
   if (sizeof (off_t) < 8) {
     GST_LOG ("No large file support, sizeof (off_t) = %" G_GSIZE_FORMAT "!",
@@ -404,28 +402,6 @@
 }
 
 static gboolean
-gst_file_src_query (GstBaseSrc * basesrc, GstQuery * query)
-{
-  gboolean ret = FALSE;
-  GstFileSrc *src = GST_FILE_SRC (basesrc);
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_URI:
-      gst_query_set_uri (query, src->uri);
-      ret = TRUE;
-      break;
-    default:
-      ret = FALSE;
-      break;
-  }
-
-  if (!ret)
-    ret = GST_BASE_SRC_CLASS (parent_class)->query (basesrc, query);
-
-  return ret;
-}
-
-static gboolean
 gst_file_src_is_seekable (GstBaseSrc * basesrc)
 {
   GstFileSrc *src = GST_FILE_SRC (basesrc);
diff --git a/plugins/elements/gstfilesrc.h b/plugins/elements/gstfilesrc.h
index 5aa9f87..18c3c41 100644
--- a/plugins/elements/gstfilesrc.h
+++ b/plugins/elements/gstfilesrc.h
@@ -69,7 +69,7 @@
   GstBaseSrcClass parent_class;
 };
 
-GType gst_file_src_get_type (void);
+G_GNUC_INTERNAL GType gst_file_src_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index a15a9e6..fb4fafe 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -229,16 +229,19 @@
 {
   GstFunnel *funnel = GST_FUNNEL (element);
   GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
+  gboolean got_eos;
   gboolean send_eos = FALSE;
 
   GST_DEBUG_OBJECT (funnel, "releasing pad");
 
   gst_pad_set_active (pad, FALSE);
 
+  got_eos = fpad->got_eos;
+
   gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad);
 
   GST_OBJECT_LOCK (funnel);
-  if (!fpad->got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
+  if (!got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
     GST_DEBUG_OBJECT (funnel, "Pad removed. All others are EOS. Sending EOS");
     send_eos = TRUE;
   }
diff --git a/plugins/elements/gstfunnel.h b/plugins/elements/gstfunnel.h
index 588a651..c968fca 100644
--- a/plugins/elements/gstfunnel.h
+++ b/plugins/elements/gstfunnel.h
@@ -62,7 +62,7 @@
   GstElementClass parent_class;
 };
 
-GType   gst_funnel_get_type        (void);
+G_GNUC_INTERNAL GType   gst_funnel_get_type        (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstidentity.c b/plugins/elements/gstidentity.c
index 50afaec..8361a7a 100644
--- a/plugins/elements/gstidentity.c
+++ b/plugins/elements/gstidentity.c
@@ -67,7 +67,6 @@
 #define DEFAULT_SINGLE_SEGMENT          FALSE
 #define DEFAULT_DUMP                    FALSE
 #define DEFAULT_SYNC                    FALSE
-#define DEFAULT_CHECK_PERFECT           FALSE
 #define DEFAULT_CHECK_IMPERFECT_TIMESTAMP FALSE
 #define DEFAULT_CHECK_IMPERFECT_OFFSET    FALSE
 #define DEFAULT_SIGNAL_HANDOFFS           TRUE
@@ -84,7 +83,6 @@
   PROP_LAST_MESSAGE,
   PROP_DUMP,
   PROP_SYNC,
-  PROP_CHECK_PERFECT,
   PROP_CHECK_IMPERFECT_TIMESTAMP,
   PROP_CHECK_IMPERFECT_OFFSET,
   PROP_SIGNAL_HANDOFFS
@@ -178,12 +176,6 @@
       g_param_spec_boolean ("sync", "Synchronize",
           "Synchronize to pipeline clock", DEFAULT_SYNC,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, PROP_CHECK_PERFECT,
-      g_param_spec_boolean ("check-perfect", "Check For Perfect Stream",
-          "Verify that the stream is time- and data-contiguous. "
-          "This only logs in the debug log.  This will be deprecated in favor "
-          "of the check-imperfect-timestamp/offset properties.",
-          DEFAULT_CHECK_PERFECT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class,
       PROP_CHECK_IMPERFECT_TIMESTAMP,
       g_param_spec_boolean ("check-imperfect-timestamp",
@@ -203,8 +195,6 @@
    *
    * If set to #TRUE, the identity will emit a handoff signal when handling a buffer.
    * When set to #FALSE, no signal will be emited, which might improve performance.
-   *
-   * Since: 0.10.16
    */
   g_object_class_install_property (gobject_class, PROP_SIGNAL_HANDOFFS,
       g_param_spec_boolean ("signal-handoffs",
@@ -256,7 +246,6 @@
   identity->silent = DEFAULT_SILENT;
   identity->single_segment = DEFAULT_SINGLE_SEGMENT;
   identity->sync = DEFAULT_SYNC;
-  identity->check_perfect = DEFAULT_CHECK_PERFECT;
   identity->check_imperfect_timestamp = DEFAULT_CHECK_IMPERFECT_TIMESTAMP;
   identity->check_imperfect_offset = DEFAULT_CHECK_IMPERFECT_OFFSET;
   identity->dump = DEFAULT_DUMP;
@@ -351,51 +340,6 @@
 }
 
 static void
-gst_identity_check_perfect (GstIdentity * identity, GstBuffer * buf)
-{
-  GstClockTime timestamp;
-
-  timestamp = GST_BUFFER_TIMESTAMP (buf);
-
-  /* see if we need to do perfect stream checking */
-  /* invalid timestamp drops us out of check.  FIXME: maybe warn ? */
-  if (timestamp != GST_CLOCK_TIME_NONE) {
-    /* check if we had a previous buffer to compare to */
-    if (identity->prev_timestamp != GST_CLOCK_TIME_NONE &&
-        identity->prev_duration != GST_CLOCK_TIME_NONE) {
-      guint64 offset, t_expected;
-      gint64 dt;
-
-      t_expected = identity->prev_timestamp + identity->prev_duration;
-      dt = timestamp - t_expected;
-      if (dt != 0) {
-        GST_WARNING_OBJECT (identity,
-            "Buffer not time-contiguous with previous one: " "prev ts %"
-            GST_TIME_FORMAT ", prev dur %" GST_TIME_FORMAT ", new ts %"
-            GST_TIME_FORMAT " (expected ts %" GST_TIME_FORMAT ", delta=%c%"
-            GST_TIME_FORMAT ")", GST_TIME_ARGS (identity->prev_timestamp),
-            GST_TIME_ARGS (identity->prev_duration), GST_TIME_ARGS (timestamp),
-            GST_TIME_ARGS (t_expected), (dt < 0) ? '-' : '+',
-            GST_TIME_ARGS ((dt < 0) ? (GstClockTime) (-dt) : dt));
-      }
-
-      offset = GST_BUFFER_OFFSET (buf);
-      if (identity->prev_offset_end != offset &&
-          identity->prev_offset_end != GST_BUFFER_OFFSET_NONE &&
-          offset != GST_BUFFER_OFFSET_NONE) {
-        GST_WARNING_OBJECT (identity,
-            "Buffer not data-contiguous with previous one: "
-            "prev offset_end %" G_GINT64_FORMAT ", new offset %"
-            G_GINT64_FORMAT, identity->prev_offset_end, offset);
-      }
-    } else {
-      GST_DEBUG_OBJECT (identity, "can't check time-contiguity, no timestamp "
-          "and/or duration were set on previous buffer");
-    }
-  }
-}
-
-static void
 gst_identity_check_imperfect_timestamp (GstIdentity * identity, GstBuffer * buf)
 {
   GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buf);
@@ -532,7 +476,7 @@
   identity->last_message = g_strdup_printf ("%s   ******* (%s:%s) "
       "(%" G_GSIZE_FORMAT " bytes, dts: %s, pts:%s, duration: %s, offset: %"
       G_GINT64_FORMAT ", " "offset_end: % " G_GINT64_FORMAT
-      ", flags: %d %s) %p", action,
+      ", flags: %08x %s) %p", action,
       GST_DEBUG_PAD_NAME (GST_BASE_TRANSFORM_CAST (identity)->sinkpad), size,
       print_pretty_time (dts_str, sizeof (dts_str), GST_BUFFER_DTS (buf)),
       print_pretty_time (pts_str, sizeof (pts_str), GST_BUFFER_PTS (buf)),
@@ -555,8 +499,6 @@
 
   size = gst_buffer_get_size (buf);
 
-  if (identity->check_perfect)
-    gst_identity_check_perfect (identity, buf);
   if (identity->check_imperfect_timestamp)
     gst_identity_check_imperfect_timestamp (identity, buf);
   if (identity->check_imperfect_offset)
@@ -698,9 +640,6 @@
     case PROP_SYNC:
       identity->sync = g_value_get_boolean (value);
       break;
-    case PROP_CHECK_PERFECT:
-      identity->check_perfect = g_value_get_boolean (value);
-      break;
     case PROP_CHECK_IMPERFECT_TIMESTAMP:
       identity->check_imperfect_timestamp = g_value_get_boolean (value);
       break;
@@ -758,9 +697,6 @@
     case PROP_SYNC:
       g_value_set_boolean (value, identity->sync);
       break;
-    case PROP_CHECK_PERFECT:
-      g_value_set_boolean (value, identity->check_perfect);
-      break;
     case PROP_CHECK_IMPERFECT_TIMESTAMP:
       g_value_set_boolean (value, identity->check_imperfect_timestamp);
       break;
diff --git a/plugins/elements/gstidentity.h b/plugins/elements/gstidentity.h
index fabc667..835cf94 100644
--- a/plugins/elements/gstidentity.h
+++ b/plugins/elements/gstidentity.h
@@ -62,7 +62,6 @@
   gboolean 	 silent;
   gboolean 	 dump;
   gboolean 	 sync;
-  gboolean 	 check_perfect;
   gboolean 	 check_imperfect_timestamp;
   gboolean 	 check_imperfect_offset;
   gboolean	 single_segment;
@@ -82,7 +81,7 @@
   void (*handoff) (GstElement *element, GstBuffer *buf);
 };
 
-GType gst_identity_get_type(void);
+G_GNUC_INTERNAL GType gst_identity_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index 9133a8c..7d63fb0 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -47,8 +47,6 @@
  * #GST_FLOW_NOT_LINKED
  * </listitem>
  * </itemizedlist>
- *
- * Since: 0.10.32
  */
 
 #ifdef HAVE_CONFIG_H
@@ -85,15 +83,6 @@
   return type;
 }
 
-#if GLIB_CHECK_VERSION(2, 26, 0)
-#define NOTIFY_MUTEX_LOCK()
-#define NOTIFY_MUTEX_UNLOCK()
-#else
-static GStaticRecMutex notify_mutex = G_STATIC_REC_MUTEX_INIT;
-#define NOTIFY_MUTEX_LOCK() g_static_rec_mutex_lock (&notify_mutex)
-#define NOTIFY_MUTEX_UNLOCK() g_static_rec_mutex_unlock (&notify_mutex)
-#endif
-
 #define GST_INPUT_SELECTOR_GET_LOCK(sel) (&((GstInputSelector*)(sel))->lock)
 #define GST_INPUT_SELECTOR_GET_COND(sel) (&((GstInputSelector*)(sel))->cond)
 #define GST_INPUT_SELECTOR_LOCK(sel) (g_mutex_lock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
@@ -454,6 +443,7 @@
 {
   gboolean res = TRUE;
   gboolean forward;
+  gboolean new_tags = FALSE;
   GstInputSelector *sel;
   GstSelectorPad *selpad;
   GstPad *prev_active_sinkpad;
@@ -524,7 +514,7 @@
         gst_tag_list_unref (oldtags);
       GST_DEBUG_OBJECT (pad, "received tags %" GST_PTR_FORMAT, newtags);
 
-      g_object_notify (G_OBJECT (selpad), "tags");
+      new_tags = TRUE;
       break;
     }
     case GST_EVENT_EOS:
@@ -551,6 +541,8 @@
       break;
   }
   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);
@@ -575,11 +567,32 @@
   gboolean res = FALSE;
 
   switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_ALLOCATION:{
+      GstPad *active_sinkpad;
+      GstInputSelector *sel = GST_INPUT_SELECTOR (parent);
+
+      /* Only do the allocation query for the active sinkpad,
+       * after switching a reconfigure event is sent and upstream
+       * should reconfigure and do a new allocation query
+       */
+      if (GST_PAD_DIRECTION (pad) == GST_PAD_SINK) {
+        GST_INPUT_SELECTOR_LOCK (sel);
+        active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+        GST_INPUT_SELECTOR_UNLOCK (sel);
+
+        if (pad != active_sinkpad) {
+          res = FALSE;
+          goto done;
+        }
+      }
+    }
+      /* fall through */
     default:
       res = gst_pad_query_default (pad, parent, query);
       break;
   }
 
+done:
   return res;
 }
 
@@ -1098,38 +1111,6 @@
     GstQuery * query);
 static gint64 gst_input_selector_block (GstInputSelector * self);
 
-/* FIXME: create these marshallers using glib-genmarshal */
-static void
-gst_input_selector_marshal_INT64__VOID (GClosure * closure,
-    GValue * return_value G_GNUC_UNUSED,
-    guint n_param_values,
-    const GValue * param_values,
-    gpointer invocation_hint G_GNUC_UNUSED, gpointer marshal_data)
-{
-  typedef gint64 (*GMarshalFunc_INT64__VOID) (gpointer data1, gpointer data2);
-  register GMarshalFunc_INT64__VOID callback;
-  register GCClosure *cc = (GCClosure *) closure;
-  register gpointer data1, data2;
-  gint64 v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 1);
-
-  if (G_CCLOSURE_SWAP_DATA (closure)) {
-    data1 = closure->data;
-    data2 = g_value_peek_pointer (param_values + 0);
-  } else {
-    data1 = g_value_peek_pointer (param_values + 0);
-    data2 = closure->data;
-  }
-  callback =
-      (GMarshalFunc_INT64__VOID) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1, data2);
-
-  g_value_set_int64 (return_value, v_return);
-}
-
 #define _do_init \
     GST_DEBUG_CATEGORY_INIT (input_selector_debug, \
         "input-selector", 0, "An input stream selector element");
@@ -1168,8 +1149,6 @@
    * To make sure no buffers are dropped by input-selector
    * that might be needed when switching the active pad,
    * sync-mode should be set to "clock" and cache-buffers to TRUE.
-   *
-   * Since: 0.10.36
    */
   g_object_class_install_property (gobject_class, PROP_SYNC_STREAMS,
       g_param_spec_boolean ("sync-streams", "Sync Streams",
@@ -1188,8 +1167,6 @@
    * be ahead of current clock time when switching the active pad, as the current
    * active pad may have pushed more buffers than what was displayed/consumed,
    * which may cause delays and some missing buffers.
-   *
-   * Since: 0.10.36
    */
   g_object_class_install_property (gobject_class, PROP_SYNC_MODE,
       g_param_spec_enum ("sync-mode", "Sync mode",
@@ -1229,7 +1206,7 @@
       g_signal_new ("block", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
       G_STRUCT_OFFSET (GstInputSelectorClass, block), NULL, NULL,
-      gst_input_selector_marshal_INT64__VOID, G_TYPE_INT64, 0);
+      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",
@@ -1328,6 +1305,11 @@
   active_pad_p = &self->active_sinkpad;
   gst_object_replace ((GstObject **) active_pad_p, GST_OBJECT_CAST (pad));
 
+  if (old && old != new)
+    gst_pad_push_event (GST_PAD_CAST (old), gst_event_new_reconfigure ());
+  if (new)
+    gst_pad_push_event (GST_PAD_CAST (new), gst_event_new_reconfigure ());
+
   GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT,
       self->active_sinkpad);
 
@@ -1604,12 +1586,24 @@
 
   selpad->active = TRUE;
   active_sinkpad = sel->active_sinkpad;
-  if (active_sinkpad == NULL) {
-    /* first pad we get activity on becomes the activated pad by default */
-    if (sel->active_sinkpad)
-      gst_object_unref (sel->active_sinkpad);
-    active_sinkpad = sel->active_sinkpad = gst_object_ref (pad);
-    GST_DEBUG_OBJECT (sel, "Activating pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+  if (sel->active_sinkpad == NULL) {
+    GValue item = G_VALUE_INIT;
+    GstIterator *iter = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (sel));
+    GstIteratorResult ires;
+
+    while ((ires = gst_iterator_next (iter, &item)) == GST_ITERATOR_RESYNC)
+      gst_iterator_resync (iter);
+    if (ires == GST_ITERATOR_OK) {
+      /* If no pad is currently selected, we return the first usable pad to
+       * guarantee consistency */
+
+      active_sinkpad = sel->active_sinkpad = g_value_dup_object (&item);
+      g_value_reset (&item);
+      GST_DEBUG_OBJECT (sel, "Activating pad %s:%s",
+          GST_DEBUG_PAD_NAME (active_sinkpad));
+    } else
+      GST_WARNING_OBJECT (sel, "Couldn't find a default sink pad");
+    gst_iterator_free (iter);
   }
 
   return active_sinkpad;
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index dd48a51..2bfcd3e 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -84,7 +84,7 @@
   gint64 (*block)	(GstInputSelector *self);
 };
 
-GType gst_input_selector_get_type (void);
+G_GNUC_INTERNAL GType gst_input_selector_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index bd3b69c..cfa8a24 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -368,8 +368,6 @@
    * 
    * Enable the buffering option in multiqueue so that BUFFERING messages are
    * emited based on low-/high-percent thresholds.
-   *
-   * Since: 0.10.26
    */
   g_object_class_install_property (gobject_class, PROP_USE_BUFFERING,
       g_param_spec_boolean ("use-buffering", "Use buffering",
@@ -379,8 +377,6 @@
    * GstMultiQueue:low-percent
    * 
    * Low threshold percent for buffering to start.
-   *
-   * Since: 0.10.26
    */
   g_object_class_install_property (gobject_class, PROP_LOW_PERCENT,
       g_param_spec_int ("low-percent", "Low percent",
@@ -390,8 +386,6 @@
    * GstMultiQueue:high-percent
    * 
    * High threshold percent for buffering to finish.
-   *
-   * Since: 0.10.26
    */
   g_object_class_install_property (gobject_class, PROP_HIGH_PERCENT,
       g_param_spec_int ("high-percent", "High percent",
@@ -406,8 +400,6 @@
    * Otherwise multiqueue will synchronize the deactivated or not-linked
    * streams by keeping the order in which buffers and events arrived compared
    * to active and linked streams.
-   *
-   * Since: 0.10.36
    */
   g_object_class_install_property (gobject_class, PROP_SYNC_BY_RUNNING_TIME,
       g_param_spec_boolean ("sync-by-running-time", "Sync By Running Time",
@@ -794,7 +786,7 @@
     GST_LOG_OBJECT (mq, "SingleQueue %d : starting task", sq->id);
     result =
         gst_pad_start_task (sq->srcpad, (GstTaskFunction) gst_multi_queue_loop,
-        sq->srcpad);
+        sq->srcpad, NULL);
   }
   return result;
 }
diff --git a/plugins/elements/gstmultiqueue.h b/plugins/elements/gstmultiqueue.h
index 04c7501..986dc22 100644
--- a/plugins/elements/gstmultiqueue.h
+++ b/plugins/elements/gstmultiqueue.h
@@ -84,7 +84,7 @@
   void (*overrun)	(GstMultiQueue *queue);
 };
 
-GType gst_multi_queue_get_type (void);
+G_GNUC_INTERNAL GType gst_multi_queue_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstoutputselector.c b/plugins/elements/gstoutputselector.c
index 04422ad..294c2bc 100644
--- a/plugins/elements/gstoutputselector.c
+++ b/plugins/elements/gstoutputselector.c
@@ -22,8 +22,6 @@
  * @see_also: #GstOutputSelector, #GstInputSelector
  *
  * Direct input stream to one out of N output pads.
- *
- * Since: 0.10.32
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/plugins/elements/gstoutputselector.h b/plugins/elements/gstoutputselector.h
index 8c55b44..b2a4728 100644
--- a/plugins/elements/gstoutputselector.h
+++ b/plugins/elements/gstoutputselector.h
@@ -61,7 +61,7 @@
   GstElementClass parent_class;
 };
 
-GType gst_output_selector_get_type (void);
+G_GNUC_INTERNAL GType gst_output_selector_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c
index aa494be..2989823 100644
--- a/plugins/elements/gstqueue.c
+++ b/plugins/elements/gstqueue.c
@@ -353,8 +353,6 @@
    *
    * Don't emit queue signals. Makes queues more lightweight if no signals are
    * needed.
-   *
-   * Since: 0.10.31
    */
   g_object_class_install_property (gobject_class, PROP_SILENT,
       g_param_spec_boolean ("silent", "Silent",
@@ -419,7 +417,7 @@
   g_cond_init (&queue->item_add);
   g_cond_init (&queue->item_del);
 
-  g_queue_init (&queue->queue);
+  gst_queue_array_init (&queue->queue, DEFAULT_MAX_SIZE_BUFFERS * 3 / 2);
 
   queue->sinktime = GST_CLOCK_TIME_NONE;
   queue->srctime = GST_CLOCK_TIME_NONE;
@@ -442,12 +440,14 @@
 
   GST_DEBUG_OBJECT (queue, "finalizing queue");
 
-  while ((data = g_queue_pop_head (&queue->queue))) {
+  while (!gst_queue_array_is_empty (&queue->queue)) {
+    data = gst_queue_array_pop_head (&queue->queue);
+    /* FIXME: if it's a query, shouldn't we unref that too? */
     if (!GST_IS_QUERY (data))
       gst_mini_object_unref (data);
   }
+  gst_queue_array_clear (&queue->queue);
 
-  g_queue_clear (&queue->queue);
   g_mutex_clear (&queue->qlock);
   g_cond_clear (&queue->item_add);
   g_cond_clear (&queue->item_del);
@@ -556,7 +556,8 @@
 {
   GstMiniObject *data;
 
-  while ((data = g_queue_pop_head (&queue->queue))) {
+  while (!gst_queue_array_is_empty (&queue->queue)) {
+    data = gst_queue_array_pop_head (&queue->queue);
     /* Then lose another reference because we are supposed to destroy that
        data when flushing */
     if (!GST_IS_QUERY (data))
@@ -588,7 +589,8 @@
   queue->cur_level.bytes += gst_buffer_get_size (buffer);
   apply_buffer (queue, buffer, &queue->sink_segment, TRUE, TRUE);
 
-  g_queue_push_tail (&queue->queue, item);
+  if (item)
+    gst_queue_array_push_tail (&queue->queue, item);
   GST_QUEUE_SIGNAL_ADD (queue);
 }
 
@@ -622,7 +624,8 @@
       break;
   }
 
-  g_queue_push_tail (&queue->queue, item);
+  if (item)
+    gst_queue_array_push_tail (&queue->queue, item);
   GST_QUEUE_SIGNAL_ADD (queue);
 }
 
@@ -632,7 +635,7 @@
 {
   GstMiniObject *item;
 
-  item = g_queue_pop_head (&queue->queue);
+  item = gst_queue_array_pop_head (&queue->queue);
   if (item == NULL)
     goto no_item;
 
@@ -735,7 +738,7 @@
       queue->eos = FALSE;
       queue->unexpected = FALSE;
       gst_pad_start_task (queue->srcpad, (GstTaskFunction) gst_queue_loop,
-          queue->srcpad);
+          queue->srcpad, NULL);
       GST_QUEUE_MUTEX_UNLOCK (queue);
 
       STATUS (queue, pad, "after flush");
@@ -789,7 +792,7 @@
         GST_QUEUE_MUTEX_LOCK_CHECK (queue, out_flushing);
         GST_LOG_OBJECT (queue, "queuing query %p (%s)", query,
             GST_QUERY_TYPE_NAME (query));
-        g_queue_push_tail (&queue->queue, query);
+        gst_queue_array_push_tail (&queue->queue, query);
         GST_QUEUE_SIGNAL_ADD (queue);
         while (queue->queue.length != 0) {
           /* for as long as the queue has items, we know the query is
@@ -817,9 +820,19 @@
 static gboolean
 gst_queue_is_empty (GstQueue * queue)
 {
+  GstMiniObject *head;
+
   if (queue->queue.length == 0)
     return TRUE;
 
+  /* Only consider the queue empty if the minimum thresholds
+   * are not reached and data is at the queue head. Otherwise
+   * we would block forever on serialized queries.
+   */
+  head = queue->queue.array[queue->queue.head];
+  if (!GST_IS_BUFFER (head) && !GST_IS_BUFFER_LIST (head))
+    return FALSE;
+
   /* It is possible that a max size is reached before all min thresholds are.
    * Therefore, only consider it empty if it is not filled. */
   return ((queue->min_threshold.buffers > 0 &&
@@ -1203,10 +1216,21 @@
   GstQueue *queue = GST_QUEUE (parent);
   gboolean res;
 
-  res = gst_pad_query_default (pad, parent, query);
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_SCHEDULING:{
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
+      res = TRUE;
+      break;
+    }
+    default:
+      res = gst_pad_query_default (pad, parent, query);
+      break;
+  }
+
   if (!res)
     return FALSE;
 
+  /* Adjust peer response for data contained in queue */
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_POSITION:
     {
@@ -1314,7 +1338,8 @@
         queue->eos = FALSE;
         queue->unexpected = FALSE;
         result =
-            gst_pad_start_task (pad, (GstTaskFunction) gst_queue_loop, pad);
+            gst_pad_start_task (pad, (GstTaskFunction) gst_queue_loop, pad,
+            NULL);
         GST_QUEUE_MUTEX_UNLOCK (queue);
       } else {
         /* step 1, unblock loop function */
diff --git a/plugins/elements/gstqueue.h b/plugins/elements/gstqueue.h
index 57ccc2a..1ed123e 100644
--- a/plugins/elements/gstqueue.h
+++ b/plugins/elements/gstqueue.h
@@ -25,6 +25,7 @@
 #define __GST_QUEUE_H__
 
 #include <gst/gst.h>
+#include "gstqueuearray.h"
 
 G_BEGIN_DECLS
 
@@ -107,7 +108,7 @@
   gboolean      eos;
 
   /* the queue of data we're keeping our grubby hands on */
-  GQueue queue;
+  GstQueueArray queue;
 
   GstQueueSize
     cur_level,          /* currently in the queue */
@@ -147,7 +148,7 @@
   void (*pushing)       (GstQueue *queue);
 };
 
-GType gst_queue_get_type (void);
+G_GNUC_INTERNAL GType gst_queue_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index 158da10..13e9d22 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -46,10 +46,8 @@
  * By using this, it will buffer the entire stream data on the file independently
  * of the queue size limits, they will only be used for buffering statistics.
  *
- * Since 0.10.24, setting the temp-location property with a filename is deprecated
- * because it's impossible to securely open a temporary file in this way. The
- * property will still be used to notify the application of the allocated
- * filename, though.
+ * The temp-location property will be used to notify the application of the
+ * allocated filename.
  *
  * Last reviewed on 2009-07-10 (0.10.24)
  */
@@ -98,7 +96,7 @@
 
 /* other defines */
 #define DEFAULT_BUFFER_SIZE 4096
-#define QUEUE_IS_USING_TEMP_FILE(queue) ((queue)->temp_location_set || (queue)->temp_template != NULL)
+#define QUEUE_IS_USING_TEMP_FILE(queue) ((queue)->temp_template != NULL)
 #define QUEUE_IS_USING_RING_BUFFER(queue) ((queue)->ring_buffer_max_size != 0)  /* for consistency with the above macro */
 #define QUEUE_IS_USING_QUEUE(queue) (!QUEUE_IS_USING_TEMP_FILE(queue) && !QUEUE_IS_USING_RING_BUFFER (queue))
 
@@ -334,16 +332,14 @@
 
   g_object_class_install_property (gobject_class, PROP_TEMP_LOCATION,
       g_param_spec_string ("temp-location", "Temporary File Location",
-          "Location to store temporary files in (Deprecated: Only read this "
-          "property, use temp-template to configure the name template)",
-          NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          "Location to store temporary files in (Only read this property, "
+          "use temp-template to configure the name template)",
+          NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstQueue2:temp-remove
    *
    * When temp-template is set, remove the temporary file when going to READY.
-   *
-   * Since: 0.10.26
    */
   g_object_class_install_property (gobject_class, PROP_TEMP_REMOVE,
       g_param_spec_boolean ("temp-remove", "Remove the Temporary File",
@@ -355,8 +351,6 @@
    *
    * The maximum size of the ring buffer in bytes. If set to 0, the ring
    * buffer is disabled. Default 0.
-   *
-   * Since: 0.10.31
    */
   g_object_class_install_property (gobject_class, PROP_RING_BUFFER_MAX_SIZE,
       g_param_spec_uint64 ("ring-buffer-max-size",
@@ -451,7 +445,6 @@
   /* tempfile related */
   queue->temp_template = NULL;
   queue->temp_location = NULL;
-  queue->temp_location_set = FALSE;
   queue->temp_remove = DEFAULT_TEMP_REMOVE;
 
   queue->ring_buffer = NULL;
@@ -786,7 +779,6 @@
     GST_LOG_OBJECT (queue, "we are EOS");
   } else {
     /* figure out the percent we are filled, we take the max of all formats. */
-
     if (!QUEUE_IS_USING_RING_BUFFER (queue)) {
       percent = GET_PERCENT (bytes, 0);
     } else {
@@ -817,8 +809,6 @@
   }
   if (post) {
     GstMessage *message;
-    GstBufferingMode mode;
-    gint64 buffering_left = -1;
 
     /* scale to high percent so that it becomes the 100% mark */
     percent = percent * 100 / queue->high_percent;
@@ -826,31 +816,34 @@
     if (percent > 100)
       percent = 100;
 
+
     if (percent != queue->buffering_percent) {
+      GstBufferingMode mode;
+      gint64 buffering_left;
+
+      buffering_left = (percent == 100 ? 0 : -1);
+
       queue->buffering_percent = percent;
 
       if (!QUEUE_IS_USING_QUEUE (queue)) {
-        gint64 duration;
-
         if (QUEUE_IS_USING_RING_BUFFER (queue))
           mode = GST_BUFFERING_TIMESHIFT;
         else
           mode = GST_BUFFERING_DOWNLOAD;
-
-        if (queue->byte_in_rate > 0) {
-          if (gst_pad_peer_query_duration (queue->sinkpad, GST_FORMAT_BYTES,
-                  &duration)) {
-            buffering_left =
-                (gdouble) ((duration -
-                    queue->current->writing_pos) * 1000) / queue->byte_in_rate;
-          }
-        } else {
-          buffering_left = G_MAXINT64;
-        }
       } else {
         mode = GST_BUFFERING_STREAM;
       }
 
+      if (queue->use_rate_estimate) {
+        guint64 max, cur;
+
+        max = queue->max_level.rate_time;
+        cur = queue->cur_level.rate_time;
+
+        if (percent != 100 && max > cur)
+          buffering_left = (max - cur) / 1000000;
+      }
+
       GST_DEBUG_OBJECT (queue, "buffering %d percent", (gint) percent);
       message = gst_message_new_buffering (GST_OBJECT_CAST (queue),
           (gint) percent);
@@ -1374,45 +1367,34 @@
 
   GST_DEBUG_OBJECT (queue, "opening temp file %s", queue->temp_template);
 
-  /* we have two cases:
-   * - temp_location was set to something !NULL (Deprecated). in this case we
-   *   open the specified filename.
-   * - temp_template was set, allocate a filename and open that filename
-   */
-  if (!queue->temp_location_set) {
-    /* nothing to do */
-    if (queue->temp_template == NULL)
-      goto no_directory;
+  /* If temp_template was set, allocate a filename and open that filen */
 
-    /* make copy of the template, we don't want to change this */
-    name = g_strdup (queue->temp_template);
-    fd = g_mkstemp (name);
-    if (fd == -1)
-      goto mkstemp_failed;
+  /* nothing to do */
+  if (queue->temp_template == NULL)
+    goto no_directory;
 
-    /* open the file for update/writing */
-    queue->temp_file = fdopen (fd, "wb+");
-    /* error creating file */
-    if (queue->temp_file == NULL)
-      goto open_failed;
+  /* make copy of the template, we don't want to change this */
+  name = g_strdup (queue->temp_template);
+  fd = g_mkstemp (name);
+  if (fd == -1)
+    goto mkstemp_failed;
 
-    g_free (queue->temp_location);
-    queue->temp_location = name;
+  /* open the file for update/writing */
+  queue->temp_file = fdopen (fd, "wb+");
+  /* error creating file */
+  if (queue->temp_file == NULL)
+    goto open_failed;
 
-    GST_QUEUE2_MUTEX_UNLOCK (queue);
+  g_free (queue->temp_location);
+  queue->temp_location = name;
 
-    /* we can't emit the notify with the lock */
-    g_object_notify (G_OBJECT (queue), "temp-location");
+  GST_QUEUE2_MUTEX_UNLOCK (queue);
 
-    GST_QUEUE2_MUTEX_LOCK (queue);
-  } else {
-    /* open the file for update/writing, this is deprecated but we still need to
-     * support it for API/ABI compatibility */
-    queue->temp_file = g_fopen (queue->temp_location, "wb+");
-    /* error creating file */
-    if (queue->temp_file == NULL)
-      goto open_failed;
-  }
+  /* we can't emit the notify with the lock */
+  g_object_notify (G_OBJECT (queue), "temp-location");
+
+  GST_QUEUE2_MUTEX_LOCK (queue);
+
   GST_DEBUG_OBJECT (queue, "opened temp file %s", queue->temp_template);
 
   return TRUE;
@@ -1941,6 +1923,19 @@
           item = NULL;
         }
         break;
+      case GST_EVENT_CAPS:{
+        GstCaps *caps;
+
+        gst_event_parse_caps (event, &caps);
+        GST_INFO ("got caps: %" GST_PTR_FORMAT, caps);
+
+        if (!QUEUE_IS_USING_QUEUE (queue)) {
+          GST_LOG ("Dropping caps event, not using queue");
+          gst_event_unref (event);
+          item = NULL;
+        }
+        break;
+      }
       default:
         if (!QUEUE_IS_USING_QUEUE (queue))
           goto unexpected_event;
@@ -2139,7 +2134,7 @@
         /* reset rate counters */
         reset_rate_timer (queue);
         gst_pad_start_task (queue->srcpad, (GstTaskFunction) gst_queue2_loop,
-            queue->srcpad);
+            queue->srcpad, NULL);
         GST_QUEUE2_MUTEX_UNLOCK (queue);
       } else {
         GST_QUEUE2_MUTEX_LOCK (queue);
@@ -2697,16 +2692,31 @@
               GST_FORMAT_BYTES, &duration);
         }
 
+        GST_DEBUG_OBJECT (queue, "percent %d, duration %" G_GINT64_FORMAT
+            ", writing %" G_GINT64_FORMAT, percent, duration, writing_pos);
+
         /* calculate remaining and total download time */
-        if (peer_res && byte_in_rate > 0.0) {
-          estimated_total = (duration * 1000) / byte_in_rate;
-          buffering_left = ((duration - writing_pos) * 1000) / byte_in_rate;
-        } else {
+        if (peer_res && byte_in_rate > 0.0)
+          estimated_total = ((duration - writing_pos) * 1000) / byte_in_rate;
+        else
           estimated_total = -1;
-          buffering_left = -1;
+
+        /* calculate estimated remaining buffer time */
+        buffering_left = (percent == 100 ? 0 : -1);
+
+        if (queue->use_rate_estimate) {
+          guint64 max, cur;
+
+          max = queue->max_level.rate_time;
+          cur = queue->cur_level.rate_time;
+
+          if (percent != 100 && max > cur)
+            buffering_left = (max - cur) / 1000000;
         }
-        GST_DEBUG_OBJECT (queue, "estimated %" G_GINT64_FORMAT ", left %"
-            G_GINT64_FORMAT, estimated_total, buffering_left);
+
+        GST_DEBUG_OBJECT (queue, "estimated-total %" G_GINT64_FORMAT
+            ", buffering-left %" G_GINT64_FORMAT, estimated_total,
+            buffering_left);
 
         gst_query_parse_buffering_range (query, &format, NULL, NULL, NULL);
 
@@ -2716,14 +2726,12 @@
             if (!peer_res)
               goto peer_failed;
 
-            GST_DEBUG_OBJECT (queue,
-                "duration %" G_GINT64_FORMAT ", writing %" G_GINT64_FORMAT,
-                duration, writing_pos);
-
             start = 0;
             /* get our available data relative to the duration */
             if (duration != -1)
-              stop = GST_FORMAT_PERCENT_MAX * writing_pos / duration;
+              stop =
+                  gst_util_uint64_scale (GST_FORMAT_PERCENT_MAX, writing_pos,
+                  duration);
             else
               stop = -1;
             break;
@@ -2747,8 +2755,12 @@
                 range_stop = 0;
                 break;
               }
-              range_start = 100 * queued_ranges->offset / duration;
-              range_stop = 100 * queued_ranges->writing_pos / duration;
+              range_start =
+                  gst_util_uint64_scale (GST_FORMAT_PERCENT_MAX,
+                  queued_ranges->offset, duration);
+              range_stop =
+                  gst_util_uint64_scale (GST_FORMAT_PERCENT_MAX,
+                  queued_ranges->writing_pos, duration);
               break;
             case GST_FORMAT_BYTES:
               range_start = queued_ranges->offset;
@@ -2768,10 +2780,10 @@
         }
 
         gst_query_set_buffering_percent (query, is_buffering, percent);
-        gst_query_set_buffering_range (query, format, start, stop,
-            estimated_total);
         gst_query_set_buffering_stats (query, GST_BUFFERING_DOWNLOAD,
             byte_in_rate, byte_out_rate, buffering_left);
+        gst_query_set_buffering_range (query, format, start, stop,
+            estimated_total);
       }
       break;
     }
@@ -2944,7 +2956,8 @@
     queue->sinkresult = GST_FLOW_OK;
     queue->is_eos = FALSE;
     queue->unexpected = FALSE;
-    result = gst_pad_start_task (pad, (GstTaskFunction) gst_queue2_loop, pad);
+    result =
+        gst_pad_start_task (pad, (GstTaskFunction) gst_queue2_loop, pad, NULL);
     GST_QUEUE2_MUTEX_UNLOCK (queue);
   } else {
     /* unblock loop function */
@@ -3192,13 +3205,6 @@
     case PROP_TEMP_TEMPLATE:
       gst_queue2_set_temp_template (queue, g_value_get_string (value));
       break;
-    case PROP_TEMP_LOCATION:
-      g_free (queue->temp_location);
-      queue->temp_location = g_value_dup_string (value);
-      /* you can set the property back to NULL to make it use the temp-template
-       * property. */
-      queue->temp_location_set = queue->temp_location != NULL;
-      break;
     case PROP_TEMP_REMOVE:
       queue->temp_remove = g_value_get_boolean (value);
       break;
diff --git a/plugins/elements/gstqueue2.h b/plugins/elements/gstqueue2.h
index 25beef4..b69f46b 100644
--- a/plugins/elements/gstqueue2.h
+++ b/plugins/elements/gstqueue2.h
@@ -156,7 +156,7 @@
   GstElementClass parent_class;
 };
 
-GType gst_queue2_get_type (void);
+G_GNUC_INTERNAL GType gst_queue2_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstqueuearray.c b/plugins/elements/gstqueuearray.c
new file mode 100644
index 0000000..f16f7ae
--- /dev/null
+++ b/plugins/elements/gstqueuearray.c
@@ -0,0 +1,175 @@
+/* GStreamer
+ * Copyright (C) 2009 Edward Hervey <bilboed@bilboed.com>
+ *
+ * gstqueuearray.c:
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <gst/gst.h>
+#include "gstqueuearray.h"
+
+void
+gst_queue_array_init (GstQueueArray * array, guint initial_size)
+{
+  array->size = initial_size;
+  array->array = g_new0 (gpointer, initial_size);
+  array->head = 0;
+  array->tail = 0;
+  array->length = 0;
+
+}
+
+GstQueueArray *
+gst_queue_array_new (guint initial_size)
+{
+  GstQueueArray *array;
+
+  array = g_new (GstQueueArray, 1);
+  gst_queue_array_init (array, initial_size);
+  return array;
+}
+
+gpointer
+gst_queue_array_pop_head (GstQueueArray * array)
+{
+  gpointer ret;
+
+  /* empty array */
+  if (G_UNLIKELY (array->length == 0))
+    return NULL;
+  ret = array->array[array->head];
+  array->head++;
+  array->head %= array->size;
+  array->length--;
+  return ret;
+}
+
+void
+gst_queue_array_push_tail (GstQueueArray * array, gpointer data)
+{
+  /* Check if we need to make room */
+  if (G_UNLIKELY (array->length == array->size)) {
+    /* newsize is 50% bigger */
+    guint newsize = (3 * array->size) / 2;
+
+    /* copy over data */
+    if (array->tail != 0) {
+      gpointer *array2 = g_new0 (gpointer, newsize);
+      guint t1 = array->head;
+      guint t2 = array->size - array->head;
+
+      /* [0-----TAIL][HEAD------SIZE]
+       *
+       * We want to end up with
+       * [HEAD------------------TAIL][----FREEDATA------NEWSIZE]
+       *
+       * 1) move [HEAD-----SIZE] part to beginning of new array
+       * 2) move [0-------TAIL] part new array, after previous part
+       */
+
+      memcpy (array2, &array->array[array->head], t2 * sizeof (gpointer));
+      memcpy (&array2[t2], array->array, t1 * sizeof (gpointer));
+
+      g_free (array->array);
+      array->array = array2;
+      array->head = 0;
+    } else {
+      /* Fast path, we just need to grow the array */
+      array->array = g_renew (gpointer, array->array, newsize);
+    }
+    array->tail = array->size;
+    array->size = newsize;
+  }
+
+  array->array[array->tail] = data;
+  array->tail++;
+  array->tail %= array->size;
+  array->length++;
+}
+
+gboolean
+gst_queue_array_is_empty (GstQueueArray * array)
+{
+  return (array->length == 0);
+}
+
+void
+gst_queue_array_clear (GstQueueArray * array)
+{
+  g_free (array->array);
+}
+
+void
+gst_queue_array_free (GstQueueArray * array)
+{
+  gst_queue_array_clear (array);
+  g_free (array);
+}
+
+void
+gst_queue_array_drop_element (GstQueueArray * array, guint idx)
+{
+  if (idx == array->head) {
+    /* just move the head */
+    array->head++;
+    array->head %= array->size;
+    return;
+  }
+  if (idx == array->tail - 1) {
+    /* just move the tail */
+    array->tail = (array->tail - 1 + array->size) % array->size;
+    return;
+  }
+  /* drop the element #idx... and readjust the array */
+  if (array->head < array->tail) {
+    /* Make sure it's within the boundaries */
+    g_assert (array->head < idx && idx <= array->tail);
+    /* ends not wrapped */
+    /* move head-idx to head+1 */
+    memcpy (&array->array[array->head + 1],
+        &array->array[array->head], (idx - array->head) * sizeof (gpointer));
+    array->tail--;
+  } else {
+    /* ends are wrapped */
+    if (idx < array->tail) {
+      /* move idx-tail backwards one */
+      memcpy (&array->array[idx - 1],
+          &array->array[idx], (array->tail - idx) * sizeof (gpointer));
+      array->tail--;
+    } else if (idx >= array->head) {
+      /* move head-idx forwards one */
+      memcpy (&array->array[array->head],
+          &array->array[array->head + 1],
+          (idx - array->head) * sizeof (gpointer));
+      array->head++;
+    } else
+      g_assert_not_reached ();
+  }
+}
+
+guint
+gst_queue_array_find (GstQueueArray * array, GCompareFunc func, gpointer data)
+{
+  guint i;
+
+  /* Scan from head to tail */
+  for (i = array->head; i < array->length; i = (i + 1) % array->size)
+    if (func (array->array[i], data) == 0)
+      return i;
+  return -1;
+}
diff --git a/plugins/elements/gstqueuearray.h b/plugins/elements/gstqueuearray.h
new file mode 100644
index 0000000..510cbf4
--- /dev/null
+++ b/plugins/elements/gstqueuearray.h
@@ -0,0 +1,61 @@
+/* GStreamer
+ * Copyright (C) 2009-2010 Edward Hervey <bilboed@bilboed.com>
+ *
+ * gstqueuearray.h:
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <glib.h>
+
+#ifndef __GST_QUEUE_ARRAY_H__
+#define __GST_QUEUE_ARRAY_H__
+
+typedef struct _GstQueueArray GstQueueArray;
+
+struct _GstQueueArray
+{
+  gpointer *array;
+  guint size;
+  guint head;
+  guint tail;
+  guint length;
+};
+
+G_GNUC_INTERNAL void            gst_queue_array_init  (GstQueueArray * array,
+                                                       guint           initial_size);
+
+G_GNUC_INTERNAL void            gst_queue_array_clear (GstQueueArray * array);
+
+G_GNUC_INTERNAL GstQueueArray * gst_queue_array_new       (guint initial_size);
+
+G_GNUC_INTERNAL gpointer        gst_queue_array_pop_head  (GstQueueArray * array);
+
+G_GNUC_INTERNAL void            gst_queue_array_push_tail (GstQueueArray * array,
+                                                           gpointer        data);
+
+G_GNUC_INTERNAL gboolean        gst_queue_array_is_empty  (GstQueueArray * array);
+
+G_GNUC_INTERNAL void            gst_queue_array_free      (GstQueueArray * array);
+
+G_GNUC_INTERNAL void            gst_queue_array_drop_element (GstQueueArray * array,
+                                                              guint           idx);
+
+G_GNUC_INTERNAL guint           gst_queue_array_find (GstQueueArray * array,
+                                                      GCompareFunc    func,
+                                                      gpointer        data);
+
+#endif
diff --git a/plugins/elements/gsttee.c b/plugins/elements/gsttee.c
index 33f2d8d..3c7f019 100644
--- a/plugins/elements/gsttee.c
+++ b/plugins/elements/gsttee.c
@@ -83,7 +83,6 @@
 #define GST_TEE_DYN_UNLOCK(tee) g_mutex_unlock (&(tee)->dyn_lock)
 
 #define DEFAULT_PROP_NUM_SRC_PADS	0
-#define DEFAULT_PROP_HAS_SINK_LOOP	FALSE
 #define DEFAULT_PROP_HAS_CHAIN		TRUE
 #define DEFAULT_PROP_SILENT		TRUE
 #define DEFAULT_PROP_LAST_MESSAGE	NULL
@@ -93,7 +92,6 @@
 {
   PROP_0,
   PROP_NUM_SRC_PADS,
-  PROP_HAS_SINK_LOOP,
   PROP_HAS_CHAIN,
   PROP_SILENT,
   PROP_LAST_MESSAGE,
@@ -245,11 +243,6 @@
       g_param_spec_int ("num-src-pads", "Num Src Pads",
           "The number of source pads", 0, G_MAXINT, DEFAULT_PROP_NUM_SRC_PADS,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, PROP_HAS_SINK_LOOP,
-      g_param_spec_boolean ("has-sink-loop", "Has Sink Loop",
-          "If the element should spawn a thread (unimplemented and deprecated)",
-          DEFAULT_PROP_HAS_SINK_LOOP,
-          G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_HAS_CHAIN,
       g_param_spec_boolean ("has-chain", "Has Chain",
           "If the element can operate in push mode", DEFAULT_PROP_HAS_CHAIN,
@@ -443,12 +436,6 @@
 
   GST_OBJECT_LOCK (tee);
   switch (prop_id) {
-    case PROP_HAS_SINK_LOOP:
-      tee->has_sink_loop = g_value_get_boolean (value);
-      if (tee->has_sink_loop) {
-        g_warning ("tee will never implement has-sink-loop==TRUE");
-      }
-      break;
     case PROP_HAS_CHAIN:
       tee->has_chain = g_value_get_boolean (value);
       break;
@@ -488,9 +475,6 @@
     case PROP_NUM_SRC_PADS:
       g_value_set_int (value, GST_ELEMENT (tee)->numsrcpads);
       break;
-    case PROP_HAS_SINK_LOOP:
-      g_value_set_boolean (value, tee->has_sink_loop);
-      break;
     case PROP_HAS_CHAIN:
       g_value_set_boolean (value, tee->has_chain);
       break;
diff --git a/plugins/elements/gsttee.h b/plugins/elements/gsttee.h
index 5d6cc51..5d00947 100644
--- a/plugins/elements/gsttee.h
+++ b/plugins/elements/gsttee.h
@@ -74,7 +74,6 @@
   guint           pad_counter;
 
   gboolean        has_chain;
-  gboolean        has_sink_loop;
   gboolean        silent;
   gchar          *last_message;
 
@@ -87,7 +86,7 @@
   GstElementClass parent_class;
 };
 
-GType	gst_tee_get_type	(void);
+G_GNUC_INTERNAL GType	gst_tee_get_type	(void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index e6c4de2..d299026 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -39,7 +39,7 @@
  * 1) get a list of all typefind functions sorted best to worst
  * 2) if all elements have been called with all requested data goto 8
  * 3) call all functions once with all available data
- * 4) if a function returns a value >= PROP_MAXIMUM goto 8
+ * 4) if a function returns a value >= PROP_MAXIMUM goto 8 (never implemented))
  * 5) all functions with a result > PROP_MINIMUM or functions that did not get
  *    all requested data (where peek returned NULL) stay in list
  * 6) seek to requested offset of best function that still has open data
@@ -111,7 +111,6 @@
   PROP_0,
   PROP_CAPS,
   PROP_MINIMUM,
-  PROP_MAXIMUM,
   PROP_FORCE_CAPS,
   PROP_LAST
 };
@@ -188,7 +187,7 @@
   typefind->caps = gst_caps_ref (caps);
   GST_OBJECT_UNLOCK (typefind);
 
-  gst_pad_push_event (typefind->src, gst_event_new_caps (caps));
+  gst_pad_set_caps (typefind->src, caps);
 }
 
 static void
@@ -210,11 +209,6 @@
           "minimum probability required to accept caps", GST_TYPE_FIND_MINIMUM,
           GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MINIMUM,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-  g_object_class_install_property (gobject_class, PROP_MAXIMUM,
-      g_param_spec_uint ("maximum", _("maximum"),
-          "probability to stop typefinding (deprecated; non-functional)",
-          GST_TYPE_FIND_MINIMUM, GST_TYPE_FIND_MAXIMUM, GST_TYPE_FIND_MAXIMUM,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_FORCE_CAPS,
       g_param_spec_boxed ("force-caps", _("force caps"),
           _("force caps without doing a typefind"), GST_TYPE_CAPS,
@@ -288,7 +282,6 @@
   typefind->mode = MODE_TYPEFIND;
   typefind->caps = NULL;
   typefind->min_probability = 1;
-  typefind->max_probability = GST_TYPE_FIND_MAXIMUM;
 
   typefind->adapter = gst_adapter_new ();
 }
@@ -323,9 +316,6 @@
     case PROP_MINIMUM:
       typefind->min_probability = g_value_get_uint (value);
       break;
-    case PROP_MAXIMUM:
-      typefind->max_probability = g_value_get_uint (value);
-      break;
     case PROP_FORCE_CAPS:
       GST_OBJECT_LOCK (typefind);
       if (typefind->force_caps)
@@ -356,9 +346,6 @@
     case PROP_MINIMUM:
       g_value_set_uint (value, typefind->min_probability);
       break;
-    case PROP_MAXIMUM:
-      g_value_set_uint (value, typefind->max_probability);
-      break;
     case PROP_FORCE_CAPS:
       GST_OBJECT_LOCK (typefind);
       g_value_set_boxed (value, typefind->force_caps);
@@ -436,14 +423,14 @@
 gst_type_find_element_seek (GstTypeFindElement * typefind, GstEvent * event)
 {
   GstSeekFlags flags;
-  GstSeekType cur_type, stop_type;
+  GstSeekType start_type, stop_type;
   GstFormat format;
   gboolean flush;
   gdouble rate;
-  gint64 cur, stop;
+  gint64 start, stop;
   GstSegment seeksegment = { 0, };
 
-  gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
+  gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start,
       &stop_type, &stop);
 
   /* we can only seek on bytes */
@@ -458,7 +445,7 @@
 
   GST_DEBUG_OBJECT (typefind, "configuring seek");
   gst_segment_do_seek (&seeksegment, rate, format, flags,
-      cur_type, cur, stop_type, stop, NULL);
+      start_type, start, stop_type, stop, NULL);
 
   flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
 
@@ -491,7 +478,7 @@
   typefind->offset = typefind->segment.start;
 
   /* notify start of new segment */
-  if (typefind->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+  if (typefind->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
     GstMessage *msg;
 
     msg = gst_message_new_segment_start (GST_OBJECT (typefind),
@@ -504,7 +491,7 @@
   /* restart our task since it might have been stopped when we did the
    * flush. */
   gst_pad_start_task (typefind->sink,
-      (GstTaskFunction) gst_type_find_element_loop, typefind->sink);
+      (GstTaskFunction) gst_type_find_element_loop, typefind->sink, NULL);
 
   /* streaming can continue now */
   GST_PAD_STREAM_UNLOCK (typefind->sink);
@@ -877,7 +864,7 @@
     have_min = avail >= TYPE_FIND_MIN_SIZE;
     have_max = avail >= TYPE_FIND_MAX_SIZE;
   } else {
-    have_min = TRUE;
+    have_min = avail > 0;
     have_max = TRUE;
   }
 
@@ -979,12 +966,12 @@
        * activation might happen from the streaming thread. */
       gst_pad_pause_task (typefind->sink);
       res = gst_pad_activate_mode (typefind->sink, mode, active);
-      if (typefind->caps) {
+      if (active && res && typefind->caps) {
         GstCaps *caps;
         GST_OBJECT_LOCK (typefind);
         caps = gst_caps_ref (typefind->caps);
         GST_OBJECT_UNLOCK (typefind);
-        gst_pad_push_event (typefind->src, gst_event_new_caps (caps));
+        res = gst_pad_set_caps (typefind->src, caps);
         gst_caps_unref (caps);
       }
       break;
@@ -1103,7 +1090,7 @@
     if (ret == GST_FLOW_EOS) {
       /* perform EOS logic */
 
-      if (typefind->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+      if (typefind->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
         gint64 stop;
 
         /* for segment playback we need to post when (in stream time)
@@ -1115,6 +1102,8 @@
         gst_element_post_message (GST_ELEMENT (typefind),
             gst_message_new_segment_done (GST_OBJECT (typefind),
                 GST_FORMAT_BYTES, stop));
+        gst_pad_push_event (typefind->src,
+            gst_event_new_segment_done (GST_FORMAT_BYTES, stop));
       } else {
         push_eos = TRUE;
       }
@@ -1218,7 +1207,7 @@
 
   /* only start our task if we ourselves decide to start in pull mode */
   return gst_pad_start_task (pad, (GstTaskFunction) gst_type_find_element_loop,
-      pad);
+      pad, NULL);
 
 typefind_push:
   {
diff --git a/plugins/elements/gsttypefindelement.h b/plugins/elements/gsttypefindelement.h
index 0242ec2..2ee3325 100644
--- a/plugins/elements/gsttypefindelement.h
+++ b/plugins/elements/gsttypefindelement.h
@@ -51,7 +51,6 @@
   GstPad *		src;
 
   guint			min_probability;
-  guint			max_probability;
   GstCaps *		caps;
 
   guint			mode;
@@ -75,7 +74,7 @@
 					 GstCaps            *caps);
 };
 
-GType gst_type_find_element_get_type (void);
+G_GNUC_INTERNAL GType gst_type_find_element_get_type (void);
 
 G_END_DECLS
 
diff --git a/plugins/elements/gstvalve.c b/plugins/elements/gstvalve.c
index a69b785..c5fb151 100644
--- a/plugins/elements/gstvalve.c
+++ b/plugins/elements/gstvalve.c
@@ -34,8 +34,6 @@
  * gst-plugins-bad.
  *
  * Documentation last reviewed on 2010-12-30 (0.10.31)
- *
- * Since: 0.10.32
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/plugins/elements/gstvalve.h b/plugins/elements/gstvalve.h
index 7318af7..c12c7c7 100644
--- a/plugins/elements/gstvalve.h
+++ b/plugins/elements/gstvalve.h
@@ -48,8 +48,6 @@
  * GstValve:
  *
  * The private valve structure
- *
- * Since: 0.10.32
  */
 struct _GstValve
 {
@@ -72,7 +70,7 @@
   GstElementClass parent_class;
 };
 
-GType gst_valve_get_type (void);
+G_GNUC_INTERNAL GType gst_valve_get_type (void);
 
 G_END_DECLS
 
diff --git a/po/af.gmo b/po/af.gmo
index dc52152..ecf90c5 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 0530494..cdb31be 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -947,9 +947,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maksimum"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/az.gmo b/po/az.gmo
index 52ec0cf..15f2c04 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 7563ac1..057c16a 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -899,9 +899,6 @@
 msgid "minimum"
 msgstr "minimal"
 
-msgid "maximum"
-msgstr "maksimal"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/be.gmo b/po/be.gmo
index 30c5b03..cda884c 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index 659461a..e0142b9 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -905,9 +905,6 @@
 msgid "minimum"
 msgstr ""
 
-msgid "maximum"
-msgstr ""
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 19c9a1e..4dd6541 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index b36f1cc..c9fe8e0 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -937,9 +937,6 @@
 msgid "minimum"
 msgstr "минимум"
 
-msgid "maximum"
-msgstr "максимум"
-
 msgid "force caps"
 msgstr "принудително прилагане на възможности"
 
diff --git a/po/ca.gmo b/po/ca.gmo
index 064bef0..3dc8d71 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index dd4c7a9..e5b1c03 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -946,9 +946,6 @@
 msgid "minimum"
 msgstr "mínim"
 
-msgid "maximum"
-msgstr "màxim"
-
 msgid "force caps"
 msgstr "força les capacitats"
 
diff --git a/po/cs.gmo b/po/cs.gmo
index 2e8bb95..d5e8854 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 1575e42..770af6e 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-12-01 08:17+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -938,9 +938,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr "vynutit schopnosti"
 
diff --git a/po/da.gmo b/po/da.gmo
index 6f209f8..ec7d0c2 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 13a430e..01794b1 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2010-11-06 22:52+0100\n"
 "Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -941,9 +941,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maksimum"
-
 msgid "force caps"
 msgstr "gennemtving kapabiliteter"
 
diff --git a/po/de.gmo b/po/de.gmo
index 8dc740f..d4d0b65 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index e2166e8..aeff7a3 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-04-27 23:44+0200\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -964,9 +964,6 @@
 msgid "minimum"
 msgstr "Minimum"
 
-msgid "maximum"
-msgstr "Maximum"
-
 msgid "force caps"
 msgstr "Fähigkeiten erzwingen"
 
diff --git a/po/el.gmo b/po/el.gmo
index c1c3012..2ee8fae 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 343f4e9..4890be2 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -959,9 +959,6 @@
 msgid "minimum"
 msgstr "ελάχιστο"
 
-msgid "maximum"
-msgstr "μέγιστο"
-
 msgid "force caps"
 msgstr "επιβολή δυνατοτήτων"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 9f5718e..7b4afaf 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 de86948..3268566 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -951,9 +951,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/eo.gmo b/po/eo.gmo
index 95c5c6a..ed829ee 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index f15bdc2..30d0213 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -888,9 +888,6 @@
 msgid "minimum"
 msgstr "minimumo"
 
-msgid "maximum"
-msgstr "maksimumo"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/es.gmo b/po/es.gmo
index 2799c43..5837758 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 42c91a9..6d2823b 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -950,9 +950,6 @@
 msgid "minimum"
 msgstr "mínimo"
 
-msgid "maximum"
-msgstr "máximo"
-
 msgid "force caps"
 msgstr "forzar las capacidades"
 
diff --git a/po/eu.gmo b/po/eu.gmo
index a0e0ce4..ee53412 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 7142b11..5624453 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -949,9 +949,6 @@
 msgid "minimum"
 msgstr "gutxienekoa"
 
-msgid "maximum"
-msgstr "gehienezkoa"
-
 msgid "force caps"
 msgstr "derrigortu gaitasunak"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 5c9cecb..053d1ed 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index a4cc57b..c862242 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -944,9 +944,6 @@
 msgid "minimum"
 msgstr "vähintään"
 
-msgid "maximum"
-msgstr "enintään"
-
 msgid "force caps"
 msgstr "pakota kyvyt"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index ba0fc13..684573a 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 811f620..5988777 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-04-28 09:34+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -946,9 +946,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr "forcer les capacités"
 
diff --git a/po/gl.gmo b/po/gl.gmo
index f4b527b..9527585 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 5f0d995..166670f 100644
--- a/po/gl.po
+++ b/po/gl.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-09-05 12:49+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -941,9 +941,6 @@
 msgid "minimum"
 msgstr "mínimo"
 
-msgid "maximum"
-msgstr "máximo"
-
 msgid "force caps"
 msgstr "forzar as capacidades"
 
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index 0429d35..a13c85e 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gstreamer 0.11.92\n"
+"Project-Id-Version: gstreamer 0.11.93\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -98,7 +98,7 @@
 msgid "Show GStreamer Options"
 msgstr ""
 
-#: gst/gst.c:926
+#: gst/gst.c:927
 msgid "Unknown option"
 msgstr ""
 
@@ -295,558 +295,558 @@
 msgid "No standard error message for domain %s and code %d."
 msgstr ""
 
-#: gst/gstpipeline.c:525
+#: gst/gstpipeline.c:522
 msgid "Selected clock cannot be used in pipeline."
 msgstr ""
 
-#: gst/gsttaglist.c:110
+#: gst/gsttaglist.c:105
 msgid "title"
 msgstr ""
 
-#: gst/gsttaglist.c:110
+#: gst/gsttaglist.c:105
 msgid "commonly used title"
 msgstr ""
 
-#: gst/gsttaglist.c:113
+#: gst/gsttaglist.c:108
 msgid "title sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:113
+#: gst/gsttaglist.c:108
 msgid "commonly used title for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:116
+#: gst/gsttaglist.c:111
 msgid "artist"
 msgstr ""
 
-#: gst/gsttaglist.c:117
+#: gst/gsttaglist.c:112
 msgid "person(s) responsible for the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:121
+#: gst/gsttaglist.c:116
 msgid "artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:122
+#: gst/gsttaglist.c:117
 msgid "person(s) responsible for the recording for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:125
+#: gst/gsttaglist.c:120
 msgid "album"
 msgstr ""
 
-#: gst/gsttaglist.c:126
+#: gst/gsttaglist.c:121
 msgid "album containing this data"
 msgstr ""
 
-#: gst/gsttaglist.c:129
+#: gst/gsttaglist.c:124
 msgid "album sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:130
+#: gst/gsttaglist.c:125
 msgid "album containing this data for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:133
+#: gst/gsttaglist.c:128
 msgid "album artist"
 msgstr ""
 
-#: gst/gsttaglist.c:134
+#: gst/gsttaglist.c:129
 msgid "The artist of the entire album, as it should be displayed"
 msgstr ""
 
-#: gst/gsttaglist.c:138
+#: gst/gsttaglist.c:133
 msgid "album artist sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:139
+#: gst/gsttaglist.c:134
 msgid "The artist of the entire album, as it should be sorted"
 msgstr ""
 
-#: gst/gsttaglist.c:141
+#: gst/gsttaglist.c:136
 msgid "date"
 msgstr ""
 
-#: gst/gsttaglist.c:141
+#: gst/gsttaglist.c:136
 msgid "date the data was created (as a GDate structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:143
+#: gst/gsttaglist.c:138
 msgid "datetime"
 msgstr ""
 
-#: gst/gsttaglist.c:144
+#: gst/gsttaglist.c:139
 msgid "date and time the data was created (as a GstDateTime structure)"
 msgstr ""
 
-#: gst/gsttaglist.c:148
+#: gst/gsttaglist.c:143
 msgid "genre"
 msgstr ""
 
-#: gst/gsttaglist.c:149
+#: gst/gsttaglist.c:144
 msgid "genre this data belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:152
+#: gst/gsttaglist.c:147
 msgid "comment"
 msgstr ""
 
-#: gst/gsttaglist.c:153
+#: gst/gsttaglist.c:148
 msgid "free text commenting the data"
 msgstr ""
 
-#: gst/gsttaglist.c:156
+#: gst/gsttaglist.c:151
 msgid "extended comment"
 msgstr ""
 
-#: gst/gsttaglist.c:157
+#: gst/gsttaglist.c:152
 msgid "free text commenting the data in key=value or key[en]=comment form"
 msgstr ""
 
-#: gst/gsttaglist.c:161
+#: gst/gsttaglist.c:156
 msgid "track number"
 msgstr ""
 
-#: gst/gsttaglist.c:162
+#: gst/gsttaglist.c:157
 msgid "track number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:165
+#: gst/gsttaglist.c:160
 msgid "track count"
 msgstr ""
 
-#: gst/gsttaglist.c:166
+#: gst/gsttaglist.c:161
 msgid "count of tracks inside collection this track belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:170
+#: gst/gsttaglist.c:165
 msgid "disc number"
 msgstr ""
 
-#: gst/gsttaglist.c:171
+#: gst/gsttaglist.c:166
 msgid "disc number inside a collection"
 msgstr ""
 
-#: gst/gsttaglist.c:174
+#: gst/gsttaglist.c:169
 msgid "disc count"
 msgstr ""
 
-#: gst/gsttaglist.c:175
+#: gst/gsttaglist.c:170
 msgid "count of discs inside collection this disc belongs to"
 msgstr ""
 
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:174
 msgid "location"
 msgstr ""
 
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:174
 msgid ""
 "Origin of media as a URI (location, where the original of the file or stream "
 "is hosted)"
 msgstr ""
 
-#: gst/gsttaglist.c:184
+#: gst/gsttaglist.c:179
 msgid "homepage"
 msgstr ""
 
-#: gst/gsttaglist.c:185
+#: gst/gsttaglist.c:180
 msgid "Homepage for this media (i.e. artist or movie homepage)"
 msgstr ""
 
-#: gst/gsttaglist.c:188
+#: gst/gsttaglist.c:183
 msgid "description"
 msgstr ""
 
-#: gst/gsttaglist.c:189
+#: gst/gsttaglist.c:184
 msgid "short text describing the content of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:192
+#: gst/gsttaglist.c:187
 msgid "version"
 msgstr ""
 
-#: gst/gsttaglist.c:192
+#: gst/gsttaglist.c:187
 msgid "version of this data"
 msgstr ""
 
-#: gst/gsttaglist.c:194
+#: gst/gsttaglist.c:189
 msgid "ISRC"
 msgstr ""
 
-#: gst/gsttaglist.c:196
+#: gst/gsttaglist.c:191
 msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
 msgstr ""
 
-#: gst/gsttaglist.c:200
+#: gst/gsttaglist.c:195
 msgid "organization"
 msgstr ""
 
-#: gst/gsttaglist.c:203
+#: gst/gsttaglist.c:198
 msgid "copyright"
 msgstr ""
 
-#: gst/gsttaglist.c:203
+#: gst/gsttaglist.c:198
 msgid "copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:205
+#: gst/gsttaglist.c:200
 msgid "copyright uri"
 msgstr ""
 
-#: gst/gsttaglist.c:206
+#: gst/gsttaglist.c:201
 msgid "URI to the copyright notice of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:208
+#: gst/gsttaglist.c:203
 msgid "encoded by"
 msgstr ""
 
-#: gst/gsttaglist.c:208
+#: gst/gsttaglist.c:203
 msgid "name of the encoding person or organization"
 msgstr ""
 
-#: gst/gsttaglist.c:212
+#: gst/gsttaglist.c:207
 msgid "contact"
 msgstr ""
 
-#: gst/gsttaglist.c:212
+#: gst/gsttaglist.c:207
 msgid "contact information"
 msgstr ""
 
-#: gst/gsttaglist.c:214
+#: gst/gsttaglist.c:209
 msgid "license"
 msgstr ""
 
-#: gst/gsttaglist.c:214
+#: gst/gsttaglist.c:209
 msgid "license of data"
 msgstr ""
 
-#: gst/gsttaglist.c:216
+#: gst/gsttaglist.c:211
 msgid "license uri"
 msgstr ""
 
-#: gst/gsttaglist.c:217
+#: gst/gsttaglist.c:212
 msgid "URI to the license of the data"
 msgstr ""
 
-#: gst/gsttaglist.c:220
+#: gst/gsttaglist.c:215
 msgid "performer"
 msgstr ""
 
-#: gst/gsttaglist.c:221
+#: gst/gsttaglist.c:216
 msgid "person(s) performing"
 msgstr ""
 
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:219
 msgid "composer"
 msgstr ""
 
-#: gst/gsttaglist.c:225
+#: gst/gsttaglist.c:220
 msgid "person(s) who composed the recording"
 msgstr ""
 
-#: gst/gsttaglist.c:229
+#: gst/gsttaglist.c:224
 msgid "duration"
 msgstr ""
 
-#: gst/gsttaglist.c:229
+#: gst/gsttaglist.c:224
 msgid "length in GStreamer time units (nanoseconds)"
 msgstr ""
 
-#: gst/gsttaglist.c:232
+#: gst/gsttaglist.c:227
 msgid "codec"
 msgstr ""
 
-#: gst/gsttaglist.c:233
+#: gst/gsttaglist.c:228
 msgid "codec the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:236
+#: gst/gsttaglist.c:231
 msgid "video codec"
 msgstr ""
 
-#: gst/gsttaglist.c:236
+#: gst/gsttaglist.c:231
 msgid "codec the video data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:239
+#: gst/gsttaglist.c:234
 msgid "audio codec"
 msgstr ""
 
-#: gst/gsttaglist.c:239
+#: gst/gsttaglist.c:234
 msgid "codec the audio data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:242
+#: gst/gsttaglist.c:237
 msgid "subtitle codec"
 msgstr ""
 
-#: gst/gsttaglist.c:242
+#: gst/gsttaglist.c:237
 msgid "codec the subtitle data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:244
+#: gst/gsttaglist.c:239
 msgid "container format"
 msgstr ""
 
-#: gst/gsttaglist.c:245
+#: gst/gsttaglist.c:240
 msgid "container format the data is stored in"
 msgstr ""
 
-#: gst/gsttaglist.c:247
+#: gst/gsttaglist.c:242
 msgid "bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:247
+#: gst/gsttaglist.c:242
 msgid "exact or average bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:249
+#: gst/gsttaglist.c:244
 msgid "nominal bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:249
+#: gst/gsttaglist.c:244
 msgid "nominal bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:251
+#: gst/gsttaglist.c:246
 msgid "minimum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:251
+#: gst/gsttaglist.c:246
 msgid "minimum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:253
+#: gst/gsttaglist.c:248
 msgid "maximum bitrate"
 msgstr ""
 
-#: gst/gsttaglist.c:253
+#: gst/gsttaglist.c:248
 msgid "maximum bitrate in bits/s"
 msgstr ""
 
-#: gst/gsttaglist.c:256
+#: gst/gsttaglist.c:251
 msgid "encoder"
 msgstr ""
 
-#: gst/gsttaglist.c:256
+#: gst/gsttaglist.c:251
 msgid "encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:259
+#: gst/gsttaglist.c:254
 msgid "encoder version"
 msgstr ""
 
-#: gst/gsttaglist.c:260
+#: gst/gsttaglist.c:255
 msgid "version of the encoder used to encode this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:262
+#: gst/gsttaglist.c:257
 msgid "serial"
 msgstr ""
 
-#: gst/gsttaglist.c:262
+#: gst/gsttaglist.c:257
 msgid "serial number of track"
 msgstr ""
 
-#: gst/gsttaglist.c:264
+#: gst/gsttaglist.c:259
 msgid "replaygain track gain"
 msgstr ""
 
-#: gst/gsttaglist.c:264
+#: gst/gsttaglist.c:259
 msgid "track gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:266
+#: gst/gsttaglist.c:261
 msgid "replaygain track peak"
 msgstr ""
 
-#: gst/gsttaglist.c:266
+#: gst/gsttaglist.c:261
 msgid "peak of the track"
 msgstr ""
 
-#: gst/gsttaglist.c:268
+#: gst/gsttaglist.c:263
 msgid "replaygain album gain"
 msgstr ""
 
-#: gst/gsttaglist.c:268
+#: gst/gsttaglist.c:263
 msgid "album gain in db"
 msgstr ""
 
-#: gst/gsttaglist.c:270
+#: gst/gsttaglist.c:265
 msgid "replaygain album peak"
 msgstr ""
 
-#: gst/gsttaglist.c:270
+#: gst/gsttaglist.c:265
 msgid "peak of the album"
 msgstr ""
 
-#: gst/gsttaglist.c:272
+#: gst/gsttaglist.c:267
 msgid "replaygain reference level"
 msgstr ""
 
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:268
 msgid "reference level of track and album gain values"
 msgstr ""
 
-#: gst/gsttaglist.c:275
+#: gst/gsttaglist.c:270
 msgid "language code"
 msgstr ""
 
-#: gst/gsttaglist.c:276
+#: gst/gsttaglist.c:271
 msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
 msgstr ""
 
-#: gst/gsttaglist.c:279
+#: gst/gsttaglist.c:274
 msgid "language name"
 msgstr ""
 
-#: gst/gsttaglist.c:280
+#: gst/gsttaglist.c:275
 msgid "freeform name of the language this stream is in"
 msgstr ""
 
-#: gst/gsttaglist.c:282
+#: gst/gsttaglist.c:277
 msgid "image"
 msgstr ""
 
-#: gst/gsttaglist.c:282
+#: gst/gsttaglist.c:277
 msgid "image related to this stream"
 msgstr ""
 
 #. TRANSLATORS: 'preview image' = image that shows a preview of the full image
-#: gst/gsttaglist.c:286
+#: gst/gsttaglist.c:281
 msgid "preview image"
 msgstr ""
 
-#: gst/gsttaglist.c:286
+#: gst/gsttaglist.c:281
 msgid "preview image related to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:288
+#: gst/gsttaglist.c:283
 msgid "attachment"
 msgstr ""
 
-#: gst/gsttaglist.c:288
+#: gst/gsttaglist.c:283
 msgid "file attached to this stream"
 msgstr ""
 
-#: gst/gsttaglist.c:291
+#: gst/gsttaglist.c:286
 msgid "beats per minute"
 msgstr ""
 
-#: gst/gsttaglist.c:292
+#: gst/gsttaglist.c:287
 msgid "number of beats per minute in audio"
 msgstr ""
 
-#: gst/gsttaglist.c:294
+#: gst/gsttaglist.c:289
 msgid "keywords"
 msgstr ""
 
-#: gst/gsttaglist.c:294
+#: gst/gsttaglist.c:289
 msgid "comma separated keywords describing the content"
 msgstr ""
 
-#: gst/gsttaglist.c:297
+#: gst/gsttaglist.c:292
 msgid "geo location name"
 msgstr ""
 
-#: gst/gsttaglist.c:298
+#: gst/gsttaglist.c:293
 msgid ""
 "human readable descriptive location of where the media has been recorded or "
 "produced"
 msgstr ""
 
-#: gst/gsttaglist.c:301
+#: gst/gsttaglist.c:296
 msgid "geo location latitude"
 msgstr ""
 
-#: gst/gsttaglist.c:302
+#: gst/gsttaglist.c:297
 msgid ""
 "geo latitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the equator, negative values for "
 "southern latitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:306
+#: gst/gsttaglist.c:301
 msgid "geo location longitude"
 msgstr ""
 
-#: gst/gsttaglist.c:307
+#: gst/gsttaglist.c:302
 msgid ""
 "geo longitude location of where the media has been recorded or produced in "
 "degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,  "
 "negative values for western longitudes)"
 msgstr ""
 
-#: gst/gsttaglist.c:311
+#: gst/gsttaglist.c:306
 msgid "geo location elevation"
 msgstr ""
 
-#: gst/gsttaglist.c:312
+#: gst/gsttaglist.c:307
 msgid ""
 "geo elevation of where the media has been recorded or produced in meters "
 "according to WGS84 (zero is average sea level)"
 msgstr ""
 
-#: gst/gsttaglist.c:315
+#: gst/gsttaglist.c:310
 msgid "geo location country"
 msgstr ""
 
-#: gst/gsttaglist.c:316
+#: gst/gsttaglist.c:311
 msgid "country (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:319
+#: gst/gsttaglist.c:314
 msgid "geo location city"
 msgstr ""
 
-#: gst/gsttaglist.c:320
+#: gst/gsttaglist.c:315
 msgid "city (english name) where the media has been recorded or produced"
 msgstr ""
 
-#: gst/gsttaglist.c:323
+#: gst/gsttaglist.c:318
 msgid "geo location sublocation"
 msgstr ""
 
-#: gst/gsttaglist.c:324
+#: gst/gsttaglist.c:319
 msgid ""
 "a location whithin a city where the media has been produced or created (e.g. "
 "the neighborhood)"
 msgstr ""
 
-#: gst/gsttaglist.c:327
+#: gst/gsttaglist.c:322
 msgid "geo location horizontal error"
 msgstr ""
 
-#: gst/gsttaglist.c:328
+#: gst/gsttaglist.c:323
 msgid "expected error of the horizontal positioning measures (in meters)"
 msgstr ""
 
-#: gst/gsttaglist.c:331
+#: gst/gsttaglist.c:326
 msgid "geo location movement speed"
 msgstr ""
 
-#: gst/gsttaglist.c:332
+#: gst/gsttaglist.c:327
 msgid ""
 "movement speed of the capturing device while performing the capture in m/s"
 msgstr ""
 
-#: gst/gsttaglist.c:335
+#: gst/gsttaglist.c:330
 msgid "geo location movement direction"
 msgstr ""
 
-#: gst/gsttaglist.c:336
+#: gst/gsttaglist.c:331
 msgid ""
 "indicates the movement direction of the device performing the capture of a "
 "media. It is represented as degrees in floating point representation, 0 "
 "means the geographic north, and increases clockwise"
 msgstr ""
 
-#: gst/gsttaglist.c:341
+#: gst/gsttaglist.c:336
 msgid "geo location capture direction"
 msgstr ""
 
-#: gst/gsttaglist.c:342
+#: gst/gsttaglist.c:337
 msgid ""
 "indicates the direction the device is pointing to when capturing  a media. "
 "It is represented as degrees in floating point  representation, 0 means the "
@@ -854,126 +854,126 @@
 msgstr ""
 
 #. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
-#: gst/gsttaglist.c:348
+#: gst/gsttaglist.c:343
 msgid "show name"
 msgstr ""
 
-#: gst/gsttaglist.c:349
+#: gst/gsttaglist.c:344
 msgid "Name of the tv/podcast/series show the media is from"
 msgstr ""
 
 #. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-#: gst/gsttaglist.c:354
+#: gst/gsttaglist.c:349
 msgid "show sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:355
+#: gst/gsttaglist.c:350
 msgid ""
 "Name of the tv/podcast/series show the media is from, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:358
+#: gst/gsttaglist.c:353
 msgid "episode number"
 msgstr ""
 
-#: gst/gsttaglist.c:359
+#: gst/gsttaglist.c:354
 msgid "The episode number in the season the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:362
+#: gst/gsttaglist.c:357
 msgid "season number"
 msgstr ""
 
-#: gst/gsttaglist.c:363
+#: gst/gsttaglist.c:358
 msgid "The season number of the show the media is part of"
 msgstr ""
 
-#: gst/gsttaglist.c:366
+#: gst/gsttaglist.c:361
 msgid "lyrics"
 msgstr ""
 
-#: gst/gsttaglist.c:366
+#: gst/gsttaglist.c:361
 msgid "The lyrics of the media, commonly used for songs"
 msgstr ""
 
-#: gst/gsttaglist.c:369
+#: gst/gsttaglist.c:364
 msgid "composer sortname"
 msgstr ""
 
-#: gst/gsttaglist.c:370
+#: gst/gsttaglist.c:365
 msgid "person(s) who composed the recording, for sorting purposes"
 msgstr ""
 
-#: gst/gsttaglist.c:372
+#: gst/gsttaglist.c:367
 msgid "grouping"
 msgstr ""
 
-#: gst/gsttaglist.c:373
+#: gst/gsttaglist.c:368
 msgid ""
 "Groups related media that spans multiple tracks, like the different pieces "
 "of a concerto. It is a higher level than a track, but lower than an album"
 msgstr ""
 
-#: gst/gsttaglist.c:377
+#: gst/gsttaglist.c:372
 msgid "user rating"
 msgstr ""
 
-#: gst/gsttaglist.c:378
+#: gst/gsttaglist.c:373
 msgid ""
 "Rating attributed by a user. The higher the rank, the more the user likes "
 "this media"
 msgstr ""
 
-#: gst/gsttaglist.c:381
+#: gst/gsttaglist.c:376
 msgid "device manufacturer"
 msgstr ""
 
-#: gst/gsttaglist.c:382
+#: gst/gsttaglist.c:377
 msgid "Manufacturer of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:384
+#: gst/gsttaglist.c:379
 msgid "device model"
 msgstr ""
 
-#: gst/gsttaglist.c:385
+#: gst/gsttaglist.c:380
 msgid "Model of the device used to create this media"
 msgstr ""
 
-#: gst/gsttaglist.c:387
+#: gst/gsttaglist.c:382
 msgid "application name"
 msgstr ""
 
-#: gst/gsttaglist.c:388
+#: gst/gsttaglist.c:383
 msgid "Application used to create the media"
 msgstr ""
 
-#: gst/gsttaglist.c:390
+#: gst/gsttaglist.c:385
 msgid "application data"
 msgstr ""
 
-#: gst/gsttaglist.c:391
+#: gst/gsttaglist.c:386
 msgid "Arbitrary application data to be serialized into the media"
 msgstr ""
 
-#: gst/gsttaglist.c:393
+#: gst/gsttaglist.c:388
 msgid "image orientation"
 msgstr ""
 
-#: gst/gsttaglist.c:394
+#: gst/gsttaglist.c:389
 msgid "How the image should be rotated or flipped before display"
 msgstr ""
 
-#: gst/gsttaglist.c:433
+#: gst/gsttaglist.c:428
 msgid ", "
 msgstr ""
 
-#: gst/gstutils.c:2445 tools/gst-launch.c:365
+#: gst/gstutils.c:2338 tools/gst-launch.c:366
 #, c-format
 msgid "ERROR: from element %s: %s\n"
 msgstr ""
 
-#: gst/gstutils.c:2447 tools/gst-launch.c:367 tools/gst-launch.c:717
+#: gst/gstutils.c:2340 tools/gst-launch.c:368 tools/gst-launch.c:730
 #, c-format
 msgid ""
 "Additional debug info:\n"
@@ -990,83 +990,83 @@
 msgid "no bin \"%s\", skipping"
 msgstr ""
 
-#: gst/parse/grammar.y:447
+#: gst/parse/grammar.y:448
 #, c-format
 msgid "no property \"%s\" in element \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:462
+#: gst/parse/grammar.y:463
 #, c-format
 msgid "could not set property \"%s\" in element \"%s\" to \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:613
+#: gst/parse/grammar.y:614
 #, c-format
 msgid "could not link %s to %s"
 msgstr ""
 
-#: gst/parse/grammar.y:661
+#: gst/parse/grammar.y:662
 #, c-format
 msgid "no element \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:713
+#: gst/parse/grammar.y:714
 #, c-format
 msgid "could not parse caps \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:735 gst/parse/grammar.y:783 gst/parse/grammar.y:799
-#: gst/parse/grammar.y:862
+#: gst/parse/grammar.y:736 gst/parse/grammar.y:784 gst/parse/grammar.y:800
+#: gst/parse/grammar.y:865
 msgid "link without source element"
 msgstr ""
 
-#: gst/parse/grammar.y:741 gst/parse/grammar.y:780 gst/parse/grammar.y:871
+#: gst/parse/grammar.y:742 gst/parse/grammar.y:781 gst/parse/grammar.y:874
 msgid "link without sink element"
 msgstr ""
 
-#: gst/parse/grammar.y:817
+#: gst/parse/grammar.y:819
 #, c-format
 msgid "no source element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:827
+#: gst/parse/grammar.y:829
 #, c-format
 msgid "no element to link URI \"%s\" to"
 msgstr ""
 
-#: gst/parse/grammar.y:835
+#: gst/parse/grammar.y:838
 #, c-format
 msgid "no sink element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:842
+#: gst/parse/grammar.y:845
 #, c-format
 msgid "could not link sink element for URI \"%s\""
 msgstr ""
 
-#: gst/parse/grammar.y:856
+#: gst/parse/grammar.y:859
 msgid "empty pipeline not allowed"
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2365
+#: libs/gst/base/gstbasesrc.c:2421
 msgid "Internal clock error."
 msgstr ""
 
-#: libs/gst/base/gstbasesrc.c:2707 libs/gst/base/gstbasesrc.c:2716
-#: libs/gst/base/gstbasesink.c:3748 plugins/elements/gstqueue.c:1175
-#: plugins/elements/gstqueue2.c:2550
+#: libs/gst/base/gstbasesrc.c:2766 libs/gst/base/gstbasesrc.c:2775
+#: libs/gst/base/gstbasesink.c:3740 plugins/elements/gstqueue.c:1188
+#: plugins/elements/gstqueue2.c:2545
 msgid "Internal data flow error."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:2708
+#: libs/gst/base/gstbasesink.c:2666
 msgid "A lot of buffers are being dropped."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:3115
+#: libs/gst/base/gstbasesink.c:3104
 msgid "Internal data flow problem."
 msgstr ""
 
-#: libs/gst/base/gstbasesink.c:3738
+#: libs/gst/base/gstbasesink.c:3730
 msgid "Internal data stream error."
 msgstr ""
 
@@ -1080,96 +1080,92 @@
 "property takes a reference to the supplied GstCaps object."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:414
+#: plugins/elements/gstfilesink.c:412
 msgid "No file name specified for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:420
+#: plugins/elements/gstfilesink.c:418
 #, c-format
 msgid "Could not open file \"%s\" for writing."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:445
+#: plugins/elements/gstfilesink.c:443
 #, c-format
 msgid "Error closing file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:602
+#: plugins/elements/gstfilesink.c:600
 #, c-format
 msgid "Error while seeking in file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesink.c:610 plugins/elements/gstfilesink.c:673
+#: plugins/elements/gstfilesink.c:608 plugins/elements/gstfilesink.c:671
 #, c-format
 msgid "Error while writing to file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:524
+#: plugins/elements/gstfilesrc.c:500
 msgid "No file name specified for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:536 plugins/elements/gstqueue2.c:1443
+#: plugins/elements/gstfilesrc.c:512 plugins/elements/gstqueue2.c:1425
 #, c-format
 msgid "Could not open file \"%s\" for reading."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:545
+#: plugins/elements/gstfilesrc.c:521
 #, c-format
 msgid "Could not get info on \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:551
+#: plugins/elements/gstfilesrc.c:527
 #, c-format
 msgid "\"%s\" is a directory."
 msgstr ""
 
-#: plugins/elements/gstfilesrc.c:557
+#: plugins/elements/gstfilesrc.c:533
 #, c-format
 msgid "File \"%s\" is a socket."
 msgstr ""
 
-#: plugins/elements/gstidentity.c:654
+#: plugins/elements/gstidentity.c:596
 msgid "Failed after iterations as requested."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1429
+#: plugins/elements/gstqueue2.c:1411
 msgid "No Temp directory specified."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1435
+#: plugins/elements/gstqueue2.c:1417
 #, c-format
 msgid "Could not create temp file \"%s\"."
 msgstr ""
 
-#: plugins/elements/gstqueue2.c:1817
+#: plugins/elements/gstqueue2.c:1799
 msgid "Error while writing to download file."
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:205
+#: plugins/elements/gsttypefindelement.c:204
 msgid "caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:206
+#: plugins/elements/gsttypefindelement.c:205
 msgid "detected capabilities in stream"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:209
+#: plugins/elements/gsttypefindelement.c:208
 msgid "minimum"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:214
-msgid "maximum"
-msgstr ""
-
-#: plugins/elements/gsttypefindelement.c:219
+#: plugins/elements/gsttypefindelement.c:213
 msgid "force caps"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:220
+#: plugins/elements/gsttypefindelement.c:214
 msgid "force caps without doing a typefind"
 msgstr ""
 
-#: plugins/elements/gsttypefindelement.c:1030
+#: plugins/elements/gsttypefindelement.c:1017
 msgid "Stream contains no data."
 msgstr ""
 
@@ -1271,240 +1267,240 @@
 msgid "No such element or plugin '%s'\n"
 msgstr ""
 
-#: tools/gst-launch.c:292
+#: tools/gst-launch.c:293
 msgid "Index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:599
-#, c-format
-msgid "Got message #%u from element \"%s\" (%s): "
-msgstr ""
-
-#: tools/gst-launch.c:603
-#, c-format
-msgid "Got message #%u from pad \"%s:%s\" (%s): "
-msgstr ""
-
-#: tools/gst-launch.c:607
-#, c-format
-msgid "Got message #%u from object \"%s\" (%s): "
-msgstr ""
-
 #: tools/gst-launch.c:611
 #, c-format
+msgid "Got message #%u from element \"%s\" (%s): "
+msgstr ""
+
+#: tools/gst-launch.c:615
+#, c-format
+msgid "Got message #%u from pad \"%s:%s\" (%s): "
+msgstr ""
+
+#: tools/gst-launch.c:619
+#, c-format
+msgid "Got message #%u from object \"%s\" (%s): "
+msgstr ""
+
+#: tools/gst-launch.c:623
+#, c-format
 msgid "Got message #%u (%s): "
 msgstr ""
 
-#: tools/gst-launch.c:643
-#, c-format
-msgid "Got EOS from element \"%s\".\n"
-msgstr ""
-
-#: tools/gst-launch.c:652
-#, c-format
-msgid "FOUND TAG      : found by element \"%s\".\n"
-msgstr ""
-
 #: tools/gst-launch.c:655
 #, c-format
+msgid "Got EOS from element \"%s\".\n"
+msgstr ""
+
+#: tools/gst-launch.c:664
+#, c-format
+msgid "FOUND TAG      : found by element \"%s\".\n"
+msgstr ""
+
+#: tools/gst-launch.c:667
+#, c-format
 msgid "FOUND TAG      : found by pad \"%s:%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:658
+#: tools/gst-launch.c:670
 #, c-format
 msgid "FOUND TAG      : found by object \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:661
+#: tools/gst-launch.c:673
 msgid "FOUND TAG\n"
 msgstr ""
 
-#: tools/gst-launch.c:675
+#: tools/gst-launch.c:688
 #, c-format
 msgid "FOUND TOC      : found by element \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:678
+#: tools/gst-launch.c:691
 #, c-format
 msgid "FOUND TOC      : found by object \"%s\".\n"
 msgstr ""
 
-#: tools/gst-launch.c:681
+#: tools/gst-launch.c:694
 msgid "FOUND TOC\n"
 msgstr ""
 
-#: tools/gst-launch.c:698
+#: tools/gst-launch.c:711
 #, c-format
 msgid ""
 "INFO:\n"
 "%s\n"
 msgstr ""
 
-#: tools/gst-launch.c:715
+#: tools/gst-launch.c:728
 #, c-format
 msgid "WARNING: from element %s: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:745
+#: tools/gst-launch.c:758
 msgid "Prerolled, waiting for buffering to finish...\n"
 msgstr ""
 
-#: tools/gst-launch.c:762
+#: tools/gst-launch.c:775
 msgid "buffering..."
 msgstr ""
 
-#: tools/gst-launch.c:773
+#: tools/gst-launch.c:786
 msgid "Done buffering, setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:781
+#: tools/gst-launch.c:794
 msgid "Buffering, setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:790
+#: tools/gst-launch.c:803
 msgid "Redistribute latency...\n"
 msgstr ""
 
-#: tools/gst-launch.c:801
+#: tools/gst-launch.c:814
 #, c-format
 msgid "Setting state to %s as requested by %s...\n"
 msgstr ""
 
-#: tools/gst-launch.c:817
+#: tools/gst-launch.c:830
 msgid "Interrupt: Stopping pipeline ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:828
+#: tools/gst-launch.c:841
 #, c-format
 msgid "Missing element: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:910
+#: tools/gst-launch.c:923
 msgid "Output tags (also known as metadata)"
 msgstr ""
 
-#: tools/gst-launch.c:912
+#: tools/gst-launch.c:925
 msgid "Output TOC (chapters and editions)"
 msgstr ""
 
-#: tools/gst-launch.c:914
+#: tools/gst-launch.c:927
 msgid "Output status information and property notifications"
 msgstr ""
 
-#: tools/gst-launch.c:916
+#: tools/gst-launch.c:929
 msgid "Do not print any progress information"
 msgstr ""
 
-#: tools/gst-launch.c:918
+#: tools/gst-launch.c:931
 msgid "Output messages"
 msgstr ""
 
-#: tools/gst-launch.c:920
+#: tools/gst-launch.c:933
 msgid "Do not output status information of TYPE"
 msgstr ""
 
-#: tools/gst-launch.c:920
+#: tools/gst-launch.c:933
 msgid "TYPE1,TYPE2,..."
 msgstr ""
 
-#: tools/gst-launch.c:922
+#: tools/gst-launch.c:935
 msgid "Do not install a fault handler"
 msgstr ""
 
-#: tools/gst-launch.c:924
+#: tools/gst-launch.c:937
 msgid "Force EOS on sources before shutting the pipeline down"
 msgstr ""
 
-#: tools/gst-launch.c:927
+#: tools/gst-launch.c:940
 msgid "Gather and print index statistics"
 msgstr ""
 
-#: tools/gst-launch.c:989
+#: tools/gst-launch.c:1002
 #, c-format
 msgid "ERROR: pipeline could not be constructed: %s.\n"
 msgstr ""
 
-#: tools/gst-launch.c:993
+#: tools/gst-launch.c:1006
 msgid "ERROR: pipeline could not be constructed.\n"
 msgstr ""
 
-#: tools/gst-launch.c:997
+#: tools/gst-launch.c:1010
 #, c-format
 msgid "WARNING: erroneous pipeline: %s\n"
 msgstr ""
 
-#: tools/gst-launch.c:1020
+#: tools/gst-launch.c:1033
 msgid "ERROR: the 'pipeline' element wasn't found.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1047 tools/gst-launch.c:1142
+#: tools/gst-launch.c:1060 tools/gst-launch.c:1155
 msgid "Setting pipeline to PAUSED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1052
+#: tools/gst-launch.c:1065
 msgid "ERROR: Pipeline doesn't want to pause.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1057
+#: tools/gst-launch.c:1070
 msgid "Pipeline is live and does not need PREROLL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1061
+#: tools/gst-launch.c:1074
 msgid "Pipeline is PREROLLING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1064 tools/gst-launch.c:1077
+#: tools/gst-launch.c:1077 tools/gst-launch.c:1090
 msgid "ERROR: pipeline doesn't want to preroll.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1070
+#: tools/gst-launch.c:1083
 msgid "Pipeline is PREROLLED ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1082
+#: tools/gst-launch.c:1095
 msgid "Setting pipeline to PLAYING ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1089
+#: tools/gst-launch.c:1102
 msgid "ERROR: pipeline doesn't want to play.\n"
 msgstr ""
 
-#: tools/gst-launch.c:1107
+#: tools/gst-launch.c:1120
 msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
 msgstr ""
 
-#: tools/gst-launch.c:1111
+#: tools/gst-launch.c:1124
 msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
 msgstr ""
 
-#: tools/gst-launch.c:1114
+#: tools/gst-launch.c:1127
 msgid "Waiting for EOS...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1121
+#: tools/gst-launch.c:1134
 msgid "EOS received - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1125
+#: tools/gst-launch.c:1138
 msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1129
+#: tools/gst-launch.c:1142
 msgid "An error happened while waiting for EOS\n"
 msgstr ""
 
-#: tools/gst-launch.c:1139
+#: tools/gst-launch.c:1152
 msgid "Execution ended after %"
 msgstr ""
 
-#: tools/gst-launch.c:1150
+#: tools/gst-launch.c:1163
 msgid "Setting pipeline to READY ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1162
+#: tools/gst-launch.c:1175
 msgid "Setting pipeline to NULL ...\n"
 msgstr ""
 
-#: tools/gst-launch.c:1167
+#: tools/gst-launch.c:1179
 msgid "Freeing pipeline ...\n"
 msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
index ff3763d..53dcbc0 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index a313e6f..1ec2616 100644
--- a/po/hu.po
+++ b/po/hu.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2010-11-01 13:39+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -937,9 +937,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr "nagybetűk kényszerítése"
 
diff --git a/po/id.gmo b/po/id.gmo
index 3646226..beb82f9 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 41fe05b..d308a1c 100644
--- a/po/id.po
+++ b/po/id.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2012-01-28 11:44+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -940,9 +940,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maksimum"
-
 msgid "force caps"
 msgstr "paksa huruf"
 
diff --git a/po/it.gmo b/po/it.gmo
index df678d7..cb30523 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 43251d5..a64a2ee 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -1097,9 +1097,6 @@
 msgid "minimum"
 msgstr "minimo"
 
-msgid "maximum"
-msgstr "massimo"
-
 msgid "force caps"
 msgstr "forza i caps"
 
diff --git a/po/ja.gmo b/po/ja.gmo
index 7cbc23d..a3522fe 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 88425c2..01cba84 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.20.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2008-10-16 19:57+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -920,9 +920,6 @@
 msgid "minimum"
 msgstr "最小値"
 
-msgid "maximum"
-msgstr "最大値"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/lt.gmo b/po/lt.gmo
index 6d3b5b9..a2373b0 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index e3fe79c..9e1ac97 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -942,9 +942,6 @@
 msgid "minimum"
 msgstr "mažiausios"
 
-msgid "maximum"
-msgstr "didžiausios"
-
 msgid "force caps"
 msgstr "reikalauti galimybių"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index f0b9e74..195bd26 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index eb3fcc9..de52b5a 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -910,9 +910,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maksimum"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 344dc97..69bcae5 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 11627b7..682ce20 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-04-26 23:10+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -950,9 +950,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr "forceer mogelijkheden"
 
diff --git a/po/pl.gmo b/po/pl.gmo
index bafe73a..6d1de75 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 29de711..84c4636 100644
--- a/po/pl.po
+++ b/po/pl.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-04-26 17:54+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -942,9 +942,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maksimum"
-
 msgid "force caps"
 msgstr "wymuszenie możliwości"
 
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index c8404d8..56f1934 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 2aab407..c5b231c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-01-08 01:36-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -958,9 +958,6 @@
 msgid "minimum"
 msgstr "mínimo"
 
-msgid "maximum"
-msgstr "máximo"
-
 msgid "force caps"
 msgstr "forçar Caps"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index 82dff00..9b781a0 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index d89e598..b26c76f 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -960,9 +960,6 @@
 msgid "minimum"
 msgstr "minim"
 
-msgid "maximum"
-msgstr "maxim"
-
 msgid "force caps"
 msgstr "forțează caps"
 
diff --git a/po/ru.gmo b/po/ru.gmo
index 9a2467a..cd4a549 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index d00d4de..f800c18 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-04-26 20:25+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -942,9 +942,6 @@
 msgid "minimum"
 msgstr "минимум"
 
-msgid "maximum"
-msgstr "максимум"
-
 msgid "force caps"
 msgstr "форсировать возможности"
 
diff --git a/po/rw.gmo b/po/rw.gmo
index d885b61..22ed6e8 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index 25bd509..4ee68d5 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -1119,11 +1119,6 @@
 msgid "minimum"
 msgstr "Gito"
 
-# officecfg/registry\schema\org\openoffice\Office\Calc.xcs:....Layout.Other.StatusbarFunction..4.text
-#, fuzzy
-msgid "maximum"
-msgstr "Kinini"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/sk.gmo b/po/sk.gmo
index 50b9c95..69c7958 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index f7382b0..da2e610 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2010-11-08 16:13+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -954,9 +954,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr "vynútiť veľké písmená"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 20b25c6..16663c3 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index aeb5819..c249d0c 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2012-03-01 14:05+0100\n"
 "Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -940,9 +940,6 @@
 msgid "minimum"
 msgstr "najmanj"
 
-msgid "maximum"
-msgstr "največ"
-
 msgid "force caps"
 msgstr "vsili velike črke"
 
diff --git a/po/sq.gmo b/po/sq.gmo
index f0c7c86..d90dd39 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 727a55c..2b89949 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -957,9 +957,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maksimum"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/sr.gmo b/po/sr.gmo
index b6d1d6d..7735add 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 69356e4..097f42b 100644
--- a/po/sr.po
+++ b/po/sr.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-12-05 10:40+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
@@ -944,9 +944,6 @@
 msgid "minimum"
 msgstr "најмање"
 
-msgid "maximum"
-msgstr "највише"
-
 msgid "force caps"
 msgstr "приморај могућности"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index d740a96..2b44455 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 2ce557d..1411013 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-01-09 19:46+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -951,9 +951,6 @@
 msgid "minimum"
 msgstr "minimum"
 
-msgid "maximum"
-msgstr "maximum"
-
 msgid "force caps"
 msgstr "tvinga förmågor"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 37eedd4..ce35fe3 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 4410c95..e5708e2 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -957,9 +957,6 @@
 msgid "minimum"
 msgstr "asgari"
 
-msgid "maximum"
-msgstr "azami"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/po/uk.gmo b/po/uk.gmo
index ccb390c..645e5fc 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index dedf3a1..84e0c4f 100644
--- a/po/uk.po
+++ b/po/uk.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2011-04-30 20:26+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -939,9 +939,6 @@
 msgid "minimum"
 msgstr "мінімум"
 
-msgid "maximum"
-msgstr "максимум"
-
 msgid "force caps"
 msgstr "примусово визначені можливості"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index d6f7684..d694261 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 31951b1..69d6dc2 100644
--- a/po/vi.po
+++ b/po/vi.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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2010-10-03 19:09+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -949,9 +949,6 @@
 msgid "minimum"
 msgstr "tối thiểu"
 
-msgid "maximum"
-msgstr "tối đa"
-
 msgid "force caps"
 msgstr "buộc khả năng"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 00cd886..451f54c 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 687551a..ae04b2f 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: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\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"
@@ -922,9 +922,6 @@
 msgid "minimum"
 msgstr "最小"
 
-msgid "maximum"
-msgstr "最大"
-
 msgid "force caps"
 msgstr "强制分析"
 
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index f25a1bf..04f40c9 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 cec0e49..0885477 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-06-07 15:42+0200\n"
+"POT-Creation-Date: 2012-08-08 09:05+0100\n"
 "PO-Revision-Date: 2005-04-27 14:55+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -940,9 +940,6 @@
 msgid "minimum"
 msgstr "最低"
 
-msgid "maximum"
-msgstr "最高"
-
 msgid "force caps"
 msgstr ""
 
diff --git a/scripts/gst-uninstalled b/scripts/gst-uninstalled
index ac99e03..31702d2 100755
--- a/scripts/gst-uninstalled
+++ b/scripts/gst-uninstalled
@@ -81,6 +81,14 @@
   GI_TYPELIB_PATH=$GST/gst-plugins-base/gst-libs/gst/$path:$GI_TYPELIB_PATH
 done
 
+# GStreamer plugins bad libraries
+for path in basecamerabinsrc codecparsers interfaces
+do
+  LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
+  DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
+  GI_TYPELIB_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path:$GI_TYPELIB_PATH
+done
+
 # GStreamer core libraries
 for path in base net check controller
 do
@@ -124,10 +132,12 @@
 :$GST/gst-plugins-bad/ext\
 :$GST/gst-plugins-bad/gst\
 :$GST/gst-plugins-bad/sys\
-:$GST/gst-ffmpeg/ext\
-:$GST/gnonlin/gnl\
-:$GST/gst-openmax\
-:$GST/gst-plugins-gl/gst\
+:$GST/gst-ffmpeg/ext/\
+:$GST/gnonlin/gnl/.libs\
+:$GST/gst-openmax/omx/.libs\
+:$GST/gst-omx/omx/.libs\
+:$GST/gst-plugins-gl/gst/.libs\
+:$GST/clutter-gst/clutter-gst/.libs\
 :$GST/plugins\
 :$GST/farsight2/gst\
 :$GST/farsight2/transmitters\
@@ -151,6 +161,11 @@
 pythonver=`python -c "import sys; print sys.version[:3]"`
 export PYTHONPATH=$GST/gst-python:$GST_PREFIX/lib/python$pythonver/site-packages${PYTHONPATH:+:$PYTHONPATH}
 
+# clutter-gst
+export PKG_CONFIG_PATH=$GST/clutter-gst:$PKG_CONFIG_PATH
+export LD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$LD_LIBRARY_PATH
+export DYLD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$DYLD_LIBRARY_PATH
+
 # totem-pl-parser
 export PKG_CONFIG_PATH=$GST/totem-pl-parser:$PKG_CONFIG_PATH
 export LD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$LD_LIBRARY_PATH
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 23ff192..e5909fd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,5 +1,11 @@
 EXTRA_DIST = README
 
+if BUILD_BENCHMARKS
+SUBDIRS_BENCHMARKS = benchmarks
+else
+SUBDIRS_BENCHMARKS =
+endif
+
 if BUILD_TESTS
 ## SUBDIRS_TESTS = tests testsuite
 ## FIXME: write tests from scratch
@@ -21,7 +27,7 @@
 endif
 
 SUBDIRS = \
-	benchmarks	\
+	$(SUBDIRS_BENCHMARKS) \
 	$(SUBDIRS_CHECK) \
 	misc		\
 	$(SUBDIRS_TESTS) \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 48f1506..ed1bbb3 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -206,7 +206,9 @@
 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@
@@ -422,6 +424,8 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 EXTRA_DIST = README
+@BUILD_BENCHMARKS_FALSE@SUBDIRS_BENCHMARKS = 
+@BUILD_BENCHMARKS_TRUE@SUBDIRS_BENCHMARKS = benchmarks
 @BUILD_TESTS_FALSE@SUBDIRS_TESTS = 
 @BUILD_TESTS_TRUE@SUBDIRS_TESTS = 
 @BUILD_TESTS_FALSE@SUBDIRS_CHECK = 
@@ -430,7 +434,7 @@
 @BUILD_EXAMPLES_FALSE@SUBDIRS_EXAMPLES = 
 @BUILD_EXAMPLES_TRUE@SUBDIRS_EXAMPLES = examples
 SUBDIRS = \
-	benchmarks	\
+	$(SUBDIRS_BENCHMARKS) \
 	$(SUBDIRS_CHECK) \
 	misc		\
 	$(SUBDIRS_TESTS) \
diff --git a/tests/benchmarks/Makefile.in b/tests/benchmarks/Makefile.in
index c4c72ad..b7f3ff1 100644
--- a/tests/benchmarks/Makefile.in
+++ b/tests/benchmarks/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -243,7 +243,9 @@
 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@
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index cbee2fa..3124aa1 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -94,6 +94,7 @@
 	libs/basesrc				\
 	libs/basesink				\
 	libs/controller				\
+	libs/queuearray				\
 	libs/typefindhelper			\
 	pipelines/seek				\
 	pipelines/stress			\
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 83d9d13..5b21999 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -156,6 +156,7 @@
 @GST_DISABLE_REGISTRY_FALSE@	libs/basesrc$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	libs/basesink$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	libs/controller$(EXEEXT) \
+@GST_DISABLE_REGISTRY_FALSE@	libs/queuearray$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	libs/typefindhelper$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/seek$(EXEEXT) \
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/stress$(EXEEXT) \
@@ -585,6 +586,12 @@
 libs_gstnettimeprovider_DEPENDENCIES =  \
 	$(top_builddir)/libs/gst/net/libgstnet-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+libs_queuearray_SOURCES = libs/queuearray.c
+libs_queuearray_OBJECTS = queuearray.$(OBJEXT)
+libs_queuearray_LDADD = $(LDADD)
+libs_queuearray_DEPENDENCIES = $(top_builddir)/libs/gst/check/libgstcheck-@GST_API_VERSION@.la \
+	$(top_builddir)/libs/gst/base/libgstbase-@GST_API_VERSION@.la \
+	$(am__DEPENDENCIES_1)
 libs_transform1_SOURCES = libs/transform1.c
 libs_transform1_OBJECTS = transform1.$(OBJEXT)
 libs_transform1_LDADD = $(LDADD)
@@ -704,10 +711,11 @@
 	libs/bytereader.c libs/bytewriter.c libs/collectpads.c \
 	libs/controller.c $(libs_gstlibscpp_SOURCES) \
 	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
-	libs/transform1.c libs/typefindhelper.c pipelines/cleanup.c \
-	pipelines/parse-disabled.c pipelines/parse-launch.c \
-	pipelines/queue-error.c pipelines/seek.c \
-	pipelines/simple-launch-lines.c pipelines/stress.c
+	libs/queuearray.c libs/transform1.c libs/typefindhelper.c \
+	pipelines/cleanup.c pipelines/parse-disabled.c \
+	pipelines/parse-launch.c pipelines/queue-error.c \
+	pipelines/seek.c pipelines/simple-launch-lines.c \
+	pipelines/stress.c
 DIST_SOURCES = elements/capsfilter.c elements/fakesink.c \
 	elements/fakesrc.c elements/fdsrc.c elements/filesink.c \
 	elements/filesrc.c elements/funnel.c elements/identity.c \
@@ -731,10 +739,11 @@
 	libs/bytereader.c libs/bytewriter.c libs/collectpads.c \
 	libs/controller.c $(libs_gstlibscpp_SOURCES) \
 	libs/gstnetclientclock.c libs/gstnettimeprovider.c \
-	libs/transform1.c libs/typefindhelper.c pipelines/cleanup.c \
-	pipelines/parse-disabled.c pipelines/parse-launch.c \
-	pipelines/queue-error.c pipelines/seek.c \
-	pipelines/simple-launch-lines.c pipelines/stress.c
+	libs/queuearray.c libs/transform1.c libs/typefindhelper.c \
+	pipelines/cleanup.c pipelines/parse-disabled.c \
+	pipelines/parse-launch.c pipelines/queue-error.c \
+	pipelines/seek.c pipelines/simple-launch-lines.c \
+	pipelines/stress.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -804,7 +813,9 @@
 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@
@@ -1080,6 +1091,7 @@
 @GST_DISABLE_REGISTRY_FALSE@	libs/basesrc				\
 @GST_DISABLE_REGISTRY_FALSE@	libs/basesink				\
 @GST_DISABLE_REGISTRY_FALSE@	libs/controller				\
+@GST_DISABLE_REGISTRY_FALSE@	libs/queuearray				\
 @GST_DISABLE_REGISTRY_FALSE@	libs/typefindhelper			\
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/seek				\
 @GST_DISABLE_REGISTRY_FALSE@	pipelines/stress			\
@@ -1447,6 +1459,9 @@
 libs/gstnettimeprovider$(EXEEXT): $(libs_gstnettimeprovider_OBJECTS) $(libs_gstnettimeprovider_DEPENDENCIES) $(EXTRA_libs_gstnettimeprovider_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/gstnettimeprovider$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_gstnettimeprovider_OBJECTS) $(libs_gstnettimeprovider_LDADD) $(LIBS)
+libs/queuearray$(EXEEXT): $(libs_queuearray_OBJECTS) $(libs_queuearray_DEPENDENCIES) $(EXTRA_libs_queuearray_DEPENDENCIES) libs/$(am__dirstamp)
+	@rm -f libs/queuearray$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(libs_queuearray_OBJECTS) $(libs_queuearray_LDADD) $(LIBS)
 libs/transform1$(EXEEXT): $(libs_transform1_OBJECTS) $(libs_transform1_DEPENDENCIES) $(EXTRA_libs_transform1_DEPENDENCIES) libs/$(am__dirstamp)
 	@rm -f libs/transform1$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(libs_transform1_OBJECTS) $(libs_transform1_LDADD) $(LIBS)
@@ -1552,6 +1567,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue-error.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queue2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queuearray.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seek.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selector.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-launch-lines.Po@am__quote@
@@ -2522,6 +2538,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gstnettimeprovider.obj `if test -f 'libs/gstnettimeprovider.c'; then $(CYGPATH_W) 'libs/gstnettimeprovider.c'; else $(CYGPATH_W) '$(srcdir)/libs/gstnettimeprovider.c'; fi`
 
+queuearray.o: libs/queuearray.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queuearray.o -MD -MP -MF $(DEPDIR)/queuearray.Tpo -c -o queuearray.o `test -f 'libs/queuearray.c' || echo '$(srcdir)/'`libs/queuearray.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queuearray.Tpo $(DEPDIR)/queuearray.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/queuearray.c' object='queuearray.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queuearray.o `test -f 'libs/queuearray.c' || echo '$(srcdir)/'`libs/queuearray.c
+
+queuearray.obj: libs/queuearray.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT queuearray.obj -MD -MP -MF $(DEPDIR)/queuearray.Tpo -c -o queuearray.obj `if test -f 'libs/queuearray.c'; then $(CYGPATH_W) 'libs/queuearray.c'; else $(CYGPATH_W) '$(srcdir)/libs/queuearray.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/queuearray.Tpo $(DEPDIR)/queuearray.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libs/queuearray.c' object='queuearray.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o queuearray.obj `if test -f 'libs/queuearray.c'; then $(CYGPATH_W) 'libs/queuearray.c'; else $(CYGPATH_W) '$(srcdir)/libs/queuearray.c'; fi`
+
 transform1.o: libs/transform1.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT transform1.o -MD -MP -MF $(DEPDIR)/transform1.Tpo -c -o transform1.o `test -f 'libs/transform1.c' || echo '$(srcdir)/'`libs/transform1.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/transform1.Tpo $(DEPDIR)/transform1.Po
diff --git a/tests/check/elements/fakesrc.c b/tests/check/elements/fakesrc.c
index 2988676..decc3af 100644
--- a/tests/check/elements/fakesrc.c
+++ b/tests/check/elements/fakesrc.c
@@ -234,6 +234,87 @@
 
 GST_END_TEST;
 
+static void
+handoff_cb (GstElement * element, GstBuffer * buf, GstPad * pad,
+    gint * p_counter)
+{
+  *p_counter += 1;
+  GST_LOG ("counter = %d", *p_counter);
+}
+
+GST_START_TEST (test_reuse_push)
+{
+  GstElement *src, *sep, *sink, *pipeline;
+  GstBus *bus;
+  gint counter, repeat = 3, num_buffers = 10;
+
+  pipeline = gst_pipeline_new ("pipeline");
+  fail_unless (pipeline != NULL, "Failed to create pipeline!");
+
+  bus = gst_element_get_bus (pipeline);
+
+  src = gst_element_factory_make ("fakesrc", "fakesrc");
+  fail_unless (src != NULL, "Failed to create 'fakesrc' element!");
+
+  sep = gst_element_factory_make ("queue", "queue");
+  fail_unless (sep != NULL, "Failed to create 'queue' element");
+
+  sink = gst_element_factory_make ("fakesink", "fakesink");
+  fail_unless (sink != NULL, "Failed to create 'fakesink' element!");
+
+  g_object_set (sink, "signal-handoffs", TRUE, NULL);
+  g_signal_connect (sink, "handoff", G_CALLBACK (handoff_cb), &counter);
+
+  gst_bin_add_many (GST_BIN (pipeline), src, sep, sink, NULL);
+
+  fail_unless (gst_element_link (src, sep));
+  fail_unless (gst_element_link (sep, sink));
+
+  g_object_set (src, "num-buffers", num_buffers, NULL);
+
+  do {
+    GstStateChangeReturn state_ret;
+    GstMessage *msg;
+
+    GST_INFO ("====================== round %d ======================", repeat);
+
+    counter = 0;
+
+    state_ret = gst_element_set_state (pipeline, GST_STATE_PAUSED);
+    fail_unless (state_ret != GST_STATE_CHANGE_FAILURE);
+
+    if (state_ret == GST_STATE_CHANGE_ASYNC) {
+      GST_LOG ("waiting for pipeline to reach PAUSED state");
+      state_ret = gst_element_get_state (pipeline, NULL, NULL, -1);
+      fail_unless_equals_int (state_ret, GST_STATE_CHANGE_SUCCESS);
+    }
+
+    GST_LOG ("PAUSED, let's read all of it");
+
+    state_ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
+    fail_unless (state_ret != GST_STATE_CHANGE_FAILURE);
+
+    msg = gst_bus_poll (bus, GST_MESSAGE_EOS, -1);
+    fail_unless (msg != NULL, "Expected EOS message on bus!");
+
+    gst_message_unref (msg);
+
+    if (num_buffers >= 0) {
+      fail_unless_equals_int (counter, num_buffers);
+    }
+
+    fail_unless_equals_int (gst_element_set_state (pipeline, GST_STATE_NULL),
+        GST_STATE_CHANGE_SUCCESS);
+
+    --repeat;
+  } while (repeat > 0);
+
+  gst_object_unref (bus);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
 static Suite *
 fakesrc_suite (void)
 {
@@ -246,6 +327,7 @@
   tcase_add_test (tc_chain, test_sizetype_fixed);
   tcase_add_test (tc_chain, test_sizetype_random);
   tcase_add_test (tc_chain, test_no_preroll);
+  tcase_add_test (tc_chain, test_reuse_push);
 
   return s;
 }
diff --git a/tests/check/elements/queue.c b/tests/check/elements/queue.c
index 59f4981..16ea8ec 100644
--- a/tests/check/elements/queue.c
+++ b/tests/check/elements/queue.c
@@ -246,7 +246,7 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
-  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
 
   fail_unless (underrun_count == 1);
   fail_unless (overrun_count == 0);
@@ -338,7 +338,7 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
-  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
 
   fail_unless (overrun_count == 0);
   fail_unless (underrun_count == 1);
@@ -424,7 +424,7 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
-  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
 
   fail_unless (overrun_count == 0);
   fail_unless (underrun_count == 1);
@@ -507,7 +507,7 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
-  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
 
   /* push buffer without duration */
   buffer = gst_buffer_new_and_alloc (4);
@@ -606,7 +606,7 @@
   UNDERRUN_WAIT ();
   UNDERRUN_UNLOCK ();
 
-  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ());
+  gst_pad_push_event (mysrcpad, gst_event_new_stream_start ("test"));
 
   gst_segment_init (&segment, GST_FORMAT_TIME);
   segment.start = 1 * GST_SECOND;
diff --git a/tests/check/generic/sinks.c b/tests/check/generic/sinks.c
index 84aafac..335225e 100644
--- a/tests/check/generic/sinks.c
+++ b/tests/check/generic/sinks.c
@@ -1074,7 +1074,8 @@
   /* set bus on element synchronously listen for ASYNC_DONE */
   bus = gst_bus_new ();
   gst_element_set_bus (sink, bus);
-  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) async_done_func, sink);
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) async_done_func, sink,
+      NULL);
 
   /* make newsegment, this sets the position to 10sec when the buffer prerolls */
   GST_DEBUG ("sending segment");
@@ -1183,7 +1184,8 @@
   /* set bus on element synchronously listen for ASYNC_DONE */
   bus = gst_bus_new ();
   gst_element_set_bus (sink, bus);
-  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) async_done_eos_func, sink);
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) async_done_eos_func, sink,
+      NULL);
 
   /* make newsegment, this sets the position to 10sec when the buffer prerolls */
   GST_DEBUG ("sending segment");
diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
index 7535945..67aec7e 100644
--- a/tests/check/gst/gstbin.c
+++ b/tests/check/gst/gstbin.c
@@ -21,6 +21,7 @@
  */
 
 #include <gst/check/gstcheck.h>
+#include <gst/base/gstbasesrc.h>
 
 static void
 pop_async_done (GstBus * bus)
@@ -56,6 +57,29 @@
   GST_DEBUG ("popped %d messages", count);
 }
 
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static gpointer
+push_one_eos (GstPad * pad)
+{
+  GST_DEBUG_OBJECT (pad, "Pushing EOS event");
+  gst_pad_push_event (pad, gst_event_new_eos ());
+
+  return NULL;
+}
+
+static gpointer
+push_one_stream_start (GstPad * pad)
+{
+  GST_DEBUG_OBJECT (pad, "Pushing STREAM_START event");
+  gst_pad_push_event (pad, gst_event_new_stream_start ("test"));
+
+  return NULL;
+}
+
 GST_START_TEST (test_interface)
 {
   GstBin *bin, *bin2;
@@ -126,6 +150,120 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_eos)
+{
+  GstBus *bus;
+  GstElement *pipeline, *sink1, *sink2;
+  GstMessage *message;
+  GstPad *pad1, *pad2;
+  GThread *thread1, *thread2;
+
+  pipeline = gst_pipeline_new ("test_eos");
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+
+  sink1 = gst_element_factory_make ("fakesink", "sink1");
+  sink2 = gst_element_factory_make ("fakesink", "sink2");
+
+  gst_bin_add_many (GST_BIN (pipeline), sink1, sink2, NULL);
+
+  pad1 = gst_check_setup_src_pad_by_name (sink1, &srctemplate, "sink");
+  pad2 = gst_check_setup_src_pad_by_name (sink2, &srctemplate, "sink");
+
+  gst_pad_set_active (pad1, TRUE);
+  gst_pad_set_active (pad2, TRUE);
+
+  fail_if (gst_element_set_state (GST_ELEMENT (pipeline),
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE);
+
+  /* Send one EOS to sink1 */
+  thread1 = g_thread_new ("thread1", (GThreadFunc) push_one_eos, pad1);
+
+  /* Make sure the EOS message is not sent */
+  message =
+      gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_EOS, 2 * GST_SECOND);
+  fail_if (message != NULL);
+
+  /* Send one EOS to sink2 */
+  thread2 = g_thread_new ("thread2", (GThreadFunc) push_one_eos, pad2);
+
+  /* Make sure the EOS message is sent then */
+  message = gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_EOS, -1);
+  fail_if (message == NULL);
+  fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_EOS);
+  gst_message_unref (message);
+
+  /* Cleanup */
+  g_thread_join (thread1);
+  g_thread_join (thread2);
+
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
+  gst_pad_set_active (pad1, FALSE);
+  gst_pad_set_active (pad2, FALSE);
+  gst_check_teardown_src_pad (sink1);
+  gst_check_teardown_src_pad (sink2);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_stream_start)
+{
+  GstBus *bus;
+  GstElement *pipeline, *sink1, *sink2;
+  GstMessage *message;
+  GstPad *pad1, *pad2;
+  GThread *thread1, *thread2;
+
+  pipeline = gst_pipeline_new ("test_stream_start");
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+
+  sink1 = gst_element_factory_make ("fakesink", "sink1");
+  sink2 = gst_element_factory_make ("fakesink", "sink2");
+
+  gst_bin_add_many (GST_BIN (pipeline), sink1, sink2, NULL);
+
+  pad1 = gst_check_setup_src_pad_by_name (sink1, &srctemplate, "sink");
+  pad2 = gst_check_setup_src_pad_by_name (sink2, &srctemplate, "sink");
+
+  gst_pad_set_active (pad1, TRUE);
+  gst_pad_set_active (pad2, TRUE);
+
+  fail_if (gst_element_set_state (GST_ELEMENT (pipeline),
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE);
+
+  /* Send one STREAM_START to sink1 */
+  thread1 = g_thread_new ("thread1", (GThreadFunc) push_one_stream_start, pad1);
+
+  /* Make sure the STREAM_START message is not sent */
+  message =
+      gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_STREAM_START,
+      2 * GST_SECOND);
+  fail_if (message != NULL);
+
+  /* Send one STREAM_START to sink2 */
+  thread2 = g_thread_new ("thread2", (GThreadFunc) push_one_stream_start, pad2);
+
+  /* Make sure the STREAM_START message is sent then */
+  message =
+      gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_STREAM_START, -1);
+  fail_if (message == NULL);
+  fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_STREAM_START);
+  gst_message_unref (message);
+
+  /* Cleanup */
+  g_thread_join (thread1);
+  g_thread_join (thread2);
+
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
+  gst_pad_set_active (pad1, FALSE);
+  gst_pad_set_active (pad2, FALSE);
+  gst_check_teardown_src_pad (sink1);
+  gst_check_teardown_src_pad (sink2);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_message_state_changed)
 {
   GstBin *bin;
@@ -281,7 +419,12 @@
   ASSERT_OBJECT_REFCOUNT (sink, "sink", 1);
   ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 1);
 
-  /* change state to PAUSED, spawning three messages */
+  /* change state to PAUSED, spawning four messages */
+  /* STATE_CHANGED (NULL => READY)
+   * STREAM_START
+   * ASYNC_DONE
+   * STATE_CHANGED (READY => PAUSED)
+   */
   GST_DEBUG ("setting pipeline to PAUSED");
   ret = gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PAUSED);
   fail_unless (ret == GST_STATE_CHANGE_ASYNC);
@@ -294,9 +437,9 @@
 
   /* wait for async thread to settle down */
   GST_DEBUG ("waiting for refcount");
-  while (GST_OBJECT_REFCOUNT_VALUE (pipeline) > 3)
+  while (GST_OBJECT_REFCOUNT_VALUE (pipeline) > 4)
     THREAD_SWITCH ();
-  GST_DEBUG ("refcount <= 3 now");
+  GST_DEBUG ("refcount <= 4 now");
 
   /* each object is referenced by a message;
    * base_src is blocked in the push and has an extra refcount.
@@ -307,9 +450,9 @@
   /* refcount can be 4 if the bin is still processing the async_done message of
    * the sink. */
   ASSERT_OBJECT_REFCOUNT_BETWEEN (sink, "sink", 2, 3);
-  /* 2 or 3 is valid, because the pipeline might still be posting 
+  /* 3 or 4 is valid, because the pipeline might still be posting 
    * its state_change message */
-  ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "pipeline", 2, 3);
+  ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "pipeline", 3, 4);
 
   pop_messages (bus, 3);
   pop_async_done (bus);
@@ -989,7 +1132,7 @@
 
   /* use the sync signal handler to link elements while the pipeline is still
    * doing the state change */
-  gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, pipeline);
+  gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, pipeline, NULL);
   g_object_connect (bus, "signal::sync-message::state-changed",
       G_CALLBACK (test_link_structure_change_state_changed_sync_cb), pipeline,
       NULL);
@@ -1061,7 +1204,7 @@
   bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
   fail_unless (bus != NULL, "Could not get bus");
 
-  gst_bus_set_sync_handler (bus, sync_handler_remove_sink, pipeline);
+  gst_bus_set_sync_handler (bus, sync_handler_remove_sink, pipeline, NULL);
 
   ret = gst_element_set_state (pipeline, GST_STATE_READY);
   fail_unless (ret == GST_STATE_CHANGE_SUCCESS,
@@ -1265,10 +1408,127 @@
   fail_unless (ret == GST_STATE_CHANGE_SUCCESS, "downward state change failed");
 
   gst_object_unref (pipeline);
+  gst_object_unref (bus);
 }
 
 GST_END_TEST;
 
+GST_START_TEST (test_duration_is_max)
+{
+  GstElement *bin, *src[3], *sink[3];
+  GstStateChangeReturn state_res;
+  GstFormat format = GST_FORMAT_BYTES;
+  gboolean res;
+  gint64 duration;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+
+  /* 3 sources, an adder and a fakesink */
+  src[0] = gst_element_factory_make ("fakesrc", NULL);
+  src[1] = gst_element_factory_make ("fakesrc", NULL);
+  src[2] = gst_element_factory_make ("fakesrc", NULL);
+  sink[0] = gst_element_factory_make ("fakesink", NULL);
+  sink[1] = gst_element_factory_make ("fakesink", NULL);
+  sink[2] = gst_element_factory_make ("fakesink", NULL);
+  gst_bin_add_many (GST_BIN (bin), src[0], src[1], src[2], sink[0], sink[1],
+      sink[2], NULL);
+
+  gst_element_link (src[0], sink[0]);
+  gst_element_link (src[1], sink[1]);
+  gst_element_link (src[2], sink[2]);
+
+  /* irks, duration is reset on basesrc */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* set durations on src */
+  GST_BASE_SRC (src[0])->segment.duration = 1000;
+  GST_BASE_SRC (src[1])->segment.duration = 3000;
+  GST_BASE_SRC (src[2])->segment.duration = 2000;
+
+  /* set to playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* wait for completion */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  res = gst_element_query_duration (GST_ELEMENT (bin), format, &duration);
+  fail_unless (res, NULL);
+
+  ck_assert_int_eq (duration, 3000);
+
+  gst_element_set_state (bin, GST_STATE_NULL);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_duration_unknown_overrides)
+{
+  GstElement *bin, *src[3], *sink[3];
+  GstStateChangeReturn state_res;
+  GstFormat format = GST_FORMAT_BYTES;
+  gboolean res;
+  gint64 duration;
+
+  GST_INFO ("preparing test");
+
+  /* build pipeline */
+  bin = gst_pipeline_new ("pipeline");
+
+  /* 3 sources, an adder and a fakesink */
+  src[0] = gst_element_factory_make ("fakesrc", NULL);
+  src[1] = gst_element_factory_make ("fakesrc", NULL);
+  src[2] = gst_element_factory_make ("fakesrc", NULL);
+  sink[0] = gst_element_factory_make ("fakesink", NULL);
+  sink[1] = gst_element_factory_make ("fakesink", NULL);
+  sink[2] = gst_element_factory_make ("fakesink", NULL);
+  gst_bin_add_many (GST_BIN (bin), src[0], src[1], src[2], sink[0], sink[1],
+      sink[2], NULL);
+
+  gst_element_link (src[0], sink[0]);
+  gst_element_link (src[1], sink[1]);
+  gst_element_link (src[2], sink[2]);
+
+  /* irks, duration is reset on basesrc */
+  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* set durations on src */
+  GST_BASE_SRC (src[0])->segment.duration = GST_CLOCK_TIME_NONE;
+  GST_BASE_SRC (src[1])->segment.duration = 3000;
+  GST_BASE_SRC (src[2])->segment.duration = 2000;
+
+  /* set to playing */
+  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  /* wait for completion */
+  state_res =
+      gst_element_get_state (GST_ELEMENT (bin), NULL, NULL,
+      GST_CLOCK_TIME_NONE);
+  fail_unless (state_res != GST_STATE_CHANGE_FAILURE, NULL);
+
+  res = gst_element_query_duration (GST_ELEMENT (bin), format, &duration);
+  fail_unless (res, NULL);
+
+  ck_assert_int_eq (duration, GST_CLOCK_TIME_NONE);
+
+  gst_element_set_state (bin, GST_STATE_NULL);
+  gst_object_unref (bin);
+}
+
+GST_END_TEST;
+
+
+
 static Suite *
 gst_bin_suite (void)
 {
@@ -1279,6 +1539,8 @@
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_interface);
+  tcase_add_test (tc_chain, test_eos);
+  tcase_add_test (tc_chain, test_stream_start);
   tcase_add_test (tc_chain, test_children_state_change_order_flagged_sink);
   tcase_add_test (tc_chain, test_children_state_change_order_semi_sink);
   tcase_add_test (tc_chain, test_children_state_change_order_two_sink);
@@ -1294,6 +1556,8 @@
   tcase_add_test (tc_chain, test_state_failure_remove);
   tcase_add_test (tc_chain, test_state_failure_unref);
   tcase_add_test (tc_chain, test_state_change_skip);
+  tcase_add_test (tc_chain, test_duration_is_max);
+  tcase_add_test (tc_chain, test_duration_unknown_overrides);
 
   /* fails on OSX build bot for some reason, and is a bit silly anyway */
   if (0)
diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c
index 1344e13..b2ebdd1 100644
--- a/tests/check/gst/gstbuffer.c
+++ b/tests/check/gst/gstbuffer.c
@@ -335,6 +335,48 @@
 
   gst_buffer_unref (copy);
   gst_buffer_unref (buffer);
+
+  /* check if copy is an independent copy when written to */
+  buffer = gst_buffer_new_and_alloc (4);
+  gst_buffer_memset (buffer, 0, 0, 4);
+  copy = gst_buffer_copy (buffer);
+  fail_unless (gst_buffer_is_writable (copy));
+  gst_buffer_memset (copy, 0, 0x80, 4);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
+  fail_if (gst_buffer_memcmp (copy, 0, info.data, info.size) == 0);
+  gst_buffer_unmap (buffer, &info);
+
+  gst_buffer_unref (copy);
+  gst_buffer_unref (buffer);
+
+  /* copy should still be independent if copied when mapped */
+  buffer = gst_buffer_new_and_alloc (4);
+  gst_buffer_memset (buffer, 0, 0, 4);
+  gst_buffer_map (buffer, &info, GST_MAP_WRITE);
+  copy = gst_buffer_copy (buffer);
+  fail_unless (gst_buffer_is_writable (copy));
+  gst_buffer_memset (copy, 0, 0x80, 4);
+  gst_buffer_unmap (buffer, &info);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
+  fail_if (gst_buffer_memcmp (copy, 0, info.data, info.size) == 0);
+  gst_buffer_unmap (buffer, &info);
+
+  gst_buffer_unref (copy);
+  gst_buffer_unref (buffer);
+
+  /* check if a writable clone of a buffer is independent when written to */
+  buffer = gst_buffer_new_and_alloc (4);
+  gst_buffer_memset (buffer, 0, 0, 4);
+  copy = gst_buffer_ref (buffer);
+  copy = gst_buffer_make_writable (copy);
+  fail_unless (gst_buffer_is_writable (copy));
+  gst_buffer_memset (copy, 0, 0x80, 4);
+  gst_buffer_map (buffer, &info, GST_MAP_READ);
+  fail_if (gst_buffer_memcmp (copy, 0, info.data, info.size) == 0);
+  gst_buffer_unmap (buffer, &info);
+
+  gst_buffer_unref (copy);
+  gst_buffer_unref (buffer);
 }
 
 GST_END_TEST;
@@ -561,7 +603,7 @@
 GST_START_TEST (test_map)
 {
   GstBuffer *buf;
-  GstMapInfo map;
+  GstMapInfo map, map2;
   gsize maxalloc;
   gsize size, offset;
 
@@ -598,6 +640,20 @@
   gst_buffer_map (buf, &map, GST_MAP_WRITE);
   gst_buffer_unmap (buf, &map);
 
+  /* mapping same kind should be ok using same memory */
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  fail_unless (gst_buffer_map (buf, &map2, GST_MAP_WRITE));
+  fail_unless (map.memory == map2.memory);
+  gst_buffer_unmap (buf, &map2);
+  gst_buffer_unmap (buf, &map);
+
+  /* ... but different kind should give temporary memory */
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+  fail_unless (gst_buffer_map (buf, &map2, GST_MAP_READ));
+  fail_if (map.memory == map2.memory);
+  gst_buffer_unmap (buf, &map2);
+  gst_buffer_unmap (buf, &map);
+
   gst_buffer_unref (buf);
 }
 
diff --git a/tests/check/gst/gstchildproxy.c b/tests/check/gst/gstchildproxy.c
index 68b357d..b9bb665 100644
--- a/tests/check/gst/gstchildproxy.c
+++ b/tests/check/gst/gstchildproxy.c
@@ -29,7 +29,7 @@
   pipeline = gst_pipeline_new ("foo");
   fail_unless (pipeline != NULL, "Could not create pipeline");
 
-  gst_child_proxy_get (G_OBJECT (pipeline), "name", &name, NULL);
+  gst_child_proxy_get (GST_CHILD_PROXY (pipeline), "name", &name, NULL);
   fail_if (g_strcmp0 ("foo", name));
   g_free (name);
 
@@ -51,7 +51,7 @@
 
   gst_bin_add (GST_BIN (pipeline), elem);
 
-  gst_child_proxy_get (G_OBJECT (pipeline), "src::name", &name, NULL);
+  gst_child_proxy_get (GST_CHILD_PROXY (pipeline), "src::name", &name, NULL);
   fail_if (g_strcmp0 ("src", name));
   g_free (name);
 
diff --git a/tests/check/gst/gstclock.c b/tests/check/gst/gstclock.c
index a8f374d..fba8b02 100644
--- a/tests/check/gst/gstclock.c
+++ b/tests/check/gst/gstclock.c
@@ -19,11 +19,27 @@
 
 #include <gst/check/gstcheck.h>
 
-static void
-weak_notify (gpointer data, GObject * object)
+typedef struct
 {
-  *(gboolean *) data = FALSE;
-}
+  GstClock parent;
+} GstTestClock;
+
+typedef struct
+{
+  GstClockClass parent_class;
+} GstTestClockClass;
+
+#define GST_TYPE_TEST_CLOCK                   (gst_test_clock_get_type ())
+#define GST_TEST_CLOCK(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TEST_CLOCK, GstTestClock))
+#define GST_TEST_CLOCK_CAST(obj)              ((GstTestClock *)(obj))
+#define GST_IS_TEST_CLOCK(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TEST_CLOCK))
+#define GST_TEST_CLOCK_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_TEST_CLOCK, GstTestClockClass))
+#define GST_IS_TEST_CLOCK_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TEST_CLOCK))
+#define GST_TEST_CLOCK_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_TEST_CLOCK, GstTestClockClass))
+
+
+GType gst_test_clock_get_type (void);
+G_DEFINE_TYPE (GstTestClock, gst_test_clock, GST_TYPE_CLOCK);
 
 static GstClockReturn
 fake_wait_async (GstClock * clock, GstClockEntry * entry)
@@ -31,21 +47,38 @@
   return GST_CLOCK_OK;
 }
 
+static void
+gst_test_clock_class_init (GstTestClockClass * klass)
+{
+  GstClockClass *clock_class;
+
+  clock_class = GST_CLOCK_CLASS (klass);
+
+  clock_class->wait_async = fake_wait_async;
+}
+
+static void
+gst_test_clock_init (GstTestClock * clock)
+{
+}
+
+
+static void
+weak_notify (gpointer data, GObject * object)
+{
+  *(gboolean *) data = FALSE;
+}
+
 GST_START_TEST (test_set_master_refcount)
 {
   GstClock *master, *slave;
-  GstClockClass *klass;
   gboolean master_alive = TRUE;
 
   /* create master and slave */
-  master = g_object_new (GST_TYPE_CLOCK, "name", "TestClockMaster", NULL);
-  slave = g_object_new (GST_TYPE_CLOCK, "name", "TestClockMaster", NULL);
+  master = g_object_new (GST_TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
+  slave = g_object_new (GST_TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL);
   GST_OBJECT_FLAG_SET (slave, GST_CLOCK_FLAG_CAN_SET_MASTER);
 
-  /* look ma! i'm doing monkey patching in C */
-  klass = GST_CLOCK_GET_CLASS (master);
-  klass->wait_async = fake_wait_async;
-
   fail_unless_equals_int (GST_OBJECT_REFCOUNT (master), 1);
   fail_unless_equals_int (GST_OBJECT_REFCOUNT (slave), 1);
 
@@ -72,8 +105,6 @@
   fail_unless_equals_int (GST_OBJECT_REFCOUNT (slave), 1);
 
   gst_object_unref (slave);
-
-  klass->wait_async = NULL;
 }
 
 GST_END_TEST;
diff --git a/tests/check/gst/gstdatetime.c b/tests/check/gst/gstdatetime.c
index 10f1c60..c770a2c 100644
--- a/tests/check/gst/gstdatetime.c
+++ b/tests/check/gst/gstdatetime.c
@@ -20,6 +20,10 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <string.h>
 #include <time.h>
 #include <gst/check/gstcheck.h>
@@ -262,8 +266,6 @@
 
 GST_START_TEST (test_GstDateTime_get_utc_offset)
 {
-  GstDateTime *dt;
-  gfloat ts;
   struct tm tm;
   time_t t;
 
@@ -275,9 +277,407 @@
   memcpy (&tm, localtime (&t), sizeof (struct tm));
 #endif
 
-  dt = gst_date_time_new_now_local_time ();
-  ts = gst_date_time_get_time_zone_offset (dt);
-  assert_equals_int (ts, tm.tm_gmtoff / 3600.0);
+#ifdef HAVE_TM_GMTOFF
+  {
+    GstDateTime *dt;
+    gfloat ts;
+
+    dt = gst_date_time_new_now_local_time ();
+    ts = gst_date_time_get_time_zone_offset (dt);
+    assert_equals_int (ts, tm.tm_gmtoff / 3600.0);
+    gst_date_time_unref (dt);
+  }
+#endif
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_GstDateTime_partial_fields)
+{
+  GstDateTime *dt;
+
+  ASSERT_CRITICAL (gst_date_time_new (0.0, -1, -1, -1, -1, -1, -1));
+  ASSERT_CRITICAL (gst_date_time_new (0.0, 2012, 7, 18, 9, -1, -1));
+
+  dt = gst_date_time_new (0.0, 2012, -1, -1, -1, -1, -1);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless_equals_int (gst_date_time_get_year (dt), 2012);
+  fail_if (gst_date_time_has_month (dt));
+  ASSERT_CRITICAL (gst_date_time_get_month (dt));
+  fail_if (gst_date_time_has_day (dt));
+  ASSERT_CRITICAL (gst_date_time_get_day (dt));
+  fail_if (gst_date_time_has_time (dt));
+  ASSERT_CRITICAL (gst_date_time_get_hour (dt));
+  ASSERT_CRITICAL (gst_date_time_get_minute (dt));
+  fail_if (gst_date_time_has_second (dt));
+  ASSERT_CRITICAL (gst_date_time_get_second (dt));
+  gst_date_time_unref (dt);
+
+  dt = gst_date_time_new (0.0, 2012, 7, -1, -1, -1, -1);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless_equals_int (gst_date_time_get_year (dt), 2012);
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless_equals_int (gst_date_time_get_month (dt), 7);
+  fail_if (gst_date_time_has_day (dt));
+  ASSERT_CRITICAL (gst_date_time_get_day (dt));
+  fail_if (gst_date_time_has_time (dt));
+  ASSERT_CRITICAL (gst_date_time_get_hour (dt));
+  ASSERT_CRITICAL (gst_date_time_get_minute (dt));
+  fail_if (gst_date_time_has_second (dt));
+  ASSERT_CRITICAL (gst_date_time_get_second (dt));
+  gst_date_time_unref (dt);
+
+  dt = gst_date_time_new (0.0, 2012, 7, 1, -1, -1, -1);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless_equals_int (gst_date_time_get_month (dt), 7);
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless_equals_int (gst_date_time_get_day (dt), 1);
+  fail_if (gst_date_time_has_time (dt));
+  fail_if (gst_date_time_has_second (dt));
+  gst_date_time_unref (dt);
+
+  dt = gst_date_time_new (0.0, 2012, 7, 1, 18, 20, -1);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless_equals_int (gst_date_time_get_year (dt), 2012);
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless_equals_int (gst_date_time_get_month (dt), 7);
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless_equals_int (gst_date_time_get_day (dt), 1);
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless_equals_int (gst_date_time_get_hour (dt), 18);
+  fail_unless_equals_int (gst_date_time_get_minute (dt), 20);
+  fail_if (gst_date_time_has_second (dt));
+  gst_date_time_unref (dt);
+
+  dt = gst_date_time_new (0.0, 2012, 7, 1, 18, 20, 25.0443);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless (gst_date_time_has_second (dt));
+  fail_unless_equals_int (gst_date_time_get_second (dt), 25);
+  /* fail_unless_equals_int (gst_date_time_get_microsecond (dt), 443); */
+  gst_date_time_unref (dt);
+}
+
+GST_END_TEST;
+
+static gboolean
+date_times_are_equal (GstDateTime * d1, GstDateTime * d2)
+{
+  GValue val1 = G_VALUE_INIT;
+  GValue val2 = G_VALUE_INIT;
+  int ret;
+
+  g_value_init (&val1, GST_TYPE_DATE_TIME);
+  g_value_set_boxed (&val1, d1);
+  g_value_init (&val2, GST_TYPE_DATE_TIME);
+  g_value_set_boxed (&val2, d2);
+  ret = gst_value_compare (&val1, &val2);
+  g_value_unset (&val2);
+  g_value_unset (&val1);
+
+  return ret == GST_VALUE_EQUAL;
+}
+
+GST_START_TEST (test_GstDateTime_iso8601)
+{
+  GstDateTime *dt, *dt2;
+  gchar *str, *str2;
+
+  dt = gst_date_time_new_now_utc ();
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless (gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_int (strlen (str), strlen ("2012-06-26T22:46:43Z"));
+  fail_unless (g_str_has_suffix (str, "Z"));
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (gst_date_time_get_day (dt) == gst_date_time_get_day (dt2));
+  fail_unless (gst_date_time_get_hour (dt) == gst_date_time_get_hour (dt2));
+  fail_unless (gst_date_time_get_minute (dt) == gst_date_time_get_minute (dt2));
+  fail_unless (gst_date_time_get_second (dt) == gst_date_time_get_second (dt2));
+  /* This will succeed because we're not comparing microseconds when
+   * checking for equality */
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- year only ---- */
+
+  dt = gst_date_time_new_y (2010);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (!gst_date_time_has_month (dt));
+  fail_unless (!gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  fail_unless (!gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- year and month ---- */
+
+  dt = gst_date_time_new_ym (2010, 10);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (!gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  fail_unless (!gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010-10");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- year and month ---- */
+
+  dt = gst_date_time_new_ymd (2010, 10, 30);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  fail_unless (!gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010-10-30");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (gst_date_time_get_day (dt) == gst_date_time_get_day (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- date and time, but no seconds ---- */
+
+  dt = gst_date_time_new (-4.5, 2010, 10, 30, 15, 50, -1);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless (!gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010-10-30T15:50-0430");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (gst_date_time_get_day (dt) == gst_date_time_get_day (dt2));
+  fail_unless (gst_date_time_get_hour (dt) == gst_date_time_get_hour (dt2));
+  fail_unless (gst_date_time_get_minute (dt) == gst_date_time_get_minute (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- date and time, but no seconds (UTC) ---- */
+
+  dt = gst_date_time_new (0, 2010, 10, 30, 15, 50, -1);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless (!gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010-10-30T15:50Z");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (gst_date_time_get_day (dt) == gst_date_time_get_day (dt2));
+  fail_unless (gst_date_time_get_hour (dt) == gst_date_time_get_hour (dt2));
+  fail_unless (gst_date_time_get_minute (dt) == gst_date_time_get_minute (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- date and time, with seconds ---- */
+
+  dt = gst_date_time_new (-4.5, 2010, 10, 30, 15, 50, 0);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless (gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010-10-30T15:50:00-0430");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (gst_date_time_get_day (dt) == gst_date_time_get_day (dt2));
+  fail_unless (gst_date_time_get_hour (dt) == gst_date_time_get_hour (dt2));
+  fail_unless (gst_date_time_get_minute (dt) == gst_date_time_get_minute (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- date and time, with seconds (UTC) ---- */
+
+  dt = gst_date_time_new (0, 2010, 10, 30, 15, 50, 0);
+  fail_unless (gst_date_time_has_year (dt));
+  fail_unless (gst_date_time_has_month (dt));
+  fail_unless (gst_date_time_has_day (dt));
+  fail_unless (gst_date_time_has_time (dt));
+  fail_unless (gst_date_time_has_second (dt));
+  str = gst_date_time_to_iso8601_string (dt);
+  fail_unless (str != NULL);
+  fail_unless_equals_string (str, "2010-10-30T15:50:00Z");
+  dt2 = gst_date_time_new_from_iso8601_string (str);
+  fail_unless (gst_date_time_get_year (dt) == gst_date_time_get_year (dt2));
+  fail_unless (gst_date_time_get_month (dt) == gst_date_time_get_month (dt2));
+  fail_unless (gst_date_time_get_day (dt) == gst_date_time_get_day (dt2));
+  fail_unless (gst_date_time_get_hour (dt) == gst_date_time_get_hour (dt2));
+  fail_unless (gst_date_time_get_minute (dt) == gst_date_time_get_minute (dt2));
+  fail_unless (date_times_are_equal (dt, dt2));
+  str2 = gst_date_time_to_iso8601_string (dt2);
+  fail_unless_equals_string (str, str2);
+  g_free (str2);
+  gst_date_time_unref (dt2);
+  g_free (str);
+  gst_date_time_unref (dt);
+
+  /* ---- date and time, but without the 'T' and without timezone */
+  dt = gst_date_time_new_from_iso8601_string ("2010-10-30 15:50");
+  fail_unless (gst_date_time_get_year (dt) == 2010);
+  fail_unless (gst_date_time_get_month (dt) == 10);
+  fail_unless (gst_date_time_get_day (dt) == 30);
+  fail_unless (gst_date_time_get_hour (dt) == 15);
+  fail_unless (gst_date_time_get_minute (dt) == 50);
+  fail_unless (!gst_date_time_has_second (dt));
+  gst_date_time_unref (dt);
+
+  /* ---- date and time+secs, but without the 'T' and without timezone */
+  dt = gst_date_time_new_from_iso8601_string ("2010-10-30 15:50:33");
+  fail_unless (gst_date_time_get_year (dt) == 2010);
+  fail_unless (gst_date_time_get_month (dt) == 10);
+  fail_unless (gst_date_time_get_day (dt) == 30);
+  fail_unless (gst_date_time_get_hour (dt) == 15);
+  fail_unless (gst_date_time_get_minute (dt) == 50);
+  fail_unless (gst_date_time_get_second (dt) == 33);
+  gst_date_time_unref (dt);
+
+  /* ---- dates with 00s */
+  dt = gst_date_time_new_from_iso8601_string ("2010-10-00");
+  fail_unless (gst_date_time_get_year (dt) == 2010);
+  fail_unless (gst_date_time_get_month (dt) == 10);
+  fail_unless (!gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  gst_date_time_unref (dt);
+
+  dt = gst_date_time_new_from_iso8601_string ("2010-00-00");
+  fail_unless (gst_date_time_get_year (dt) == 2010);
+  fail_unless (!gst_date_time_has_month (dt));
+  fail_unless (!gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  gst_date_time_unref (dt);
+
+  dt = gst_date_time_new_from_iso8601_string ("2010-00-30");
+  fail_unless (gst_date_time_get_year (dt) == 2010);
+  fail_unless (!gst_date_time_has_month (dt));
+  fail_unless (!gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  gst_date_time_unref (dt);
+
+  /* completely invalid */
+  dt = gst_date_time_new_from_iso8601_string ("0000-00-00");
+  fail_unless (dt == NULL);
+
+  /* partially invalid - here we'll just extract the year */
+  dt = gst_date_time_new_from_iso8601_string ("2010/05/30");
+  fail_unless (gst_date_time_get_year (dt) == 2010);
+  fail_unless (!gst_date_time_has_month (dt));
+  fail_unless (!gst_date_time_has_day (dt));
+  fail_unless (!gst_date_time_has_time (dt));
+  gst_date_time_unref (dt);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_GstDateTime_to_g_date_time)
+{
+  GDateTime *gdt1;
+  GDateTime *gdt2;
+  GstDateTime *dt;
+
+  gdt1 = g_date_time_new_now_utc ();
+  g_date_time_ref (gdt1);       /* keep it alive for compare below */
+  dt = gst_date_time_new_from_g_date_time (gdt1);
+  gdt2 = gst_date_time_to_g_date_time (dt);
+
+  fail_unless (g_date_time_compare (gdt1, gdt2) == 0);
+
+  g_date_time_unref (gdt1);
+  g_date_time_unref (gdt2);
+  gst_date_time_unref (dt);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_GstDateTime_new_from_g_date_time)
+{
+  GDateTime *gdt;
+  GstDateTime *dt;
+
+  gdt = g_date_time_new_now_utc ();
+  g_date_time_ref (gdt);        /* keep it alive for compare below */
+  dt = gst_date_time_new_from_g_date_time (gdt);
+
+  assert_equals_int (gst_date_time_get_year (dt), g_date_time_get_year (gdt));
+  assert_equals_int (gst_date_time_get_month (dt), g_date_time_get_month (gdt));
+  assert_equals_int (gst_date_time_get_day (dt),
+      g_date_time_get_day_of_month (gdt));
+  assert_equals_int (gst_date_time_get_hour (dt), g_date_time_get_hour (gdt));
+  assert_equals_int (gst_date_time_get_minute (dt),
+      g_date_time_get_minute (gdt));
+  assert_equals_int (gst_date_time_get_second (dt),
+      g_date_time_get_second (gdt));
+  assert_equals_int (gst_date_time_get_microsecond (dt),
+      g_date_time_get_microsecond (gdt));
+
+  g_date_time_unref (gdt);
   gst_date_time_unref (dt);
 }
 
@@ -301,8 +701,12 @@
   tcase_add_test (tc_chain, test_GstDateTime_new_full);
   tcase_add_test (tc_chain, test_GstDateTime_now);
   tcase_add_test (tc_chain, test_GstDateTime_utc_now);
+  tcase_add_test (tc_chain, test_GstDateTime_partial_fields);
+  tcase_add_test (tc_chain, test_GstDateTime_iso8601);
+  tcase_add_test (tc_chain, test_GstDateTime_to_g_date_time);
+  tcase_add_test (tc_chain, test_GstDateTime_new_from_g_date_time);
 
   return s;
 }
 
-GST_CHECK_MAIN (gst_date_time);
+GST_CHECK_MAIN (gst_date_time)
diff --git a/tests/check/gst/gstevent.c b/tests/check/gst/gstevent.c
index b16b023..fc215f2 100644
--- a/tests/check/gst/gstevent.c
+++ b/tests/check/gst/gstevent.c
@@ -185,7 +185,7 @@
     GstTagList *taglist = gst_tag_list_new_empty ();
     GstTagList *tl2 = NULL;
 
-    event = gst_event_new_tag ("test", taglist);
+    event = gst_event_new_tag (taglist);
     fail_if (taglist == NULL);
     fail_if (event == NULL);
     fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
@@ -243,8 +243,8 @@
     gdouble rate;
     GstFormat format;
     GstSeekFlags flags;
-    GstSeekType cur_type, stop_type;
-    gint64 cur, stop;
+    GstSeekType start_type, stop_type;
+    gint64 start, stop;
 
     event = gst_event_new_seek (0.5, GST_FORMAT_BYTES,
         GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE,
@@ -256,13 +256,13 @@
     fail_if (GST_EVENT_IS_DOWNSTREAM (event));
     fail_if (GST_EVENT_IS_SERIALIZED (event));
 
-    gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
+    gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start,
         &stop_type, &stop);
     fail_unless (rate == 0.5);
     fail_unless (format == GST_FORMAT_BYTES);
     fail_unless (flags == (GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE));
-    fail_unless (cur_type == GST_SEEK_TYPE_SET);
-    fail_unless (cur == 1);
+    fail_unless (start_type == GST_SEEK_TYPE_SET);
+    fail_unless (start == 1);
     fail_unless (stop_type == GST_SEEK_TYPE_NONE);
     fail_unless (stop == 0xdeadbeef);
 
diff --git a/tests/check/gst/gstghostpad.c b/tests/check/gst/gstghostpad.c
index 3212553..2a72ec5 100644
--- a/tests/check/gst/gstghostpad.c
+++ b/tests/check/gst/gstghostpad.c
@@ -521,8 +521,8 @@
   gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
   /* and wait now */
   g_cond_wait (block_data.cond, block_data.mutex);
-  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
   g_mutex_unlock (block_data.mutex);
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
 
   g_mutex_free (block_data.mutex);
   g_cond_free (block_data.cond);
@@ -563,8 +563,8 @@
   gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING);
   /* and wait now */
   g_cond_wait (block_data.cond, block_data.mutex);
-  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
   g_mutex_unlock (block_data.mutex);
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
 
   g_mutex_free (block_data.mutex);
   g_cond_free (block_data.cond);
diff --git a/tests/check/gst/gstinfo.c b/tests/check/gst/gstinfo.c
index e7757d8..bc786ee 100644
--- a/tests/check/gst/gstinfo.c
+++ b/tests/check/gst/gstinfo.c
@@ -49,7 +49,7 @@
   /* set up our own log function to make sure the code in gstinfo is actually
    * executed without GST_DEBUG being set or it being output to stdout */
   gst_debug_remove_log_function (gst_debug_log_default);
-  gst_debug_add_log_function (printf_extension_log_func, NULL);
+  gst_debug_add_log_function (printf_extension_log_func, NULL, NULL);
 
   gst_debug_set_default_threshold (GST_LEVEL_LOG);
 
@@ -105,7 +105,7 @@
 
   /* clean up */
   gst_debug_set_default_threshold (GST_LEVEL_NONE);
-  gst_debug_add_log_function (gst_debug_log_default, NULL);
+  gst_debug_add_log_function (gst_debug_log_default, NULL, NULL);
   gst_debug_remove_log_function (printf_extension_log_func);
 }
 
@@ -117,7 +117,7 @@
   /* set up our own log function to make sure the code in gstinfo is actually
    * executed without GST_DEBUG being set or it being output to stdout */
   gst_debug_remove_log_function (gst_debug_log_default);
-  gst_debug_add_log_function (printf_extension_log_func, NULL);
+  gst_debug_add_log_function (printf_extension_log_func, NULL, NULL);
 
   gst_debug_set_default_threshold (GST_LEVEL_LOG);
 
@@ -183,7 +183,7 @@
 
   /* clean up */
   gst_debug_set_default_threshold (GST_LEVEL_NONE);
-  gst_debug_add_log_function (gst_debug_log_default, NULL);
+  gst_debug_add_log_function (gst_debug_log_default, NULL, NULL);
   gst_debug_remove_log_function (printf_extension_log_func);
 }
 
diff --git a/tests/check/gst/gstmemory.c b/tests/check/gst/gstmemory.c
index 0cf1df7..b64f786 100644
--- a/tests/check/gst/gstmemory.c
+++ b/tests/check/gst/gstmemory.c
@@ -55,7 +55,7 @@
   fail_unless (sinfo.size == 2, "submemory has wrong size");
   fail_unless (memcmp (info.data + 1, sinfo.data, 2) == 0,
       "submemory contains the wrong data");
-  ASSERT_MEMORY_REFCOUNT (sub, "submemory", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (sub, "submemory", 1);
   gst_memory_unmap (sub, &sinfo);
   gst_memory_unref (sub);
 
@@ -66,7 +66,7 @@
   fail_unless (sinfo.size == 0, "submemory has wrong size");
   fail_unless (memcmp (info.data + 1, sinfo.data, 0) == 0,
       "submemory contains the wrong data");
-  ASSERT_MEMORY_REFCOUNT (sub, "submemory", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (sub, "submemory", 1);
   gst_memory_unmap (sub, &sinfo);
   gst_memory_unref (sub);
 
@@ -197,11 +197,11 @@
   GstMapInfo info, sinfo;
 
   memory = gst_allocator_alloc (NULL, 4, NULL);
-  ASSERT_MEMORY_REFCOUNT (memory, "memory", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (memory, "memory", 1);
 
   copy = gst_memory_copy (memory, 0, -1);
-  ASSERT_MEMORY_REFCOUNT (memory, "memory", 1);
-  ASSERT_MEMORY_REFCOUNT (copy, "copy", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (memory, "memory", 1);
+  ASSERT_MINI_OBJECT_REFCOUNT (copy, "copy", 1);
   /* memorys are copied and must point to different memory */
   fail_if (memory == copy);
 
@@ -428,7 +428,6 @@
   fail_unless (gst_memory_map (mem, &info2, GST_MAP_READ));
   gst_memory_unmap (mem, &info2);
   gst_memory_unmap (mem, &info1);
-  fail_unless (mem->state == 0);
 
   fail_unless (gst_memory_map (mem, &info1, GST_MAP_WRITE));
   /* not allowed */
diff --git a/tests/check/gst/gstmessage.c b/tests/check/gst/gstmessage.c
index deea587..59a6d63 100644
--- a/tests/check/gst/gstmessage.c
+++ b/tests/check/gst/gstmessage.c
@@ -208,7 +208,7 @@
 
     /* create a task with some dummy function, we're not actually going to run
      * the task here */
-    task = gst_task_new ((GstTaskFunction) gst_object_unref, NULL);
+    task = gst_task_new ((GstTaskFunction) gst_object_unref, NULL, NULL);
 
     ASSERT_OBJECT_REFCOUNT (task, "task", 1);
 
diff --git a/tests/check/gst/gstobject.c b/tests/check/gst/gstobject.c
index 6f7ccb8..ce2ed3e 100644
--- a/tests/check/gst/gstobject.c
+++ b/tests/check/gst/gstobject.c
@@ -72,19 +72,6 @@
   return fake_object_type;
 }
 
-#ifndef HAVE_OSX
-/* g_object_new on abstract GstObject should fail */
-GST_START_TEST (test_fail_abstract_new)
-{
-  GstObject *object;
-
-  ASSERT_CRITICAL (object = g_object_new (gst_object_get_type (), NULL));
-  fail_unless (object == NULL, "Created an instance of abstract GstObject");
-}
-
-GST_END_TEST;
-#endif
-
 /* g_object_new on GstFakeObject should succeed */
 GST_START_TEST (test_fake_object_new)
 {
@@ -529,18 +516,6 @@
   tcase_add_test (tc_chain, test_fake_object_has_ancestor);
   //tcase_add_checked_fixture (tc_chain, setup, teardown);
 
-  /* FIXME: GLib shouldn't crash here, but issue a warning and return a NULL
-   * object, or at least g_error() and then abort properly ... (tpm) */
-#ifndef HAVE_OSX
-  /* Disabled for OS/X because a) it's a pretty silly test anyway and
-   * b) different OS/X versions raise different signals and it isn't worth
-   * the effort to try and detect which one should be producing which
-   */
-  /* SEGV tests go last so we can debug the others */
-  if (g_getenv ("CK_FORK") == NULL || strcmp (g_getenv ("CK_FORK"), "no") != 0)
-    tcase_add_test_raise_signal (tc_chain, test_fail_abstract_new, SIGSEGV);
-#endif
-
   return s;
 }
 
diff --git a/tests/check/gst/gstpad.c b/tests/check/gst/gstpad.c
index 88f93fa..16f3e51 100644
--- a/tests/check/gst/gstpad.c
+++ b/tests/check/gst/gstpad.c
@@ -1042,7 +1042,7 @@
 
   /* wait for the block */
   while (!gst_pad_is_blocking (pad)) {
-    g_usleep (100000);
+    g_usleep (10000);
   }
 
   /* stop with flushing */
@@ -1116,9 +1116,8 @@
   gst_pad_send_event (sink, gst_event_new_caps (caps));
   gst_caps_unref (caps);
 
-  g_usleep (10000);
-
-  fail_unless (got_notify == TRUE);
+  while (got_notify == FALSE)
+    g_usleep (10000);
 
   gst_element_set_state (queue, GST_STATE_NULL);
 
@@ -1439,7 +1438,7 @@
   gst_pad_set_active (srcpad, TRUE);
 
   /* push an event, it should be sticky on the srcpad */
-  gst_pad_push_event (srcpad, gst_event_new_stream_start ());
+  gst_pad_push_event (srcpad, gst_event_new_stream_start ("test"));
 
   /* make a caps event */
   caps = gst_caps_new_empty_simple ("foo/bar");
diff --git a/tests/check/gst/gstparamspecs.c b/tests/check/gst/gstparamspecs.c
index c6d3024..5db7408 100644
--- a/tests/check/gst/gstparamspecs.c
+++ b/tests/check/gst/gstparamspecs.c
@@ -54,7 +54,8 @@
       /* default value is out of bounds, should print a warning */
       g_object_class_install_property (gobject_class, 1,
           gst_param_spec_fraction ("ratio", "ratio", "ratio", 0, 1, 2, 1,
-              16, 4, G_PARAM_READWRITE)););
+              16, 4, G_PARAM_READWRITE));
+      );
 
   /* should be within bounds */
   g_object_class_install_property (gobject_class, 2,
diff --git a/tests/check/gst/gstpipeline.c b/tests/check/gst/gstpipeline.c
index 899c017..4e34eea 100644
--- a/tests/check/gst/gstpipeline.c
+++ b/tests/check/gst/gstpipeline.c
@@ -125,6 +125,9 @@
   ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline after get_bus", 1);
   ASSERT_OBJECT_REFCOUNT (bus, "bus", 2);
 
+  /* bindings don't like the floating flag to be set here */
+  fail_if (g_object_is_floating (bus));
+
   gst_object_unref (pipeline);
 
   ASSERT_OBJECT_REFCOUNT (bus, "bus after unref pipeline", 1);
diff --git a/tests/check/gst/gstsegment.c b/tests/check/gst/gstsegment.c
index ecd8b06..98d48c0 100644
--- a/tests/check/gst/gstsegment.c
+++ b/tests/check/gst/gstsegment.c
@@ -22,6 +22,19 @@
 
 #include <gst/check/gstcheck.h>
 
+static void
+check_times (GstSegment * segment, guint64 position, guint64 stream_time,
+    guint64 running_time)
+{
+  guint64 st, rt;
+
+  st = gst_segment_to_stream_time (segment, segment->format, position);
+  rt = gst_segment_to_running_time (segment, segment->format, position);
+
+  fail_unless_equals_int64 (st, stream_time);
+  fail_unless_equals_int64 (rt, running_time);
+}
+
 /* mess with the segment structure in the bytes format */
 GST_START_TEST (segment_seek_nosize)
 {
@@ -38,20 +51,11 @@
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_SET, 100, GST_SEEK_TYPE_NONE, -1, &update);
   fail_unless (segment.start == 100);
+  fail_unless (segment.position == 100);
   fail_unless (segment.stop == -1);
   fail_unless (update == TRUE);
-
-#if 0
-  /* configure segment to stop relative, should not do anything since 
-   * size is unknown. */
-  gst_segment_do_seek (&segment, 1.0,
-      GST_FORMAT_BYTES,
-      GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, 200, GST_SEEK_TYPE_CUR, -100, &update);
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == -1);
-  fail_unless (update == FALSE);
-#endif
+  /* appended after current position 0 */
+  check_times (&segment, 100, 100, 0);
 
   /* do some clipping on the open range */
   /* completely outside */
@@ -122,14 +126,22 @@
   fail_unless (cstart == 150);
   fail_unless (cstop == -1);
 
+  /* move to 150, this is a running_time of 50 */
+  segment.position = 150;
+  check_times (&segment, 150, 150, 50);
+
   /* add 100 to start, set stop to 300 */
   gst_segment_do_seek (&segment, 1.0,
       GST_FORMAT_BYTES,
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_SET, 100 + 100, GST_SEEK_TYPE_SET, 300, &update);
   fail_unless (segment.start == 200);
+  fail_unless (segment.position == 200);
   fail_unless (segment.stop == 300);
+  fail_unless (segment.base == 50);
   fail_unless (update == TRUE);
+  check_times (&segment, 200, 200, 50);
+  check_times (&segment, 250, 250, 100);
 
   update = FALSE;
   /* add 100 to start (to 300), set stop to 200, this is not allowed.
@@ -140,9 +152,13 @@
           GST_SEEK_FLAG_NONE,
           GST_SEEK_TYPE_SET, 200 + 100, GST_SEEK_TYPE_SET, 200, &update));
   fail_unless (segment.start == 200);
+  fail_unless (segment.position == 200);
   fail_unless (segment.stop == 300);
+  fail_unless (segment.base == 50);
   /* update didn't change */
   fail_unless (update == FALSE);
+  check_times (&segment, 200, 200, 50);
+  check_times (&segment, 250, 250, 100);
 
   update = TRUE;
   /* seek relative to end, should not do anything since size is
@@ -152,8 +168,11 @@
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_END, -300, GST_SEEK_TYPE_END, -100, &update);
   fail_unless (segment.start == 200);
+  fail_unless (segment.position == 200);
   fail_unless (segment.stop == 300);
+  fail_unless (segment.base == 50);
   fail_unless (update == FALSE);
+  check_times (&segment, 250, 250, 100);
 
   /* completely outside */
   res = gst_segment_clip (&segment, GST_FORMAT_BYTES, 0, 50, &cstart, &cstop);
@@ -240,8 +259,10 @@
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_SET, 100, GST_SEEK_TYPE_NONE, -1, &update);
   fail_unless (segment.start == 100);
+  fail_unless (segment.position == 100);
   fail_unless (segment.stop == -1);
   fail_unless (update == TRUE);
+  check_times (&segment, 100, 100, 0);
 
   /* do some clipping on the open range */
   /* completely outside */
@@ -300,7 +321,9 @@
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_SET, 100 + 100, GST_SEEK_TYPE_SET, 300, &update);
   fail_unless (segment.start == 200);
+  fail_unless (segment.position == 200);
   fail_unless (segment.stop == 200);
+  check_times (&segment, 200, 200, 0);
 
   /* add 100 to start (to 300), set stop to 200, this clips start
    * to duration */
@@ -309,8 +332,10 @@
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_SET, 200 + 100, GST_SEEK_TYPE_SET, 200, &update);
   fail_unless (segment.start == 200);
+  fail_unless (segment.position == 200);
   fail_unless (segment.stop == 200);
   fail_unless (update == FALSE);
+  check_times (&segment, 200, 200, 0);
 
   /* seek relative to end */
   gst_segment_do_seek (&segment, 1.0,
@@ -318,8 +343,10 @@
       GST_SEEK_FLAG_NONE,
       GST_SEEK_TYPE_END, -100, GST_SEEK_TYPE_END, -20, &update);
   fail_unless (segment.start == 100);
+  fail_unless (segment.position == 100);
   fail_unless (segment.stop == 180);
   fail_unless (update == TRUE);
+  check_times (&segment, 150, 150, 50);
 
   /* completely outside */
   res = gst_segment_clip (&segment, GST_FORMAT_BYTES, 0, 50, &cstart, &cstop);
@@ -407,6 +434,9 @@
   fail_unless (segment.time == 0);
   fail_unless (segment.position == 100);
   fail_unless (update == TRUE);
+  check_times (&segment, 100, 100, 0);
+  check_times (&segment, 50, 50, 50);
+  check_times (&segment, 0, 0, 100);
 
   /* update */
   gst_segment_do_seek (&segment, -1.0,
@@ -418,6 +448,9 @@
   fail_unless (segment.time == 10);
   fail_unless (segment.position == 80);
   fail_unless (update == TRUE);
+  check_times (&segment, 80, 80, 0);
+  check_times (&segment, 40, 40, 40);
+  check_times (&segment, 10, 10, 70);
 
   gst_segment_do_seek (&segment, -1.0,
       GST_FORMAT_BYTES,
@@ -428,6 +461,8 @@
   fail_unless (segment.time == 20);
   fail_unless (segment.position == 80);
   fail_unless (update == FALSE);
+  check_times (&segment, 80, 80, 0);
+  check_times (&segment, 20, 20, 60);
 }
 
 GST_END_TEST;
@@ -447,46 +482,11 @@
       GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_NONE, -1, &update);
   fail_unless (segment.format == GST_FORMAT_BYTES);
   fail_unless (segment.start == 0);
+  fail_unless (segment.position == 0);
   fail_unless (segment.stop == -1);
   fail_unless (segment.rate == 2.0);
   fail_unless (update == FALSE);
-
-#if 0
-  /* 0 is the same in all formats and should not fail */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, -1, &update);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-
-  /* set to -1 means start from 0 */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_SET, -1, GST_SEEK_TYPE_NONE, -1, &update);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-  fail_unless (segment.start == 0);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 0, GST_SEEK_TYPE_NONE, -1, &update);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_END, 0, GST_SEEK_TYPE_NONE, -1, &update);
-
-  /* -1 for end is fine too in all formats */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_SET, -1, &update);
-
-  /* 0 as relative end is fine too */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_CUR, 0, &update);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_END, 0, &update);
-#endif
+  check_times (&segment, 50, 50, 25);
 
   /* set a real stop position, this must happen in bytes */
   gst_segment_do_seek (&segment, 3.0,
@@ -500,25 +500,7 @@
   /* no seek should happen, we just updated the stop position in forward
    * playback mode.*/
   fail_unless (update == FALSE);
-
-#if 0
-  /* 0 as relative end is fine too */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_CUR, 0, &update);
-  fail_unless (segment.stop == 100);
-
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_END, 0, &update);
-  fail_unless (segment.stop == 100);
-
-  /* -1 for end is fine too in all formats */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_TIME, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_SET, -1, &update);
-  fail_unless (segment.stop == -1);
-#endif
+  check_times (&segment, 60, 60, 20);
 
   /* set some duration, stop -1 END seeks will now work with the
    * duration, if the formats match */
@@ -545,1183 +527,10 @@
       GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_END, 100, &update);
   fail_unless (segment.stop == 200);
   fail_unless (segment.duration == 200);
-
-#if 0
-  /* add 300 to the start, this should be clamped to the duration */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_BYTES, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, 300, GST_SEEK_TYPE_END, 0, &update);
-  fail_unless (segment.start == 200);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.duration == 200);
-
-  /* subtract 300 from the start, this should be clamped to 0 */
-  gst_segment_do_seek (&segment, 2.0,
-      GST_FORMAT_BYTES, GST_SEEK_FLAG_NONE,
-      GST_SEEK_TYPE_CUR, -300, GST_SEEK_TYPE_END, 0, &update);
-  GST_DEBUG ("%" G_GINT64_FORMAT, segment.start);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.duration == 200);
-#endif
 }
 
 GST_END_TEST;
 
-#if 0
-/* mess with the segment structure in the bytes format */
-GST_START_TEST (segment_newsegment_open)
-{
-  GstSegment segment;
-
-  gst_segment_init (&segment, GST_FORMAT_BYTES);
-
-  /* time should also work for starting from 0 */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0, -1,
-      0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* we set stop but in the wrong format, stop stays open. */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_TIME, 0,
-      200, 0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-
-  /* update, nothing changes */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0, GST_FORMAT_BYTES, 0, -1,
-      0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-
-  /* update */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 100, -1, 100);
-
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 100);
-  fail_unless (segment.base == 100);
-  fail_unless (segment.position == 100);
-
-  /* last_stop 0, base does not change */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_BYTES, 0,
-      -1, 0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 100);
-
-  gst_segment_set_last_stop (&segment, GST_FORMAT_BYTES, 200);
-
-  fail_unless (segment.position == 200);
-
-  /* last_stop 200, base changes */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0, GST_FORMAT_BYTES, 0,
-      -1, 0);
-
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == -1);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 300);
-  fail_unless (segment.position == 0);
-}
-
-GST_END_TEST;
-
-
-/* mess with the segment structure in the bytes format */
-GST_START_TEST (segment_newsegment_closed)
-{
-  GstSegment segment;
-
-  gst_segment_init (&segment, GST_FORMAT_BYTES);
-
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_BYTES);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* assume we advanced to position 40 */
-  gst_segment_set_last_stop (&segment, GST_FORMAT_BYTES, 40);
-  fail_unless (segment.position == 40);
-
-  /* do an update to the start, last_stop is unchanged because it's bigger */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0, GST_FORMAT_BYTES, 20,
-      200, 20);
-
-  fail_unless (segment.start == 20);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 20);
-  fail_unless (segment.base == 20);
-  fail_unless (segment.position == 40);
-
-  /* do an update past our last_stop, it should be updated now */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0, GST_FORMAT_BYTES, 50,
-      300, 50);
-
-  fail_unless (segment.start == 50);
-  fail_unless (segment.stop == 300);
-  fail_unless (segment.time == 50);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 50);
-
-  /* and a new accumulated one */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 100, 400, 300);
-
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == 400);
-  fail_unless (segment.time == 300);
-  fail_unless (segment.base == 300);
-
-  /* and a new updated one */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 100, 500, 300);
-
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == 500);
-  fail_unless (segment.time == 300);
-  fail_unless (segment.base == 300);
-
-  /* and a new partially updated one */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_BYTES, 200, 500, 400);
-
-  fail_unless (segment.start == 200);
-  fail_unless (segment.stop == 500);
-  fail_unless (segment.time == 400);
-  fail_unless (segment.base == 400);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /*********************
-   * time shifted by 500
-   *********************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 500);
-
-  fail_unless (segment.base == 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 600);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /*********************
-   * time offset by 500
-   *********************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 500, 700, 0);
-
-  fail_unless (segment.base == 400);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-
-  /*************************************
-   * time offset by 500, shifted by 200
-   *************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  fail_unless (segment.base == 600);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime_rate)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal segment rate 2.0
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 2.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 150);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***************************************
-   * Normal segment rate 2.0, offset
-   ***************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 1.0,
-      GST_FORMAT_TIME, 100, 300, 0);
-
-  fail_unless (segment.base == 100);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 250);
-  fail_unless (result == 150);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  /***************************************
-   * Normal segment rate -1.0, offset
-   ***************************************/
-
-  /* buffers will arrive from 300 to 100 in a sink, stream time
-   * calculation is unaffected by the rate */
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 100, 300, 0);
-
-  fail_unless (segment.base == 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 100);
-
-  /***********************************************
-   * Normal segment rate -1.0, offset, time = 200
-   ***********************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 100, 300, 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime_applied_rate)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate -1.0
-   * This means the timestamps represents a stream going backwards
-   * starting from @time to 0.
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, -1.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == -1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* we count backwards from 200 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate 2.0
-   * This means the timestamps represents a stream at twice the
-   * normal rate
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 2.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 200);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  /* the stream prepresents a stream going twice as fast, the position 
-   * in the segment is therefore scaled by the applied rate */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate -2.0
-   * This means the timestamps represents a stream at twice the
-   * reverse rate
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, -2.0,
-      GST_FORMAT_TIME, 0, 200, 400);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == -2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 400);
-  /* previous segment lasted 200, rate of 2.0 was already applied */
-  fail_unless (segment.base == 400);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* we count backwards from 400 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 400);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Normal segment rate 1.0, applied rate -2.0
-   * This means the timestamps represents a stream at twice the
-   * reverse rate, start time cannot compensate the complete
-   * duration of the segment so we stop at 0
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, -2.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == -2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  fail_unless (segment.base == 600);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* we count backwards from 200 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 0);
-
-  /* clamp at 0 */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_streamtime_applied_rate_rate)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***********************************************************
-   * Segment rate 2.0, applied rate 2.0
-   * this means we have a double speed stream that we should
-   * speed up by a factor of 2.0 some more. the resulting
-   * stream will be played at four times the speed. 
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 2.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 2.0);
-  fail_unless (segment.applied_rate == 2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Segment rate 2.0, applied rate -1.0
-   * this means we have a reverse stream that we should
-   * speed up by a factor of 2.0
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, -1.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == 2.0);
-  fail_unless (segment.applied_rate == -1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  /* previous segment lasted 100 */
-  fail_unless (segment.base == 100);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Segment rate -1.0, applied rate -1.0
-   * this means we have a reverse stream that we should
-   * reverse to get the normal stream again.
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, -1.0,
-      GST_FORMAT_TIME, 0, 200, 200);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == -1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 200);
-  /* accumulated 100 of previous segment to make 200 */
-  fail_unless (segment.base == 200);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * Segment rate -1.0, applied rate -1.0
-   * this means we have a reverse stream that we should
-   * reverse to get the normal stream again.
-   ************************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 2.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 2.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 400);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* only applied rate affects our calculation of the stream time */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 300);
-
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 400);
-
-  /* outside of the segment */
-  result = gst_segment_to_stream_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_runningtime)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 0);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 0);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 100);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  /* at edge is exactly the segment duration */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 200);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 300);
-  fail_unless (result == -1);
-
-  /***********************************************************
-   * time shifted by 500, check if accumulation worked.
-   * Rate convert to twice the speed which means scaling down
-   * all positions by 2.0 in this segment.
-   * Then time argument is not used at all here.
-   ***********************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 2.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 500);
-
-  /* normal speed gives elapsed of 200 */
-  fail_unless (segment.base == 200);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 0);
-  fail_unless (result == 200);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 0);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 250);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 310);
-  fail_unless (result == -1);
-
-  /********************************************
-   * time offset by 500
-   * applied rate is not used for running time
-   ********************************************/
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 2.0,
-      GST_FORMAT_TIME, 500, 700, 0);
-
-  /* previous segment played at double speed gives elapsed time of
-   * 100 added to previous accum of 200 gives 300. */
-  fail_unless (segment.base == 300);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 300);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 400);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 600);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 500);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 700);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == -1);
-
-  /**********************************************************
-   * time offset by 500, shifted by 200
-   * Negative rate makes the running time go backwards 
-   * relative to the segment stop position. again time
-   * is ignored.
-   **********************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  fail_unless (segment.base == 500);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 700);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 600);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 600);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 500);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 700);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-
-  /**********************************************************
-   * time offset by 500, shifted by 200
-   * Negative rate makes the running time go backwards at
-   * twice speed relative to the segment stop position. again 
-   * time is ignored.
-   **********************************************************/
-  gst_segment_set_newsegment (&segment, FALSE, -2.0, -2.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  fail_unless (segment.base == 700);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  /* before segment is invalid */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 400);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == -1);
-
-  /* total scaled segment time is 100, accum is 700, so we get 800 */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 500);
-  fail_unless (result == 800);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 500);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 600);
-  fail_unless (result == 750);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 600);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 700);
-  fail_unless (result == 700);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 700);
-
-  /* outside of the segment */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 900);
-  fail_unless (result == -1);
-
-  /* see if negative rate closed segment correctly */
-  gst_segment_set_newsegment (&segment, FALSE, -2.0, -1.0,
-      GST_FORMAT_TIME, 500, 700, 200);
-
-  /* previous segment lasted 100, and was at 700 so we should get 800 */
-  fail_unless (segment.base == 800);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, 800);
-  fail_unless (result == 700);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_accum)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal reverse segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  /* update segment, this accumulates 50 from the previous segment. */
-  gst_segment_set_newsegment (&segment, TRUE, -2.0, 1.0,
-      GST_FORMAT_TIME, 0, 150, 0);
-
-  fail_unless (segment.rate == -2.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 150);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 150);
-  fail_unless (segment.duration == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  /* 50 accumulated + 50 / 2 */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 75);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  /* update segment, this does not accumulate anything. */
-  gst_segment_set_newsegment (&segment, TRUE, 1.0, 1.0,
-      GST_FORMAT_TIME, 100, 200, 100);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 100);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 100);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 150);
-  fail_unless (segment.duration == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 100);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 100);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 100);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-}
-
-GST_END_TEST;
-
-/* mess with the segment structure in the time format */
-GST_START_TEST (segment_newsegment_accum2)
-{
-  GstSegment segment;
-  guint64 result;
-
-  gst_segment_init (&segment, GST_FORMAT_TIME);
-
-  /***************************
-   * Normal reverse segment
-   ***************************/
-  gst_segment_set_newsegment (&segment, FALSE, -1.0, 1.0,
-      GST_FORMAT_TIME, 0, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 0);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 0);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  /* close segment, this accumulates nothing. */
-  gst_segment_set_newsegment (&segment, TRUE, -1.0, 1.0,
-      GST_FORMAT_TIME, 150, 200, 0);
-
-  fail_unless (segment.rate == -1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 150);
-  fail_unless (segment.stop == 200);
-  fail_unless (segment.time == 0);
-  fail_unless (segment.base == 0);
-  fail_unless (segment.position == 200);
-  fail_unless (segment.duration == -1);
-
-  /* new segment, this accumulates 50. */
-  gst_segment_set_newsegment (&segment, FALSE, 1.0, 1.0,
-      GST_FORMAT_TIME, 150, 300, 150);
-
-  fail_unless (segment.rate == 1.0);
-  fail_unless (segment.applied_rate == 1.0);
-  fail_unless (segment.format == GST_FORMAT_TIME);
-  fail_unless (segment.flags == 0);
-  fail_unless (segment.start == 150);
-  fail_unless (segment.stop == 300);
-  fail_unless (segment.time == 150);
-  fail_unless (segment.base == 50);
-  fail_unless (segment.position == 150);
-  fail_unless (segment.duration == -1);
-
-  /* invalid time gives invalid result */
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, -1);
-  fail_unless (result == -1);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 150);
-  fail_unless (result == 50);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 150);
-
-  result = gst_segment_to_running_time (&segment, GST_FORMAT_TIME, 200);
-  fail_unless (result == 100);
-  result = gst_segment_to_position (&segment, GST_FORMAT_TIME, result);
-  fail_unless (result == 200);
-}
-
-GST_END_TEST;
-#endif
-
 GST_START_TEST (segment_copy)
 {
   GstSegment *copy;
@@ -1748,6 +557,63 @@
 
 GST_END_TEST;
 
+/* mess with the segment structure in the bytes format */
+GST_START_TEST (segment_seek_noupdate)
+{
+  GstSegment segment;
+  gboolean update;
+
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+
+  segment.start = 0;
+  segment.position = 50;
+  segment.stop = 200;
+  segment.time = 0;
+
+  /* doesn't change anything */
+  gst_segment_do_seek (&segment, 1.0,
+      GST_FORMAT_TIME,
+      GST_SEEK_FLAG_NONE,
+      GST_SEEK_TYPE_NONE, 0, GST_SEEK_TYPE_NONE, 0, &update);
+  fail_unless (update == FALSE);
+  fail_unless (segment.format == GST_FORMAT_TIME);
+  fail_unless (segment.start == 0);
+  fail_unless (segment.stop == 200);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 50);
+  fail_unless (segment.offset == 50);
+
+  gst_segment_do_seek (&segment, 2.0,
+      GST_FORMAT_TIME,
+      GST_SEEK_FLAG_NONE,
+      GST_SEEK_TYPE_NONE, 0, GST_SEEK_TYPE_NONE, 0, &update);
+  fail_unless (update == FALSE);
+  fail_unless (segment.format == GST_FORMAT_TIME);
+  fail_unless (segment.start == 0);
+  fail_unless (segment.stop == 200);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 50);
+  fail_unless_equals_int (segment.offset, 50);
+
+  gst_segment_do_seek (&segment, 1.0,
+      GST_FORMAT_TIME,
+      GST_SEEK_FLAG_FLUSH,
+      GST_SEEK_TYPE_NONE, 0, GST_SEEK_TYPE_NONE, 0, &update);
+  fail_unless (update == FALSE);
+  fail_unless (segment.format == GST_FORMAT_TIME);
+  fail_unless (segment.start == 0);
+  fail_unless (segment.stop == 200);
+  fail_unless (segment.time == 0);
+  fail_unless (segment.position == 50);
+  fail_unless (segment.base == 0);
+  fail_unless (segment.offset == 50);
+}
+
+GST_END_TEST;
+
+
 static Suite *
 gst_segment_suite (void)
 {
@@ -1761,18 +627,8 @@
   tcase_add_test (tc_chain, segment_seek_size);
   tcase_add_test (tc_chain, segment_seek_reverse);
   tcase_add_test (tc_chain, segment_seek_rate);
-#if 0
-  tcase_add_test (tc_chain, segment_newsegment_open);
-  tcase_add_test (tc_chain, segment_newsegment_closed);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime_rate);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime_applied_rate);
-  tcase_add_test (tc_chain, segment_newsegment_streamtime_applied_rate_rate);
-  tcase_add_test (tc_chain, segment_newsegment_runningtime);
-  tcase_add_test (tc_chain, segment_newsegment_accum);
-  tcase_add_test (tc_chain, segment_newsegment_accum2);
-#endif
   tcase_add_test (tc_chain, segment_copy);
+  tcase_add_test (tc_chain, segment_seek_noupdate);
 
   return s;
 }
diff --git a/tests/check/gst/gststructure.c b/tests/check/gst/gststructure.c
index 3428d17..9150872 100644
--- a/tests/check/gst/gststructure.c
+++ b/tests/check/gst/gststructure.c
@@ -233,7 +233,7 @@
   GstStructure *structure;
   const gchar *s;
 
-  s = "GstEventSeek, rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, flags=(GstSeekFlags)GST_SEEK_FLAGS_NONE, cur_type=(GstSeekType)GST_SEEK_TYPE_SET, cur=(gint64)1000000000, stop_type=(GstSeekType)GST_SEEK_TYPE_NONE, stop=(gint64)0";
+  s = "GstEventSeek, rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, flags=(GstSeekFlags)GST_SEEK_FLAGS_NONE, start_type=(GstSeekType)GST_SEEK_TYPE_SET, start=(gint64)1000000000, stop_type=(GstSeekType)GST_SEEK_TYPE_NONE, stop=(gint64)0";
   structure = gst_structure_from_string (s, NULL);
   fail_if (structure == NULL, "Could not get structure from string %s", s);
   /* FIXME: TODO: add checks for correct serialization of members ? */
diff --git a/tests/check/gst/gstsystemclock.c b/tests/check/gst/gstsystemclock.c
index 5c9304c..640ed1f 100644
--- a/tests/check/gst/gstsystemclock.c
+++ b/tests/check/gst/gstsystemclock.c
@@ -150,7 +150,7 @@
 
   id = gst_clock_new_single_shot_id (clock, base + 2 * TIME_UNIT);
   GST_DEBUG ("waiting one second async id %p", id);
-  result = gst_clock_id_wait_async (id, ok_callback, NULL);
+  result = gst_clock_id_wait_async (id, ok_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
   gst_clock_id_unschedule (id);
@@ -158,7 +158,7 @@
 
   id = gst_clock_new_single_shot_id (clock, base + 5 * TIME_UNIT);
   GST_DEBUG ("waiting one second async, with cancel on id %p", id);
-  result = gst_clock_id_wait_async (id, error_callback, NULL);
+  result = gst_clock_id_wait_async (id, error_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
   GST_DEBUG ("cancel id %p after half a time unit", id);
@@ -170,11 +170,11 @@
   id = gst_clock_new_single_shot_id (clock, base + 5 * TIME_UNIT);
   id2 = gst_clock_new_single_shot_id (clock, base + 6 * TIME_UNIT);
   GST_DEBUG ("waiting id %p", id);
-  result = gst_clock_id_wait_async (id, ok_callback, NULL);
+  result = gst_clock_id_wait_async (id, ok_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
 
   GST_DEBUG ("waiting id %p", id2);
-  result = gst_clock_id_wait_async (id2, error_callback, NULL);
+  result = gst_clock_id_wait_async (id2, error_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
   GST_DEBUG ("cancel id %p after half a time unit", id2);
@@ -221,12 +221,12 @@
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
 
   GST_DEBUG ("waiting for the next async %p", id);
-  result = gst_clock_id_wait_async (id, ok_callback, NULL);
+  result = gst_clock_id_wait_async (id, ok_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
 
   GST_DEBUG ("waiting some more for the next async %p", id);
-  result = gst_clock_id_wait_async (id, ok_callback, NULL);
+  result = gst_clock_id_wait_async (id, ok_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
 
@@ -234,7 +234,7 @@
   fail_unless (id2 != NULL, "Could not create second periodic id");
 
   GST_DEBUG ("waiting some more for another async %p", id2);
-  result = gst_clock_id_wait_async (id2, ok_callback, NULL);
+  result = gst_clock_id_wait_async (id2, ok_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
 
@@ -242,7 +242,7 @@
   gst_clock_id_unschedule (id);
 
   /* entry cannot be used again */
-  result = gst_clock_id_wait_async (id, error_callback, NULL);
+  result = gst_clock_id_wait_async (id, error_callback, NULL, NULL);
   fail_unless (result == GST_CLOCK_UNSCHEDULED,
       "Waiting did not return UNSCHEDULED");
   result = gst_clock_id_wait (id, NULL);
@@ -278,10 +278,10 @@
 
   id1 = gst_clock_new_single_shot_id (clock, base + 2 * TIME_UNIT);
   id2 = gst_clock_new_single_shot_id (clock, base + 1 * TIME_UNIT);
-  result = gst_clock_id_wait_async (id1, store_callback, &cb_list);
+  result = gst_clock_id_wait_async (id1, store_callback, &cb_list, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / (2 * 1000));
-  result = gst_clock_id_wait_async (id2, store_callback, &cb_list);
+  result = gst_clock_id_wait_async (id2, store_callback, &cb_list, NULL);
   fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
   g_usleep (TIME_UNIT / 1000);
   /* at this point at least one of the timers should have timed out */
@@ -379,7 +379,7 @@
     g_mutex_unlock (td.lock);
 
     result = gst_clock_id_wait_async (td.async_id,
-        test_async_sync_interaction_cb, &td);
+        test_async_sync_interaction_cb, &td, NULL);
     fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
 
     /* Wait 10ms, then unschedule async_id and schedule async_id2 */
@@ -388,13 +388,13 @@
         "Waiting did not return OK or EARLY");
     /* async_id2 is earlier than async_id - should become head of the queue */
     result = gst_clock_id_wait_async (td.async_id2,
-        test_async_sync_interaction_cb, &td);
+        test_async_sync_interaction_cb, &td, NULL);
     fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
     gst_clock_id_unschedule (td.async_id);
 
     /* async_id3 is earlier than async_id2 - should become head of the queue */
     result = gst_clock_id_wait_async (td.async_id3,
-        test_async_sync_interaction_cb, &td);
+        test_async_sync_interaction_cb, &td, NULL);
     fail_unless (result == GST_CLOCK_OK, "Waiting did not return OK");
 
     /* While this is sleeping, the async3 id should fire and unschedule it */
@@ -444,7 +444,8 @@
   clock_id_async =
       gst_clock_new_periodic_id (clock, base + TIME_UNIT, TIME_UNIT);
   result =
-      gst_clock_id_wait_async (clock_id_async, notify_callback, &got_callback);
+      gst_clock_id_wait_async (clock_id_async, notify_callback, &got_callback,
+      NULL);
   fail_unless (result == GST_CLOCK_OK, "Async waiting did not return OK");
 
   result = gst_clock_id_wait (clock_id, NULL);
@@ -544,7 +545,7 @@
   g_usleep (G_USEC_PER_SEC / 2);
 
   /* start scheduling the entry */
-  gst_clock_id_wait_async (id, mixed_async_cb, NULL);
+  gst_clock_id_wait_async (id, mixed_async_cb, NULL, NULL);
 
   /* wait for thread to finish */
   g_thread_join (thread);
@@ -609,7 +610,7 @@
   g_mutex_lock (af_lock);
   clockid = gst_clock_new_periodic_id (master,
       gst_clock_get_time (master), gst_clock_get_timeout (slave));
-  gst_clock_id_wait_async_full (clockid,
+  gst_clock_id_wait_async (clockid,
       (GstClockCallback) test_async_full_slave_callback,
       gst_object_ref (slave), (GDestroyNotify) gst_object_unref);
 
diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c
index 9dcca2d..1e52a22 100644
--- a/tests/check/gst/gsttag.c
+++ b/tests/check/gst/gsttag.c
@@ -345,36 +345,48 @@
 {
   GstTagList *tags;
   GstBuffer *buf1, *buf2;
+  GstSample *s1, *s2;
 
   tags = gst_tag_list_new_empty ();
+
   buf1 = gst_buffer_new_and_alloc (222);
+  s1 = gst_sample_new (buf1, NULL, NULL, NULL);
+  gst_buffer_unref (buf1);
+
   buf2 = gst_buffer_new_and_alloc (100);
-  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, buf1,
-      GST_TAG_PREVIEW_IMAGE, buf2, NULL);
-  gst_buffer_unref (buf1);
+  s2 = gst_sample_new (buf2, NULL, NULL, NULL);
   gst_buffer_unref (buf2);
 
-  buf1 = buf2 = NULL;
-  fail_if (!gst_tag_list_get_buffer (tags, GST_TAG_IMAGE, &buf1));
-  gst_buffer_unref (buf1);
-  fail_if (!gst_tag_list_get_buffer (tags, GST_TAG_PREVIEW_IMAGE, &buf2));
-  gst_buffer_unref (buf2);
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, s1,
+      GST_TAG_PREVIEW_IMAGE, s2, NULL);
 
-  fail_if (gst_tag_list_get_buffer_index (tags, GST_TAG_IMAGE, 1, &buf1));
-  fail_if (gst_tag_list_get_buffer_index (tags, GST_TAG_IMAGE, 2, &buf1));
-  fail_if (gst_tag_list_get_buffer_index (tags, GST_TAG_PREVIEW_IMAGE, 1,
-          &buf1));
-  fail_if (gst_tag_list_get_buffer_index (tags, GST_TAG_PREVIEW_IMAGE, 2,
-          &buf1));
+  gst_sample_unref (s1);
+  gst_sample_unref (s2);
+  s1 = s2 = NULL;
 
-  fail_if (!gst_tag_list_get_buffer_index (tags, GST_TAG_IMAGE, 0, &buf1));
-  fail_if (!gst_tag_list_get_buffer_index (tags, GST_TAG_PREVIEW_IMAGE, 0,
-          &buf2));
+  fail_if (!gst_tag_list_get_sample (tags, GST_TAG_IMAGE, &s1));
+  fail_unless (gst_sample_get_buffer (s1) == buf1);
+  gst_sample_unref (s1);
+
+  fail_if (!gst_tag_list_get_sample (tags, GST_TAG_PREVIEW_IMAGE, &s2));
+  fail_unless (gst_sample_get_buffer (s2) == buf2);
+  gst_sample_unref (s2);
+
+  fail_if (gst_tag_list_get_sample_index (tags, GST_TAG_IMAGE, 1, &s1));
+  fail_if (gst_tag_list_get_sample_index (tags, GST_TAG_IMAGE, 2, &s1));
+  fail_if (gst_tag_list_get_sample_index (tags, GST_TAG_PREVIEW_IMAGE, 1, &s1));
+  fail_if (gst_tag_list_get_sample_index (tags, GST_TAG_PREVIEW_IMAGE, 2, &s1));
+
+  fail_if (!gst_tag_list_get_sample_index (tags, GST_TAG_IMAGE, 0, &s1));
+  fail_if (!gst_tag_list_get_sample_index (tags, GST_TAG_PREVIEW_IMAGE, 0,
+          &s2));
+  buf1 = gst_sample_get_buffer (s1);
   fail_unless_equals_int (gst_buffer_get_size (buf1), 222);
+  buf2 = gst_sample_get_buffer (s2);
   fail_unless_equals_int (gst_buffer_get_size (buf2), 100);
 
-  gst_buffer_unref (buf1);
-  gst_buffer_unref (buf2);
+  gst_sample_unref (s1);
+  gst_sample_unref (s2);
 
   gst_tag_list_unref (tags);
 }
@@ -452,6 +464,8 @@
 GST_START_TEST (test_equal)
 {
   GstTagList *tags, *tags2;
+  GstSample *sample1, *sample2, *sample11;
+  GstBuffer *buf;
 
   tags = gst_tag_list_new_empty ();
   gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
@@ -482,6 +496,48 @@
 
   gst_tag_list_unref (tags);
   gst_tag_list_unref (tags2);
+
+  /* samples */
+  buf = gst_buffer_new_wrapped (g_strdup ("test 1-2-3"), 10);
+  sample1 = gst_sample_new (buf, NULL, NULL, NULL);
+  gst_buffer_unref (buf);
+
+  buf = gst_buffer_new_wrapped (g_strdup ("test 1-2-3"), 10);
+  sample11 = gst_sample_new (buf, NULL, NULL, NULL);
+  gst_buffer_unref (buf);
+
+  buf = gst_buffer_new_wrapped (g_strdup ("test 2-3-4-5"), 12);
+  sample2 = gst_sample_new (buf, NULL, NULL, NULL);
+  gst_buffer_unref (buf);
+
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, sample1, NULL);
+
+  tags2 = gst_tag_list_new_empty ();
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+
+  /* sample sample, should be very equal now */
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, sample1, NULL);
+  fail_unless (gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_unref (tags2);
+
+  /* same buffer content, but different buffer instances, still rather equal */
+  tags2 = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, sample11, NULL);
+  fail_unless (gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_unref (tags2);
+
+  /* different buffer content, should not be equal */
+  tags2 = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags2, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, sample2, NULL);
+  fail_unless (!gst_tag_list_is_equal (tags2, tags));
+  gst_tag_list_unref (tags2);
+
+  gst_tag_list_unref (tags);
+
+  gst_sample_unref (sample1);
+  gst_sample_unref (sample11);
+  gst_sample_unref (sample2);
 }
 
 GST_END_TEST;
diff --git a/tests/check/gst/gsttask.c b/tests/check/gst/gsttask.c
index 824f926..699219f 100644
--- a/tests/check/gst/gsttask.c
+++ b/tests/check/gst/gsttask.c
@@ -46,7 +46,7 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_new (task_func2, &t);
+  t = gst_task_new (task_func2, &t, NULL);
   fail_if (t == NULL);
 
   g_rec_mutex_init (&task_mutex);
@@ -90,7 +90,7 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_new (task_func, NULL);
+  t = gst_task_new (task_func, NULL, NULL);
   fail_if (t == NULL);
 
   g_rec_mutex_init (&task_mutex);
@@ -128,7 +128,7 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_new (task_func, NULL);
+  t = gst_task_new (task_func, NULL, NULL);
   fail_if (t == NULL);
 
   g_rec_mutex_init (&task_mutex);
@@ -156,7 +156,7 @@
   GstTask *t;
   gboolean ret;
 
-  t = gst_task_new (task_func, NULL);
+  t = gst_task_new (task_func, NULL, NULL);
   fail_if (t == NULL);
 
   /* stop should be possible without lock */
@@ -182,7 +182,7 @@
 {
   GstTask *t;
 
-  t = gst_task_new (task_func, NULL);
+  t = gst_task_new (task_func, NULL, NULL);
   fail_if (t == NULL);
 
   gst_object_unref (t);
diff --git a/tests/check/gst/gsttoc.c b/tests/check/gst/gsttoc.c
index 5e936db..4a03cd7 100644
--- a/tests/check/gst/gsttoc.c
+++ b/tests/check/gst/gsttoc.c
@@ -46,163 +46,138 @@
 #define TOC_TAG         "TocTag"
 
 #define TEST_UID        "129537542"
-#define INFO_NAME	"gst-toc-check"
-#define INFO_FIELD      "info-test"
-#define INFO_TEXT_EN    "info-text-entry"
-#define INFO_TEXT_TOC   "info-text-toc"
 
-#define CHECK_TOC_ENTRY(entry_c,type_c,uid_c)                            \
-{                                                                        \
-  gchar *tag_c;                                                          \
-  const GValue *val;                                                     \
-  GstStructure *struct_c;                                                \
-                                                                         \
-  fail_unless_equals_string (entry_c->uid, uid_c);                       \
-  fail_unless (entry_c->type == type_c);                                 \
-  fail_unless (entry_c->tags != NULL);                                   \
-  fail_unless (entry_c->pads == NULL);                                   \
-                                                                         \
-  fail_unless (entry_c->info != NULL);                                   \
-  gst_structure_get (entry_c->info, INFO_NAME, GST_TYPE_STRUCTURE,       \
-      &struct_c, NULL);                                                  \
-  fail_unless (struct_c != NULL);                                        \
-  val = gst_structure_get_value (struct_c, INFO_FIELD);                  \
-  fail_unless (val != NULL);                                             \
-  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_EN);    \
-                                                                         \
-  fail_unless (gst_tag_list_get_string (entry_c->tags,                   \
-      GST_TAG_TITLE, &tag_c));                                           \
-  fail_unless_equals_string (tag_c, ENTRY_TAG);                          \
-  g_free (tag_c);                                                        \
-  gst_structure_free (struct_c);                                         \
+static void
+CHECK_TOC_ENTRY (GstTocEntry * entry_c, GstTocEntryType type_c,
+    const gchar * uid_c)
+{
+  GstTagList *tags;
+  gchar *tag_c;
+
+  fail_unless_equals_string (gst_toc_entry_get_uid (entry_c), uid_c);
+  fail_unless (gst_toc_entry_get_entry_type (entry_c) == type_c);
+
+  tags = gst_toc_entry_get_tags (entry_c);
+  fail_unless (tags != NULL);
+  fail_unless (gst_tag_list_get_string (tags, GST_TAG_TITLE, &tag_c));
+  fail_unless_equals_string (tag_c, ENTRY_TAG);
+  g_free (tag_c);
 }
 
-#define CHECK_TOC(toc_t)                                                 \
-{                                                                        \
-  GstTocEntry *entry_t, *subentry_t;                                     \
-  gchar *tag_t;                                                          \
-  const GValue *val;                                                     \
-  GstStructure *struct_toc;                                              \
-                                                                         \
-  /* check TOC */                                                        \
-  fail_unless (g_list_length (toc_t->entries) == 2);                     \
-  fail_unless (toc_t->tags != NULL);                                     \
-  fail_unless (gst_tag_list_get_string (toc_t->tags,                     \
-      GST_TAG_TITLE, &tag_t));                                           \
-  fail_unless_equals_string (tag_t, TOC_TAG);                            \
-  g_free (tag_t);                                                        \
-                                                                         \
-  fail_unless (toc_t->info != NULL);                                     \
-  gst_structure_get (toc_t->info, INFO_NAME, GST_TYPE_STRUCTURE,         \
-      &struct_toc, NULL);                                                \
-  fail_unless (struct_toc != NULL);                                      \
-  val = gst_structure_get_value (struct_toc, INFO_FIELD);                \
-  fail_unless (val != NULL);                                             \
-  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_TOC);   \
-  gst_structure_free (struct_toc);                                       \
-                                                                         \
-  /* check edition1 */                                                   \
-  entry_t = g_list_nth_data (toc_t->entries, 0);                         \
-  fail_if (entry_t == NULL);                                             \
-  fail_unless (g_list_length (entry_t->subentries) == 2);                \
-  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);      \
-  /* check chapter1 */                                                   \
-  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);   \
-  /* check chapter2 */                                                   \
-  subentry_t = g_list_nth_data (entry_t->subentries, 1);                 \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);   \
-  /* check edition2 */                                                   \
-  entry_t = g_list_nth_data (toc_t->entries, 1);                         \
-  fail_if (entry_t == NULL);                                             \
-  fail_unless (g_list_length (entry_t->subentries) == 1);                \
-  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);      \
-  /* check chapter3 */                                                   \
-  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 1);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);   \
-  /* check subchapter1 */                                                \
-  subentry_t = g_list_nth_data (subentry_t->subentries, 0);              \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);  \
+static void
+CHECK_TOC (GstToc * toc_t)
+{
+  GstTocEntry *entry_t, *subentry_t;
+  GstTagList *tags;
+  GList *entries, *subentries, *subsubentries;
+  gchar *tag_t;
+
+  /* dump TOC */
+  gst_toc_dump (toc_t);
+
+  /* check TOC */
+  tags = gst_toc_get_tags (toc_t);
+  fail_unless (tags != NULL);
+  fail_unless (gst_tag_list_get_string (tags, GST_TAG_TITLE, &tag_t));
+  fail_unless_equals_string (tag_t, TOC_TAG);
+  g_free (tag_t);
+
+  entries = gst_toc_get_entries (toc_t);
+  fail_unless_equals_int (g_list_length (entries), 2);
+
+  /* check edition1 */
+  entry_t = g_list_nth_data (entries, 0);
+  fail_if (entry_t == NULL);
+  subentries = gst_toc_entry_get_sub_entries (entry_t);
+  fail_unless_equals_int (g_list_length (subentries), 2);
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
+  /* check chapter1 */
+  subentry_t = g_list_nth_data (subentries, 0);
+  fail_if (subentry_t == NULL);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 0);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
+  /* check chapter2 */
+  subentry_t = g_list_nth_data (subentries, 1);
+  fail_if (subentry_t == NULL);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 0);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
+
+  /* check edition2 */
+  entry_t = g_list_nth_data (entries, 1);
+  fail_if (entry_t == NULL);
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
+  subentries = gst_toc_entry_get_sub_entries (entry_t);
+  fail_unless_equals_int (g_list_length (subentries), 1);
+  /* check chapter3 */
+  subentry_t = g_list_nth_data (subentries, 0);
+  fail_if (subentry_t == NULL);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 1);
+  /* check subchapter1 */
+  subentry_t = g_list_nth_data (subsubentries, 0);
+  fail_if (subentry_t == NULL);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 0);
 }
 
+/* This whole test is a bit pointless now that we just stuff a ref of
+ * the original TOC into the message/query/event */
 GST_START_TEST (test_serializing)
 {
-  GstStructure *structure;
   GstToc *toc, *test_toc = NULL;
   GstTocEntry *ed, *ch, *subch;
+  GstTagList *tags;
   GstEvent *event;
   GstMessage *message;
-  GstQuery *query;
   gboolean updated;
   gchar *uid;
   gint64 start = -1, stop = -1;
 
-  toc = gst_toc_new ();
+  toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+  fail_unless_equals_int (gst_toc_get_scope (toc), GST_TOC_SCOPE_GLOBAL);
   fail_if (toc == NULL);
-  gst_tag_list_add (toc->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      TOC_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_TOC,
-      NULL);
-  gst_structure_set (toc->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, TOC_TAG, NULL);
+  gst_toc_set_tags (toc, tags);
 
   /* create edition1 */
   ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
   fail_if (ed == NULL);
-  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ed, tags);
 
   CHECK_TOC_ENTRY (ed, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
 
   /* append chapter1 to edition1 */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
   fail_if (ch == NULL);
-  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ch, tags);
 
   CHECK_TOC_ENTRY (ch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
 
-  ed->subentries = g_list_append (ed->subentries, ch);
-  fail_unless (g_list_length (ed->subentries) == 1);
+  gst_toc_entry_append_sub_entry (ed, ch);
+  fail_unless_equals_int (g_list_length (gst_toc_entry_get_sub_entries (ed)),
+      1);
 
   /* append chapter2 to edition1 */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
   fail_if (ch == NULL);
-  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ch, tags);
 
   CHECK_TOC_ENTRY (ch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
 
-  ed->subentries = g_list_append (ed->subentries, ch);
-  fail_unless (g_list_length (ed->subentries) == 2);
+  gst_toc_entry_append_sub_entry (ed, ch);
+  fail_unless_equals_int (g_list_length (gst_toc_entry_get_sub_entries (ed)),
+      2);
 
   /* append edition1 to the TOC */
-  toc->entries = g_list_append (toc->entries, ed);
-  fail_unless (g_list_length (toc->entries) == 1);
+  gst_toc_append_entry (toc, ed);
+  fail_unless_equals_int (g_list_length (gst_toc_get_entries (toc)), 1);
 
   /* test gst_toc_entry_find() */
   ed = NULL;
@@ -213,68 +188,58 @@
   CHECK_TOC_ENTRY (ed, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
 
   /* test info GstStructure */
-  gst_toc_entry_set_start_stop (ch, 100, 1000);
-  fail_if (!gst_toc_entry_get_start_stop (ch, &start, &stop));
+  gst_toc_entry_set_start_stop_times (ch, 100, 1000);
+  fail_if (!gst_toc_entry_get_start_stop_times (ch, &start, &stop));
   fail_unless (start == 100);
   fail_unless (stop == 1000);
 
   /* create edition2 */
   ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
   fail_if (ed == NULL);
-  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ed, tags);
 
   CHECK_TOC_ENTRY (ed, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
 
   /* create chapter3 */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
   fail_if (ch == NULL);
-  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ch, tags);
 
   CHECK_TOC_ENTRY (ch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
 
   /* create subchapter1 */
   subch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
   fail_if (subch == NULL);
-  gst_tag_list_add (subch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (subch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure,
-      NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new (GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (subch, tags);
 
   CHECK_TOC_ENTRY (subch, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
 
   /* append subchapter1 to chapter3 */
-  ch->subentries = g_list_append (ch->subentries, subch);
-  fail_unless (g_list_length (ch->subentries) == 1);
+  gst_toc_entry_append_sub_entry (ch, subch);
+  fail_unless_equals_int (g_list_length (gst_toc_entry_get_sub_entries (ch)),
+      1);
 
   /* append chapter3 to edition2 */
-  ed->subentries = g_list_append (ed->subentries, ch);
-  fail_unless (g_list_length (ed->subentries) == 1);
+  gst_toc_entry_append_sub_entry (ed, ch);
+  fail_unless_equals_int (g_list_length (gst_toc_entry_get_sub_entries (ed)),
+      1);
 
   /* finally append edition2 to the TOC */
-  toc->entries = g_list_append (toc->entries, ed);
-  fail_unless (g_list_length (toc->entries) == 2);
+  gst_toc_append_entry (toc, ed);
+  fail_unless_equals_int (g_list_length (gst_toc_get_entries (toc)), 2);
+
+  GST_INFO ("check original TOC");
+  CHECK_TOC (toc);
 
   /* test gst_toc_copy() */
   test_toc = gst_toc_copy (toc);
   fail_if (test_toc == NULL);
+  GST_INFO ("check TOC copy");
   CHECK_TOC (test_toc);
-  gst_toc_free (test_toc);
+  gst_toc_unref (test_toc);
   test_toc = NULL;
 
   /* check TOC event handling */
@@ -286,8 +251,9 @@
   gst_event_parse_toc (event, &test_toc, &updated);
   fail_unless (updated == TRUE);
   fail_if (test_toc == NULL);
+  GST_INFO ("check TOC parsed from event");
   CHECK_TOC (test_toc);
-  gst_toc_free (test_toc);
+  gst_toc_unref (test_toc);
   gst_event_unref (event);
   updated = FALSE;
   test_toc = NULL;
@@ -302,7 +268,7 @@
   fail_unless (updated == TRUE);
   fail_if (test_toc == NULL);
   CHECK_TOC (test_toc);
-  gst_toc_free (test_toc);
+  gst_toc_unref (test_toc);
   gst_message_unref (message);
   test_toc = NULL;
 
@@ -317,21 +283,9 @@
   gst_event_unref (event);
   g_free (uid);
 
-  /* check TOC query handling */
-  query = gst_query_new_toc ();
-  fail_if (query == NULL);
-  gst_query_set_toc (query, toc, TEST_UID);
-  fail_unless (query->type == GST_QUERY_TOC);
-  ASSERT_MINI_OBJECT_REFCOUNT (GST_MINI_OBJECT (query), "GstQuery", 1);
-
-  gst_query_parse_toc (query, &test_toc, &uid);
-  fail_unless_equals_string (uid, TEST_UID);
-  fail_if (test_toc == NULL);
-  CHECK_TOC (test_toc);
-  gst_toc_free (test_toc);
-  gst_query_unref (query);
-  g_free (uid);
-
+  /* FIXME: toc validation / verification should probably be done on the fly
+   * while creating it, and not when putting the toc in events or messages ? */
+#if 0
   /* that's wrong code, we should fail */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH4);
   toc->entries = g_list_prepend (toc->entries, ch);
@@ -339,13 +293,14 @@
 
   /* and yet another one */
   toc->entries = g_list_remove (toc->entries, ch);
-  gst_toc_entry_free (ch);
+  gst_toc_entry_unref (ch);
   ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED3);
   ch = (GstTocEntry *) (toc->entries->data);
   ch->subentries = g_list_prepend (ch->subentries, ed);
   ASSERT_WARNING (message = gst_message_new_toc (NULL, toc, TRUE));
+#endif
 
-  gst_toc_free (toc);
+  gst_toc_unref (toc);
 }
 
 GST_END_TEST;
diff --git a/tests/check/gst/gsttocsetter.c b/tests/check/gst/gsttocsetter.c
index 3fefcdc..4cdd3bf 100644
--- a/tests/check/gst/gsttocsetter.c
+++ b/tests/check/gst/gsttocsetter.c
@@ -34,91 +34,80 @@
 
 #define ENTRY_TAG       "EntryTag"
 #define TOC_TAG         "TocTag"
-#define INFO_NAME       "gst-toc-setter-check"
-#define INFO_FIELD      "info-test"
-#define INFO_TEXT_EN    "info-text-entry"
-#define INFO_TEXT_TOC   "info-text-toc"
 
-#define CHECK_TOC_ENTRY(entry_c,type_c,uid_c)                            \
-{                                                                        \
-  gchar *tag_c;                                                          \
-  const GValue *val;                                                     \
-  GstStructure *struct_c;                                                \
-                                                                         \
-  fail_unless_equals_string (entry_c->uid, uid_c);                       \
-  fail_unless (entry_c->type == type_c);                                 \
-  fail_unless (entry_c->tags != NULL);                                   \
-  fail_unless (entry_c->pads == NULL);                                   \
-                                                                         \
-  fail_unless (entry_c->info != NULL);                                   \
-  gst_structure_get (entry_c->info, INFO_NAME, GST_TYPE_STRUCTURE,       \
-      &struct_c, NULL);                                                  \
-  fail_unless (struct_c != NULL);                                        \
-  val = gst_structure_get_value (struct_c, INFO_FIELD);             \
-  fail_unless (val != NULL);                                             \
-  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_EN);    \
-                                                                         \
-  fail_unless (gst_tag_list_get_string (entry_c->tags,                   \
-               GST_TAG_TITLE, &tag_c));                                  \
-  fail_unless_equals_string (tag_c, ENTRY_TAG);                          \
-  g_free (tag_c);                                                        \
-  gst_structure_free (struct_c);                                         \
+static void
+CHECK_TOC_ENTRY (GstTocEntry * entry_c, GstTocEntryType type_c,
+    const gchar * uid_c)
+{
+  GstTagList *tags;
+  gchar *tag_c;
+
+  fail_unless_equals_string (gst_toc_entry_get_uid (entry_c), uid_c);
+  fail_unless (gst_toc_entry_get_entry_type (entry_c) == type_c);
+
+  tags = gst_toc_entry_get_tags (entry_c);
+  fail_unless (tags != NULL);
+  fail_unless (gst_tag_list_get_string (tags, GST_TAG_TITLE, &tag_c));
+  fail_unless_equals_string (tag_c, ENTRY_TAG);
+  g_free (tag_c);
 }
 
-#define CHECK_TOC(toc_t)                                                 \
-{                                                                        \
-  GstTocEntry *entry_t, *subentry_t;                                     \
-  gchar *tag_t;                                                          \
-  const GValue *val;                                                     \
-  GstStructure *struct_toc;                                              \
-                                                                         \
-  /* check TOC */                                                        \
-  fail_unless (g_list_length (toc_t->entries) == 2);                     \
-  fail_unless (toc_t->tags != NULL);                                     \
-  fail_unless (gst_tag_list_get_string (toc_t->tags,                     \
-               GST_TAG_TITLE, &tag_t));                                  \
-  fail_unless_equals_string (tag_t, TOC_TAG);                            \
-  g_free (tag_t);                                                        \
-                                                                         \
-  fail_unless (toc_t->info != NULL);                                     \
-  gst_structure_get (toc_t->info, INFO_NAME, GST_TYPE_STRUCTURE,         \
-      &struct_toc, NULL);                                                \
-  fail_unless (struct_toc != NULL);                                      \
-  val = gst_structure_get_value (struct_toc, INFO_FIELD);                \
-  fail_unless (val != NULL);                                             \
-  fail_unless_equals_string (g_value_get_string (val), INFO_TEXT_TOC);   \
-  gst_structure_free (struct_toc);                                       \
-                                                                         \
-  /* check edition1 */                                                   \
-  entry_t = g_list_nth_data (toc_t->entries, 0);                         \
-  fail_if (entry_t == NULL);                                             \
-  fail_unless (g_list_length (entry_t->subentries) == 2);                \
-  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);      \
-  /* check chapter1 */                                                   \
-  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);   \
-  /* check chapter2 */                                                   \
-  subentry_t = g_list_nth_data (entry_t->subentries, 1);                 \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);   \
-  /* check edition2 */                                                   \
-  entry_t = g_list_nth_data (toc_t->entries, 1);                         \
-  fail_if (entry_t == NULL);                                             \
-  fail_unless (g_list_length (entry_t->subentries) == 1);                \
-  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);      \
-  /* check chapter3 */                                                   \
-  subentry_t = g_list_nth_data (entry_t->subentries, 0);                 \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 1);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);   \
-  /* check subchapter1 */                                                \
-  subentry_t = g_list_nth_data (subentry_t->subentries, 0);              \
-  fail_if (subentry_t == NULL);                                          \
-  fail_unless (g_list_length (subentry_t->subentries) == 0);             \
-  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);  \
+static void
+CHECK_TOC (GstToc * toc_t)
+{
+  GstTocEntry *entry_t, *subentry_t;
+  GstTagList *tags;
+  GList *entries, *subentries, *subsubentries;
+  gchar *tag_t;
+
+  /* dump TOC */
+  gst_toc_dump (toc_t);
+
+  /* check TOC */
+  tags = gst_toc_get_tags (toc_t);
+  fail_unless (tags != NULL);
+  fail_unless (gst_tag_list_get_string (tags, GST_TAG_TITLE, &tag_t));
+  fail_unless_equals_string (tag_t, TOC_TAG);
+  g_free (tag_t);
+
+  entries = gst_toc_get_entries (toc_t);
+  fail_unless_equals_int (g_list_length (entries), 2);
+  /* check edition1 */
+  entry_t = g_list_nth_data (entries, 0);
+  fail_if (entry_t == NULL);
+  subentries = gst_toc_entry_get_sub_entries (entry_t);
+  fail_unless_equals_int (g_list_length (subentries), 2);
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
+  /* check chapter1 */
+  subentry_t = g_list_nth_data (subentries, 0);
+  fail_if (subentry_t == NULL);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 0);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
+  /* check chapter2 */
+  subentry_t = g_list_nth_data (subentries, 1);
+  fail_if (subentry_t == NULL);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 0);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
+  /* check edition2 */
+  entry_t = g_list_nth_data (entries, 1);
+  fail_if (entry_t == NULL);
+  subentries = gst_toc_entry_get_sub_entries (entry_t);
+  fail_unless_equals_int (g_list_length (subentries), 1);
+  CHECK_TOC_ENTRY (entry_t, GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
+  /* check chapter3 */
+  subentry_t = g_list_nth_data (subentries, 0);
+  fail_if (subentry_t == NULL);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 1);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
+  /* check subchapter1 */
+  subentry_t = g_list_nth_data (subsubentries, 0);
+  fail_if (subentry_t == NULL);
+  subsubentries = gst_toc_entry_get_sub_entries (subentry_t);
+  fail_unless_equals_int (g_list_length (subsubentries), 0);
+  CHECK_TOC_ENTRY (subentry_t, GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
 }
 
 /* some minimal GstTocSetter object */
@@ -144,95 +133,66 @@
 static GstToc *
 create_toc (void)
 {
-  GstStructure *structure;
   GstToc *toc;
   GstTocEntry *ed, *ch, *subch;
+  GstTagList *tags;
 
-  toc = gst_toc_new ();
-  gst_tag_list_add (toc->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      TOC_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_TOC,
-      NULL);
-  gst_structure_set (toc->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  toc = gst_toc_new (GST_TOC_SCOPE_GLOBAL);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, TOC_TAG, NULL);
+  gst_toc_set_tags (toc, tags);
 
   /* create edition1 */
   ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED1);
-  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ed, tags);
 
   /* append chapter1 to edition1 */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH1);
-  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ch, tags);
 
-  ed->subentries = g_list_append (ed->subentries, ch);
+  gst_toc_entry_append_sub_entry (ed, ch);
 
   /* append chapter2 to edition1 */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH2);
-  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ch, tags);
 
-  ed->subentries = g_list_append (ed->subentries, ch);
+  gst_toc_entry_append_sub_entry (ed, ch);
 
   /* append edition1 to the TOC */
-  toc->entries = g_list_append (toc->entries, ed);
+  gst_toc_append_entry (toc, ed);
 
   /* create edition2 */
   ed = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_EDITION, ENTRY_ED2);
-  gst_tag_list_add (ed->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ed->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ed, tags);
 
   /* create chapter3 */
   ch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_CH3);
-  gst_tag_list_add (ch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (ch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure, NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (ch, tags);
 
   /* create subchapter1 */
   subch = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, ENTRY_SUB1);
-  gst_tag_list_add (subch->tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE,
-      ENTRY_TAG, NULL);
-  structure =
-      gst_structure_new (INFO_NAME, INFO_FIELD, G_TYPE_STRING, INFO_TEXT_EN,
-      NULL);
-  gst_structure_set (subch->info, INFO_NAME, GST_TYPE_STRUCTURE, structure,
-      NULL);
-  gst_structure_free (structure);
+  tags = gst_tag_list_new_empty ();
+  gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_TITLE, ENTRY_TAG, NULL);
+  gst_toc_entry_set_tags (subch, tags);
 
   /* append subchapter1 to chapter3 */
-  ch->subentries = g_list_append (ch->subentries, subch);
+  gst_toc_entry_append_sub_entry (ch, subch);
 
   /* append chapter3 to edition2 */
-  ed->subentries = g_list_append (ed->subentries, ch);
+  gst_toc_entry_append_sub_entry (ed, ch);
 
   /* finally append edition2 to the TOC */
-  toc->entries = g_list_append (toc->entries, ed);
+  gst_toc_append_entry (toc, ed);
 
   return toc;
 }
@@ -240,7 +200,9 @@
 GST_START_TEST (test_set)
 {
   GstToc *toc;
+#if 0
   GstTocEntry *entry, *ed;
+#endif
   GstTocSetter *setter;
   GstElement *enc;
 
@@ -254,11 +216,12 @@
 
   gst_toc_setter_set_toc (setter, toc);
 
-  gst_toc_free (toc);
-  toc = gst_toc_setter_get_toc_copy (setter);
+  gst_toc_unref (toc);
+  toc = gst_toc_setter_get_toc (setter);
 
   CHECK_TOC (toc);
 
+#if 0
   /* test entry adding into the root TOC */
   entry = g_list_last (toc->entries)->data;
   toc->entries = g_list_remove (toc->entries, entry);
@@ -266,12 +229,14 @@
   gst_toc_setter_set_toc (setter, toc);
   gst_toc_setter_add_toc_entry (setter, "0", entry);
 
-  gst_toc_free (toc);
-  gst_toc_entry_free (entry);
-  toc = gst_toc_setter_get_toc_copy (setter);
+  gst_toc_unref (toc);
+  gst_toc_entry_unref (entry);
+  toc = gst_toc_setter_get_toc (setter);
 
   CHECK_TOC (toc);
+#endif
 
+#if 0
   /* test entry adding into the arbitrary entry */
   entry = gst_toc_find_entry (toc, ENTRY_CH2);
   fail_if (entry == NULL);
@@ -282,10 +247,11 @@
   gst_toc_setter_add_toc_entry (setter, ed->uid, entry);
 
   CHECK_TOC (toc);
+#endif
 
-  gst_toc_free (toc);
-  gst_toc_setter_reset_toc (setter);
-  toc = gst_toc_setter_get_toc_copy (setter);
+  gst_toc_unref (toc);
+  gst_toc_setter_reset (setter);
+  toc = gst_toc_setter_get_toc (setter);
 
   fail_unless (toc == NULL);
 
@@ -317,7 +283,7 @@
   while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS)
     gst_toc_setter_set_toc (setter, toc);
 
-  gst_toc_free (toc);
+  gst_toc_unref (toc);
   g_timer_destroy (timer);
   GST_INFO ("Done");
 
@@ -344,7 +310,7 @@
   while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS)
     gst_toc_setter_set_toc (setter, toc);
 
-  gst_toc_free (toc);
+  gst_toc_unref (toc);
   g_timer_destroy (timer);
   GST_INFO ("Done");
 
@@ -367,7 +333,7 @@
   g_timer_start (timer);
 
   while (g_timer_elapsed (timer, NULL) < THREADS_TEST_SECONDS) {
-    gst_toc_setter_reset_toc (setter);
+    gst_toc_setter_reset (setter);
   }
 
   g_timer_destroy (timer);
diff --git a/tests/check/gst/gsturi.c b/tests/check/gst/gsturi.c
index 4eee4f1..259b3a0 100644
--- a/tests/check/gst/gsturi.c
+++ b/tests/check/gst/gsturi.c
@@ -23,15 +23,20 @@
 GST_START_TEST (test_protocol_case)
 {
   GstElement *element;
+  GError *err = NULL;
 
-  element = gst_element_make_from_uri (GST_URI_SRC, "file:///foo/bar", NULL);
+  element = gst_element_make_from_uri (GST_URI_SRC, "file:///foo/bar", NULL,
+      &err);
 
   /* no element? probably no registry, bail out */
-  if (element == NULL)
+  if (element == NULL && err->code == GST_URI_ERROR_UNSUPPORTED_PROTOCOL) {
+    g_error_free (err);
     return;
+  }
 
   gst_object_unref (element);
-  element = gst_element_make_from_uri (GST_URI_SRC, "FILE:///foo/bar", NULL);
+  element = gst_element_make_from_uri (GST_URI_SRC, "FILE:///foo/bar", NULL,
+      NULL);
   fail_unless (element != NULL,
       "Got source for 'file://' URI but not for 'FILE://' URI");
   gst_object_unref (element);
@@ -107,16 +112,17 @@
 
 GST_START_TEST (test_uri_misc)
 {
-  /* require at least three characters for the protocol */
+  /* require at least two characters for the protocol */
   fail_if (gst_uri_is_valid ("B:\\foo.txt"));
   fail_if (gst_uri_is_valid ("B:/foo.txt"));
   fail_if (gst_uri_is_valid ("B://foo.txt"));
   fail_if (gst_uri_is_valid ("B:foo.txt"));
 
-  fail_if (gst_uri_is_valid ("AB:\\foo.txt"));
-  fail_if (gst_uri_is_valid ("AB:/foo.txt"));
-  fail_if (gst_uri_is_valid ("AB://foo.txt"));
-  fail_if (gst_uri_is_valid ("AB:foo.txt"));
+  fail_unless (gst_uri_is_valid ("fd://0"));
+  fail_unless (gst_uri_is_valid ("AB:\\foo.txt"));
+  fail_unless (gst_uri_is_valid ("AB:/foo.txt"));
+  fail_unless (gst_uri_is_valid ("AB://foo.txt"));
+  fail_unless (gst_uri_is_valid ("AB:foo.txt"));
 
   fail_unless (gst_uri_is_valid ("ABC:/foo.txt"));
   fail_unless (gst_uri_is_valid ("ABC://foo.txt"));
@@ -129,6 +135,35 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_element_make_from_uri)
+{
+  GstElement *element;
+  GError *err = NULL;
+
+  element = gst_element_make_from_uri (GST_URI_SRC, "foo://", NULL, NULL);
+  fail_unless (element == NULL);
+
+  element = gst_element_make_from_uri (GST_URI_SRC, "foo://", NULL, &err);
+  fail_unless (element == NULL);
+  fail_unless (err != NULL);
+  fail_unless (err->code == GST_URI_ERROR_UNSUPPORTED_PROTOCOL);
+  g_error_free (err);
+  err = NULL;
+
+  if (gst_registry_check_feature_version (gst_registry_get (), "filesrc",
+          GST_VERSION_MAJOR, GST_VERSION_MINOR, GST_VERSION_MICRO)) {
+    element = gst_element_make_from_uri (GST_URI_SRC, "file://host/foo", NULL,
+        &err);
+    fail_unless (element == NULL);
+    fail_unless (err != NULL);
+    fail_unless (err->code == GST_URI_ERROR_BAD_URI);
+    g_error_free (err);
+    err = NULL;
+  }
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_uri_suite (void)
 {
@@ -141,6 +176,7 @@
   tcase_add_test (tc_chain, test_protocol_case);
   tcase_add_test (tc_chain, test_uri_get_location);
   tcase_add_test (tc_chain, test_uri_misc);
+  tcase_add_test (tc_chain, test_element_make_from_uri);
 #ifdef G_OS_WIN32
   tcase_add_test (tc_chain, test_win32_uri);
 #endif
diff --git a/tests/check/gst/gstutils.c b/tests/check/gst/gstutils.c
index f26baa4..e0d0ff3 100644
--- a/tests/check/gst/gstutils.c
+++ b/tests/check/gst/gstutils.c
@@ -504,7 +504,7 @@
   gst_element_set_state (pipeline, GST_STATE_PLAYING);
 
   srcpad = gst_element_get_static_pad (fakesrc, "src");
-  gst_pad_push_event (srcpad, gst_event_new_tag ("test", list));
+  gst_pad_push_event (srcpad, gst_event_new_tag (list));
   gst_object_unref (srcpad);
 
   bus = gst_element_get_bus (pipeline);
@@ -1083,6 +1083,167 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_read_macros)
+{
+  guint8 carray[] = "ABCDEFGH"; /* 0x41 ... 0x48 */
+  guint32 uarray[2];
+  guint8 *cpointer;
+
+#define fail_unless_equals_int_hex(a, b)                                \
+G_STMT_START {								\
+  int first = a;							\
+  int second = b;							\
+  fail_unless(first == second,						\
+    "'" #a "' (0x%08x) is not equal to '" #b"' (0x%08x)", first, second);	\
+} G_STMT_END;
+
+#define fail_unless_equals_int64_hex(a, b)                                \
+G_STMT_START {								\
+  gint64 first = a;							\
+  gint64 second = b;							\
+  fail_unless(first == second,						\
+    "'" #a "' (0x%016x) is not equal to '" #b"' (0x%016x)", first, second);	\
+} G_STMT_END;
+
+  memcpy (uarray, carray, 8);
+  cpointer = carray;
+
+  /* 16 bit */
+  /* First try the standard pointer variants */
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer), 0x4142);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer + 1), 0x4243);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer + 2), 0x4344);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer + 3), 0x4445);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer + 4), 0x4546);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer + 5), 0x4647);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (cpointer + 6), 0x4748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer), 0x4241);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer + 1), 0x4342);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer + 2), 0x4443);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer + 3), 0x4544);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer + 4), 0x4645);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer + 5), 0x4746);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (cpointer + 6), 0x4847);
+
+  /* On an array of guint8 */
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray), 0x4142);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray + 1), 0x4243);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray + 2), 0x4344);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray + 3), 0x4445);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray + 4), 0x4546);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray + 5), 0x4647);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (carray + 6), 0x4748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray), 0x4241);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray + 1), 0x4342);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray + 2), 0x4443);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray + 3), 0x4544);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray + 4), 0x4645);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray + 5), 0x4746);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (carray + 6), 0x4847);
+
+  /* On an array of guint32 */
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (uarray), 0x4142);
+  fail_unless_equals_int_hex (GST_READ_UINT16_BE (uarray + 1), 0x4546);
+
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (uarray), 0x4241);
+  fail_unless_equals_int_hex (GST_READ_UINT16_LE (uarray + 1), 0x4645);
+
+
+  /* 24bit */
+  /* First try the standard pointer variants */
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (cpointer), 0x414243);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (cpointer + 1), 0x424344);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (cpointer + 2), 0x434445);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (cpointer + 3), 0x444546);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (cpointer + 4), 0x454647);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (cpointer + 5), 0x464748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (cpointer), 0x434241);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (cpointer + 1), 0x444342);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (cpointer + 2), 0x454443);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (cpointer + 3), 0x464544);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (cpointer + 4), 0x474645);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (cpointer + 5), 0x484746);
+
+  /* On an array of guint8 */
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (carray), 0x414243);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (carray + 1), 0x424344);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (carray + 2), 0x434445);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (carray + 3), 0x444546);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (carray + 4), 0x454647);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (carray + 5), 0x464748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (carray), 0x434241);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (carray + 1), 0x444342);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (carray + 2), 0x454443);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (carray + 3), 0x464544);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (carray + 4), 0x474645);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (carray + 5), 0x484746);
+
+  /* On an array of guint32 */
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (uarray), 0x414243);
+  fail_unless_equals_int_hex (GST_READ_UINT24_BE (uarray + 1), 0x454647);
+
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (uarray), 0x434241);
+  fail_unless_equals_int_hex (GST_READ_UINT24_LE (uarray + 1), 0x474645);
+
+
+  /* 32bit */
+  /* First try the standard pointer variants */
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (cpointer), 0x41424344);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (cpointer + 1), 0x42434445);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (cpointer + 2), 0x43444546);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (cpointer + 3), 0x44454647);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (cpointer + 4), 0x45464748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (cpointer), 0x44434241);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (cpointer + 1), 0x45444342);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (cpointer + 2), 0x46454443);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (cpointer + 3), 0x47464544);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (cpointer + 4), 0x48474645);
+
+  /* On an array of guint8 */
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (carray), 0x41424344);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (carray + 1), 0x42434445);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (carray + 2), 0x43444546);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (carray + 3), 0x44454647);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (carray + 4), 0x45464748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (carray), 0x44434241);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (carray + 1), 0x45444342);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (carray + 2), 0x46454443);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (carray + 3), 0x47464544);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (carray + 4), 0x48474645);
+
+  /* On an array of guint32 */
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (uarray), 0x41424344);
+  fail_unless_equals_int_hex (GST_READ_UINT32_BE (uarray + 1), 0x45464748);
+
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (uarray), 0x44434241);
+  fail_unless_equals_int_hex (GST_READ_UINT32_LE (uarray + 1), 0x48474645);
+
+
+  /* 64bit */
+  fail_unless_equals_int64_hex (GST_READ_UINT64_BE (cpointer),
+      0x4142434445464748);
+  fail_unless_equals_int64_hex (GST_READ_UINT64_LE (cpointer),
+      0x4847464544434241);
+
+  fail_unless_equals_int64_hex (GST_READ_UINT64_BE (carray),
+      0x4142434445464748);
+  fail_unless_equals_int64_hex (GST_READ_UINT64_LE (carray),
+      0x4847464544434241);
+
+  fail_unless_equals_int64_hex (GST_READ_UINT64_BE (uarray),
+      0x4142434445464748);
+  fail_unless_equals_int64_hex (GST_READ_UINT64_LE (uarray),
+      0x4847464544434241);
+}
+
+GST_END_TEST;
+
 static Suite *
 gst_utils_suite (void)
 {
@@ -1116,6 +1277,8 @@
 
   tcase_add_test (tc_chain, test_pad_proxy_query_caps_aggregation);
   tcase_add_test (tc_chain, test_greatest_common_divisor);
+
+  tcase_add_test (tc_chain, test_read_macros);
   return s;
 }
 
diff --git a/tests/check/gst/gstvalue.c b/tests/check/gst/gstvalue.c
index 4de03c0..480840b 100644
--- a/tests/check/gst/gstvalue.c
+++ b/tests/check/gst/gstvalue.c
@@ -2022,6 +2022,7 @@
 {
   GstStructure *s;
   GstDateTime *datetime, *datetime2;
+  GValue val = { 0, };
   gchar *str;
 
   /* utc timezone */
@@ -2046,8 +2047,8 @@
   gst_structure_free (s);
   s = NULL;
 
-  fail_unless (g_str_equal (str,
-          "media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000000+0000\";"));
+  fail_unless_equals_string (str,
+      "media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10Z;");
 
   s = gst_structure_from_string (str, NULL);
   g_free (str);
@@ -2075,8 +2076,8 @@
   gst_structure_free (s);
   s = NULL;
 
-  fail_unless (g_str_equal (str,
-          "media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000000+0000\";"));
+  fail_unless_equals_string (str,
+      "media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10Z;");
   g_free (str);
   str = NULL;
 
@@ -2102,8 +2103,8 @@
   gst_structure_free (s);
   s = NULL;
 
-  fail_unless (g_str_equal (str,
-          "media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000001-0300\";"));
+  fail_unless_equals_string (str,
+      "media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10.000001-0300;");
 
   s = gst_structure_from_string (str, NULL);
   g_free (str);
@@ -2130,8 +2131,8 @@
   str = gst_structure_to_string (s);
   gst_structure_free (s);
   s = NULL;
-  fail_unless (g_str_equal (str,
-          "media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000001-0300\";"));
+  fail_unless_equals_string (str,
+      "media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10.000001-0300;");
 
   g_free (str);
   str = NULL;
@@ -2158,8 +2159,8 @@
   gst_structure_free (s);
   s = NULL;
 
-  fail_unless (g_str_equal (str,
-          "media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000001+0200\";"));
+  fail_unless_equals_string (str,
+      "media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10.000001+0200;");
 
   s = gst_structure_from_string (str, NULL);
   g_free (str);
@@ -2186,12 +2187,127 @@
   str = gst_structure_to_string (s);
   gst_structure_free (s);
   s = NULL;
-  fail_unless (g_str_equal (str,
-          "media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000001+0200\";"));
+  fail_unless_equals_string (str,
+      "media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10.000001+0200;");
 
   g_free (str);
   str = NULL;
 
+  /* test partial dates */
+  datetime = gst_date_time_new (0.0, 2010, -1, -1, -1, -1, -1.0);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "2010");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (gst_date_time_has_month (datetime));
+  fail_if (gst_date_time_has_day (datetime));
+  fail_if (gst_date_time_has_time (datetime));
+  g_value_unset (&val);
+  g_free (str);
+
+  datetime = gst_date_time_new (0.0, 2010, 9, -1, -1, -1, -1.0);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "2010-09");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (!gst_date_time_has_month (datetime));
+  fail_if (gst_date_time_has_day (datetime));
+  fail_if (gst_date_time_has_time (datetime));
+  g_value_unset (&val);
+  g_free (str);
+
+  datetime = gst_date_time_new (0.0, 1983, 11, 30, -1, -1, -1.0);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "1983-11-30");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (!gst_date_time_has_month (datetime));
+  fail_if (!gst_date_time_has_day (datetime));
+  fail_if (gst_date_time_has_time (datetime));
+  g_value_unset (&val);
+  g_free (str);
+
+  datetime = gst_date_time_new (0.0, 1983, 11, 30, 3, 52, -1.0);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "1983-11-30T03:52Z");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (!gst_date_time_has_month (datetime));
+  fail_if (!gst_date_time_has_day (datetime));
+  fail_if (!gst_date_time_has_time (datetime));
+  fail_if (gst_date_time_has_second (datetime));
+  fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime), 0.0);
+  g_value_unset (&val);
+  g_free (str);
+
+  datetime = gst_date_time_new (-4.5, 1983, 11, 30, 3, 52, -1.0);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "1983-11-30T03:52-0430");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (!gst_date_time_has_month (datetime));
+  fail_if (!gst_date_time_has_day (datetime));
+  fail_if (!gst_date_time_has_time (datetime));
+  fail_if (gst_date_time_has_second (datetime));
+  fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime),
+      -4.5);
+  g_value_unset (&val);
+  g_free (str);
+
+  datetime = gst_date_time_new (4.5, 1983, 11, 30, 14, 52, 9);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "1983-11-30T14:52:09+0430");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (!gst_date_time_has_month (datetime));
+  fail_if (!gst_date_time_has_day (datetime));
+  fail_if (!gst_date_time_has_time (datetime));
+  fail_if (!gst_date_time_has_second (datetime));
+  fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime), 4.5);
+  g_value_unset (&val);
+  g_free (str);
+
+  datetime = gst_date_time_new (-4.5, 1983, 11, 30, 14, 52, 9.702);
+  g_value_init (&val, GST_TYPE_DATE_TIME);
+  g_value_take_boxed (&val, datetime);
+  str = gst_value_serialize (&val);
+  g_value_reset (&val);
+  fail_unless_equals_string (str, "1983-11-30T14:52:09.702-0430");
+  fail_unless (gst_value_deserialize (&val, str));
+  datetime = g_value_get_boxed (&val);
+  fail_if (!gst_date_time_has_year (datetime));
+  fail_if (!gst_date_time_has_month (datetime));
+  fail_if (!gst_date_time_has_day (datetime));
+  fail_if (!gst_date_time_has_time (datetime));
+  fail_if (!gst_date_time_has_second (datetime));
+  fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime),
+      -4.5);
+  g_value_unset (&val);
+  g_free (str);
 }
 
 GST_END_TEST;
diff --git a/tests/check/libs/basesrc.c b/tests/check/libs/basesrc.c
index 7e09488..21e2481 100644
--- a/tests/check/libs/basesrc.c
+++ b/tests/check/libs/basesrc.c
@@ -25,6 +25,7 @@
 #endif
 #include <gst/gst.h>
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstconsistencychecker.h>
 #include <gst/base/gstbasesrc.h>
 
 static GstPadProbeReturn
@@ -54,6 +55,7 @@
   GstBus *bus;
   GstPad *srcpad;
   guint probe, num_eos = 0;
+  GstStreamConsistency *consistency;
 
   pipe = gst_pipeline_new ("pipeline");
   sink = gst_element_factory_make ("fakesink", "sink");
@@ -78,6 +80,8 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
+  consistency = gst_consistency_checker_new (srcpad);
+
   probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
@@ -108,6 +112,8 @@
   /* make sure source hasn't sent a second one when going PAUSED => READY */
   fail_unless (num_eos == 1);
 
+  gst_consistency_checker_free (consistency);
+
   gst_pad_remove_probe (srcpad, probe);
   gst_object_unref (srcpad);
   gst_message_unref (msg);
@@ -131,6 +137,7 @@
   GstBus *bus;
   GstPad *srcpad;
   guint probe, num_eos = 0;
+  GstStreamConsistency *consistency;
 
   pipe = gst_pipeline_new ("pipeline");
   sink = gst_element_factory_make ("fakesink", "sink");
@@ -156,6 +163,8 @@
   srcpad = gst_element_get_static_pad (src, "src");
   fail_unless (srcpad != NULL);
 
+  consistency = gst_consistency_checker_new (srcpad);
+
   probe = gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_BOTH,
       (GstPadProbeCallback) eos_event_counter, &num_eos, NULL);
 
@@ -179,6 +188,8 @@
   /* make sure source hasn't sent a second one when going PAUSED => READY */
   fail_unless (num_eos == 1);
 
+  gst_consistency_checker_free (consistency);
+
   gst_pad_remove_probe (srcpad, probe);
   gst_object_unref (srcpad);
   gst_message_unref (msg);
diff --git a/tests/check/libs/gstnetclientclock.c b/tests/check/libs/gstnetclientclock.c
index f72109a..72b7af3 100644
--- a/tests/check/libs/gstnetclientclock.c
+++ b/tests/check/libs/gstnetclientclock.c
@@ -73,7 +73,7 @@
   g_object_get (client, "port", &port, NULL);
 
   /* let the clocks synchronize */
-  g_usleep (G_USEC_PER_SEC / 2);
+  g_usleep (G_USEC_PER_SEC);
 
   servtime = gst_clock_get_time (server);
   clienttime = gst_clock_get_time (client);
diff --git a/tests/check/libs/queuearray.c b/tests/check/libs/queuearray.c
new file mode 100644
index 0000000..ca5024b
--- /dev/null
+++ b/tests/check/libs/queuearray.c
@@ -0,0 +1,247 @@
+/* GStreamer
+ *
+ * unit test for GstQueueArray
+ *
+ * Copyright (C) <2009> Edward Hervey <bilboed@bilboed.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <gst/check/gstcheck.h>
+#include "../../../plugins/elements/gstqueuearray.h"
+#include "../../../plugins/elements/gstqueuearray.c"
+
+/* Simplest test
+ * Initial size : 10
+ * Add 10, Remove 10
+ */
+GST_START_TEST (test_array_1)
+{
+  GstQueueArray *array;
+  guint i;
+
+  /* Create an array of initial size 10 */
+  array = gst_queue_array_new (10);
+
+  /* push 5 values in */
+  for (i = 0; i < 5; i++)
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+
+  fail_unless_equals_int (array->length, 5);
+
+  /* pull 5 values out */
+  for (i = 0; i < 5; i++) {
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  fail_unless_equals_int (array->length, 0);
+
+  gst_queue_array_free (array);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_array_grow)
+{
+  GstQueueArray *array;
+  guint i;
+
+  /* Create an array of initial size 10 */
+  array = gst_queue_array_new (10);
+  fail_unless_equals_int (array->size, 10);
+
+  /* push 10 values in */
+  for (i = 0; i < 10; i++)
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+
+  fail_unless_equals_int (array->length, 10);
+  /* It did not grow beyond initial size */
+  fail_unless_equals_int (array->size, 10);
+  /* The head is still at the beginning */
+  fail_unless_equals_int (array->head, 0);
+  /* The tail wrapped around to the head */
+  fail_unless_equals_int (array->tail, 0);
+
+
+  /* If we add one value, it will grow */
+  gst_queue_array_push_tail (array, GINT_TO_POINTER (10));
+
+  fail_unless_equals_int (array->length, 11);
+  /* It did grow beyond initial size */
+  fail_unless_equals_int (array->size, 15);
+  /* The head remains the same */
+  fail_unless_equals_int (array->head, 0);
+  /* The tail was brought to position 11 */
+  fail_unless_equals_int (array->tail, 11);
+
+  /* pull the 11 values out */
+  for (i = 0; i < 11; i++) {
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  fail_unless_equals_int (array->length, 0);
+  gst_queue_array_free (array);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_array_grow_multiple)
+{
+  GstQueueArray *array;
+  guint i;
+
+  /* Create an array of initial size 10 */
+  array = gst_queue_array_new (10);
+  fail_unless_equals_int (array->size, 10);
+
+  /* push 11 values in */
+  for (i = 0; i < 11; i++)
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+
+  /* With 11 values, it should have grown once (15) */
+  fail_unless_equals_int (array->length, 11);
+  fail_unless_equals_int (array->size, 15);
+
+  for (i = 11; i < 20; i++)
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+
+  /* With 20 total values, it should have grown another time (3 * 15) / 2 = 22) */
+  fail_unless_equals_int (array->length, 20);
+  /* It did grow beyond initial size */
+  fail_unless_equals_int (array->size, 22);
+
+  /* pull the 20 values out */
+  for (i = 0; i < 20; i++) {
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  fail_unless_equals_int (array->length, 0);
+  gst_queue_array_free (array);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_array_grow_middle)
+{
+  GstQueueArray *array;
+  guint i;
+
+  /* Create an array of initial size 10 */
+  array = gst_queue_array_new (10);
+  fail_unless_equals_int (array->size, 10);
+
+  /* push/pull 5 values to end up in the middle */
+  for (i = 0; i < 5; i++) {
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  /* push 10 values in */
+  for (i = 0; i < 10; i++)
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+
+  fail_unless_equals_int (array->length, 10);
+  /* It did not grow beyond initial size */
+  fail_unless_equals_int (array->size, 10);
+
+  /* If we add one value, it will grow */
+  gst_queue_array_push_tail (array, GINT_TO_POINTER (10));
+  fail_unless_equals_int (array->length, 11);
+  /* It did grow beyond initial size */
+  fail_unless_equals_int (array->size, 15);
+
+  /* pull the 11 values out */
+  for (i = 0; i < 11; i++) {
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  fail_unless_equals_int (array->length, 0);
+  gst_queue_array_free (array);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_array_grow_end)
+{
+  GstQueueArray *array;
+  guint i;
+
+  /* Create an array of initial size 10 */
+  array = gst_queue_array_new (10);
+  fail_unless_equals_int (array->size, 10);
+
+  /* push/pull 9 values to end up at the last position */
+  for (i = 0; i < 9; i++) {
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  /* push 10 values in */
+  for (i = 0; i < 10; i++)
+    gst_queue_array_push_tail (array, GINT_TO_POINTER (i));
+
+  fail_unless_equals_int (array->length, 10);
+  /* It did not grow beyond initial size */
+  fail_unless_equals_int (array->size, 10);
+
+  /* If we add one value, it will grow */
+  gst_queue_array_push_tail (array, GINT_TO_POINTER (10));
+  fail_unless_equals_int (array->length, 11);
+  /* It did grow beyond initial size */
+  fail_unless_equals_int (array->size, 15);
+
+  /* pull the 11 values out */
+  for (i = 0; i < 11; i++) {
+    fail_unless_equals_int (GPOINTER_TO_INT (gst_queue_array_pop_head (array)),
+        i);
+  }
+
+  fail_unless_equals_int (array->length, 0);
+  gst_queue_array_free (array);
+}
+
+GST_END_TEST;
+
+static Suite *
+gst_queue_array_suite (void)
+{
+  Suite *s = suite_create ("GstQueueArray");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+
+  tcase_add_test (tc_chain, test_array_1);
+  tcase_add_test (tc_chain, test_array_grow);
+  tcase_add_test (tc_chain, test_array_grow_multiple);
+  tcase_add_test (tc_chain, test_array_grow_middle);
+  tcase_add_test (tc_chain, test_array_grow_end);
+
+  return s;
+}
+
+
+GST_CHECK_MAIN (gst_queue_array);
diff --git a/tests/check/pipelines/cleanup.c b/tests/check/pipelines/cleanup.c
index 4c7232a..ffab6ec 100644
--- a/tests/check/pipelines/cleanup.c
+++ b/tests/check/pipelines/cleanup.c
@@ -91,7 +91,8 @@
 
   run_pipeline (pipeline, s,
       GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
-      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS);
+      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_EOS);
   while (GST_OBJECT_REFCOUNT_VALUE (src) > 1)
     THREAD_SWITCH ();
   ASSERT_OBJECT_REFCOUNT (src, "src", 1);
diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c
index fb72a2f..0a56563 100644
--- a/tests/check/pipelines/simple-launch-lines.c
+++ b/tests/check/pipelines/simple-launch-lines.c
@@ -102,28 +102,32 @@
   s = "fakesrc can-activate-push=false ! fakesink can-activate-pull=true";
   run_pipeline (setup_pipeline (s), s,
       GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
-      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN);
+      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN);
 
   s = "fakesrc can-activate-push=true ! fakesink can-activate-pull=false";
   run_pipeline (setup_pipeline (s), s,
       GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
-      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_UNKNOWN);
+      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN);
 
   s = "fakesrc can-activate-push=false num-buffers=10 ! fakesink can-activate-pull=true";
   run_pipeline (setup_pipeline (s), s,
       GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
-      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS);
+      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_EOS);
 
   s = "fakesrc can-activate-push=true num-buffers=10 ! fakesink can-activate-pull=false";
   run_pipeline (setup_pipeline (s), s,
       GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
-      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE, GST_MESSAGE_EOS);
+      GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_EOS);
 
   s = "fakesrc can-activate-push=false ! fakesink can-activate-pull=false";
   ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s,
           GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
-          GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE,
-          GST_MESSAGE_UNKNOWN));
+          GST_MESSAGE_STREAM_STATUS | GST_MESSAGE_ASYNC_DONE |
+          GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN));
 }
 
 GST_END_TEST;
@@ -192,45 +196,51 @@
 
   s = "fakesrc can-activate-push=true ! tee ! fakesink can-activate-push=true";
   run_pipeline (setup_pipeline (s), s,
-      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_UNKNOWN);
+      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN);
 
   s = "fakesrc can-activate-push=true num-buffers=10 ! tee ! fakesink can-activate-push=true";
   run_pipeline (setup_pipeline (s), s,
-      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_EOS);
+      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_EOS);
 
   s = "fakesrc can-activate-push=false can-activate-pull=true ! tee ! fakesink can-activate-pull=true";
   ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s,
-          GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED,
-          GST_MESSAGE_UNKNOWN));
+          GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+          GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN));
 
   s = "fakesrc can-activate-push=false can-activate-pull=true "
       "! tee pull-mode=single ! fakesink can-activate-pull=true";
   run_pipeline (setup_pipeline (s), s,
-      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_UNKNOWN);
+      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN);
 
   s = "fakesrc can-activate-push=false can-activate-pull=true num-buffers=10 "
       "! tee pull-mode=single ! fakesink can-activate-pull=true";
   run_pipeline (setup_pipeline (s), s,
-      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_EOS);
+      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_EOS);
 
   s = "fakesrc can-activate-push=false can-activate-pull=true "
       "! tee name=t pull-mode=single ! fakesink can-activate-pull=true "
       "t. ! queue ! fakesink can-activate-pull=true can-activate-push=false";
   ASSERT_CRITICAL (run_pipeline (setup_pipeline (s), s,
-          GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED,
-          GST_MESSAGE_UNKNOWN));
+          GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+          GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN));
 
   s = "fakesrc can-activate-push=false can-activate-pull=true "
       "! tee name=t pull-mode=single ! fakesink can-activate-pull=true "
       "t. ! queue ! fakesink";
   run_pipeline (setup_pipeline (s), s,
-      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_UNKNOWN);
+      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_UNKNOWN);
 
   s = "fakesrc can-activate-push=false can-activate-pull=true num-buffers=10 "
       "! tee name=t pull-mode=single ! fakesink can-activate-pull=true "
       "t. ! queue ! fakesink";
   run_pipeline (setup_pipeline (s), s,
-      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED, GST_MESSAGE_EOS);
+      GST_MESSAGE_NEW_CLOCK | GST_MESSAGE_STATE_CHANGED |
+      GST_MESSAGE_STREAM_START, GST_MESSAGE_EOS);
 }
 
 GST_END_TEST;
diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am
index f4e059b..7454b5c 100644
--- a/tests/examples/Makefile.am
+++ b/tests/examples/Makefile.am
@@ -15,6 +15,7 @@
 	controller \
 	helloworld \
 	manual     \
+	memory   \
 	metadata   \
 	queue      \
 	stepping \
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 85d8849..a10532c 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -212,7 +212,9 @@
 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@
@@ -437,6 +439,7 @@
 	controller \
 	helloworld \
 	manual     \
+	memory   \
 	metadata   \
 	queue      \
 	stepping \
diff --git a/tests/examples/adapter/Makefile.in b/tests/examples/adapter/Makefile.in
index 6c99309..5f39a69 100644
--- a/tests/examples/adapter/Makefile.in
+++ b/tests/examples/adapter/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -203,7 +203,9 @@
 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@
diff --git a/tests/examples/controller/Makefile.in b/tests/examples/controller/Makefile.in
index ffd3b16..2e9cc06 100644
--- a/tests/examples/controller/Makefile.in
+++ b/tests/examples/controller/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -212,7 +212,9 @@
 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@
diff --git a/tests/examples/helloworld/Makefile.in b/tests/examples/helloworld/Makefile.in
index d32e06d..4c5d16c 100644
--- a/tests/examples/helloworld/Makefile.in
+++ b/tests/examples/helloworld/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -202,7 +202,9 @@
 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@
diff --git a/tests/examples/launch/Makefile.in b/tests/examples/launch/Makefile.in
index 0fb702a..2f01e35 100644
--- a/tests/examples/launch/Makefile.in
+++ b/tests/examples/launch/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -203,7 +203,9 @@
 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@
diff --git a/tests/examples/manual/Makefile.in b/tests/examples/manual/Makefile.in
index c6e01ed..d260b7e 100644
--- a/tests/examples/manual/Makefile.in
+++ b/tests/examples/manual/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -309,7 +309,9 @@
 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@
diff --git a/tests/examples/memory/Makefile.am b/tests/examples/memory/Makefile.am
new file mode 100644
index 0000000..b0399c0
--- /dev/null
+++ b/tests/examples/memory/Makefile.am
@@ -0,0 +1,5 @@
+noinst_PROGRAMS = memory_test
+
+memory_test_SOURCES = memory_test.c my-memory.c my-memory.h my-vidmem.c my-vidmem.h
+memory_test_LDADD = $(GST_OBJ_LIBS)
+memory_test_CFLAGS = $(GST_OBJ_CFLAGS)
diff --git a/tests/examples/memory/Makefile.in b/tests/examples/memory/Makefile.in
new file mode 100644
index 0000000..b36358b
--- /dev/null
+++ b/tests/examples/memory/Makefile.in
@@ -0,0 +1,758 @@
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# 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__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+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 = memory_test$(EXEEXT)
+subdir = tests/examples/memory
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
+	$(top_srcdir)/common/m4/as-auto-alt.m4 \
+	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
+	$(top_srcdir)/common/m4/as-docbook.m4 \
+	$(top_srcdir)/common/m4/as-libtool.m4 \
+	$(top_srcdir)/common/m4/as-python.m4 \
+	$(top_srcdir)/common/m4/as-scrub-include.m4 \
+	$(top_srcdir)/common/m4/as-version.m4 \
+	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(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/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+am_memory_test_OBJECTS = memory_test-memory_test.$(OBJEXT) \
+	memory_test-my-memory.$(OBJEXT) \
+	memory_test-my-vidmem.$(OBJEXT)
+memory_test_OBJECTS = $(am_memory_test_OBJECTS)
+am__DEPENDENCIES_1 =
+memory_test_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
+memory_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(memory_test_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+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_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD  " $@;
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN   " $@;
+SOURCES = $(memory_test_SOURCES)
+DIST_SOURCES = $(memory_test_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+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@
+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_PKG_DEPS = @GST_PKG_DEPS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PLUGIN_SCANNER_INSTALLED = @GST_PLUGIN_SCANNER_INSTALLED@
+GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE = @GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE@
+GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE = @GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE@
+GST_REGISTRY_DOC_TYPES = @GST_REGISTRY_DOC_TYPES@
+GST_REVISION = @GST_REVISION@
+GST_USING_PRINTF_EXTENSION_DEFINE = @GST_USING_PRINTF_EXTENSION_DEFINE@
+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_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
+HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
+HAVE_DVIPS = @HAVE_DVIPS@
+HAVE_EPSTOPDF = @HAVE_EPSTOPDF@
+HAVE_FIG2DEV = @HAVE_FIG2DEV@
+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@
+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@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+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@
+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@
+memory_test_SOURCES = memory_test.c my-memory.c my-memory.h my-vidmem.c my-vidmem.h
+memory_test_LDADD = $(GST_OBJ_LIBS)
+memory_test_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/memory/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu tests/examples/memory/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
+memory_test$(EXEEXT): $(memory_test_OBJECTS) $(memory_test_DEPENDENCIES) $(EXTRA_memory_test_DEPENDENCIES) 
+	@rm -f memory_test$(EXEEXT)
+	$(AM_V_CCLD)$(memory_test_LINK) $(memory_test_OBJECTS) $(memory_test_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory_test-memory_test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory_test-my-memory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory_test-my-vidmem.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@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 $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@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 $@ $<
+
+memory_test-memory_test.o: memory_test.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(memory_test_CFLAGS) $(CFLAGS) -MT memory_test-memory_test.o -MD -MP -MF $(DEPDIR)/memory_test-memory_test.Tpo -c -o memory_test-memory_test.o `test -f 'memory_test.c' || echo '$(srcdir)/'`memory_test.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/memory_test-memory_test.Tpo $(DEPDIR)/memory_test-memory_test.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='memory_test.c' object='memory_test-memory_test.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) $(memory_test_CFLAGS) $(CFLAGS) -c -o memory_test-memory_test.o `test -f 'memory_test.c' || echo '$(srcdir)/'`memory_test.c
+
+memory_test-memory_test.obj: memory_test.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(memory_test_CFLAGS) $(CFLAGS) -MT memory_test-memory_test.obj -MD -MP -MF $(DEPDIR)/memory_test-memory_test.Tpo -c -o memory_test-memory_test.obj `if test -f 'memory_test.c'; then $(CYGPATH_W) 'memory_test.c'; else $(CYGPATH_W) '$(srcdir)/memory_test.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/memory_test-memory_test.Tpo $(DEPDIR)/memory_test-memory_test.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='memory_test.c' object='memory_test-memory_test.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) $(memory_test_CFLAGS) $(CFLAGS) -c -o memory_test-memory_test.obj `if test -f 'memory_test.c'; then $(CYGPATH_W) 'memory_test.c'; else $(CYGPATH_W) '$(srcdir)/memory_test.c'; fi`
+
+memory_test-my-memory.o: my-memory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(memory_test_CFLAGS) $(CFLAGS) -MT memory_test-my-memory.o -MD -MP -MF $(DEPDIR)/memory_test-my-memory.Tpo -c -o memory_test-my-memory.o `test -f 'my-memory.c' || echo '$(srcdir)/'`my-memory.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/memory_test-my-memory.Tpo $(DEPDIR)/memory_test-my-memory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='my-memory.c' object='memory_test-my-memory.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) $(memory_test_CFLAGS) $(CFLAGS) -c -o memory_test-my-memory.o `test -f 'my-memory.c' || echo '$(srcdir)/'`my-memory.c
+
+memory_test-my-memory.obj: my-memory.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(memory_test_CFLAGS) $(CFLAGS) -MT memory_test-my-memory.obj -MD -MP -MF $(DEPDIR)/memory_test-my-memory.Tpo -c -o memory_test-my-memory.obj `if test -f 'my-memory.c'; then $(CYGPATH_W) 'my-memory.c'; else $(CYGPATH_W) '$(srcdir)/my-memory.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/memory_test-my-memory.Tpo $(DEPDIR)/memory_test-my-memory.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='my-memory.c' object='memory_test-my-memory.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) $(memory_test_CFLAGS) $(CFLAGS) -c -o memory_test-my-memory.obj `if test -f 'my-memory.c'; then $(CYGPATH_W) 'my-memory.c'; else $(CYGPATH_W) '$(srcdir)/my-memory.c'; fi`
+
+memory_test-my-vidmem.o: my-vidmem.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(memory_test_CFLAGS) $(CFLAGS) -MT memory_test-my-vidmem.o -MD -MP -MF $(DEPDIR)/memory_test-my-vidmem.Tpo -c -o memory_test-my-vidmem.o `test -f 'my-vidmem.c' || echo '$(srcdir)/'`my-vidmem.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/memory_test-my-vidmem.Tpo $(DEPDIR)/memory_test-my-vidmem.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='my-vidmem.c' object='memory_test-my-vidmem.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) $(memory_test_CFLAGS) $(CFLAGS) -c -o memory_test-my-vidmem.o `test -f 'my-vidmem.c' || echo '$(srcdir)/'`my-vidmem.c
+
+memory_test-my-vidmem.obj: my-vidmem.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(memory_test_CFLAGS) $(CFLAGS) -MT memory_test-my-vidmem.obj -MD -MP -MF $(DEPDIR)/memory_test-my-vidmem.Tpo -c -o memory_test-my-vidmem.obj `if test -f 'my-vidmem.c'; then $(CYGPATH_W) 'my-vidmem.c'; else $(CYGPATH_W) '$(srcdir)/my-vidmem.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/memory_test-my-vidmem.Tpo $(DEPDIR)/memory_test-my-vidmem.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='my-vidmem.c' object='memory_test-my-vidmem.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) $(memory_test_CFLAGS) $(CFLAGS) -c -o memory_test-my-vidmem.obj `if test -f 'my-vidmem.c'; then $(CYGPATH_W) 'my-vidmem.c'; else $(CYGPATH_W) '$(srcdir)/my-vidmem.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	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 all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+# 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/memory/memory_test.c b/tests/examples/memory/memory_test.c
new file mode 100644
index 0000000..96d9afb
--- /dev/null
+++ b/tests/examples/memory/memory_test.c
@@ -0,0 +1,54 @@
+#include <gst/gst.h>
+
+#include "my-memory.h"
+#include "my-vidmem.h"
+
+int
+main (int argc, char **argv)
+{
+  GstAllocator *alloc;
+  GstMemory *mem;
+  GstAllocationParams params;
+  GstMapInfo info;
+  guint f, w, h;
+
+  gst_init (&argc, &argv);
+
+  /* memory using the default API */
+  my_memory_init ();
+
+  alloc = gst_allocator_find ("MyMemory");
+
+  gst_allocation_params_init (&params);
+  mem = gst_allocator_alloc (alloc, 1024, &params);
+
+  gst_memory_map (mem, &info, GST_MAP_READ);
+  gst_memory_unmap (mem, &info);
+
+  gst_memory_unref (mem);
+  gst_object_unref (alloc);
+
+  /* allocator with custom alloc API */
+  my_vidmem_init ();
+
+  /* we can get the allocator but we can only make objects from it when we know
+   * the API */
+  alloc = gst_allocator_find ("MyVidmem");
+
+  /* use custom api to alloc */
+  mem = my_vidmem_alloc (0, 640, 480);
+  g_assert (my_is_vidmem (mem));
+
+  my_vidmem_get_format (mem, &f, &w, &h);
+  g_assert (f == 0);
+  g_assert (w == 640);
+  g_assert (h == 480);
+
+  gst_memory_map (mem, &info, GST_MAP_READ);
+  gst_memory_unmap (mem, &info);
+
+  gst_memory_unref (mem);
+  gst_object_unref (alloc);
+
+  return 0;
+}
diff --git a/tests/examples/memory/my-memory.c b/tests/examples/memory/my-memory.c
new file mode 100644
index 0000000..1bbd960
--- /dev/null
+++ b/tests/examples/memory/my-memory.c
@@ -0,0 +1,159 @@
+/* GStreamer
+ * Copyright (C) 2012 Wim Taymans <wim.taymans@gmail.be>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "my-memory.h"
+
+typedef struct
+{
+  GstMemory mem;
+
+  gpointer data;
+
+} MyMemory;
+
+
+static GstMemory *
+_my_alloc (GstAllocator * allocator, gsize size, GstAllocationParams * params)
+{
+  MyMemory *mem;
+  gsize maxsize = size + params->prefix + params->padding;
+
+  GST_DEBUG ("alloc from allocator %p", allocator);
+
+  mem = g_slice_new (MyMemory);
+
+  gst_memory_init (GST_MEMORY_CAST (mem), params->flags, allocator, NULL,
+      maxsize, params->align, params->prefix, size);
+
+  mem->data = NULL;
+
+  return (GstMemory *) mem;
+}
+
+static void
+_my_free (GstAllocator * allocator, GstMemory * mem)
+{
+  MyMemory *mmem = (MyMemory *) mem;
+
+  g_free (mmem->data);
+  g_slice_free (MyMemory, mmem);
+  GST_DEBUG ("%p: freed", mmem);
+}
+
+static gpointer
+_my_mem_map (MyMemory * mem, gsize maxsize, GstMapFlags flags)
+{
+  gpointer res;
+
+  while (TRUE) {
+    if ((res = g_atomic_pointer_get (&mem->data)) != NULL)
+      break;
+
+    res = g_malloc (maxsize);
+
+    if (g_atomic_pointer_compare_and_exchange (&mem->data, NULL, res))
+      break;
+
+    g_free (res);
+  }
+
+  GST_DEBUG ("%p: mapped %p", mem, res);
+
+  return res;
+}
+
+static gboolean
+_my_mem_unmap (MyMemory * mem)
+{
+  GST_DEBUG ("%p: unmapped", mem);
+  return TRUE;
+}
+
+static MyMemory *
+_my_mem_share (MyMemory * mem, gssize offset, gsize size)
+{
+  MyMemory *sub;
+  GstMemory *parent;
+
+  GST_DEBUG ("%p: share %" G_GSSIZE_FORMAT " %" G_GSIZE_FORMAT, mem, offset,
+      size);
+
+  /* find the real parent */
+  if ((parent = mem->mem.parent) == NULL)
+    parent = (GstMemory *) mem;
+
+  if (size == -1)
+    size = mem->mem.size - offset;
+
+  sub = g_slice_new (MyMemory);
+  /* the shared memory is always readonly */
+  gst_memory_init (GST_MEMORY_CAST (sub), GST_MINI_OBJECT_FLAGS (parent) |
+      GST_MINI_OBJECT_FLAG_LOCK_READONLY, mem->mem.allocator, parent,
+      mem->mem.maxsize, mem->mem.align, mem->mem.offset + offset, size);
+
+  /* install pointer */
+  sub->data = _my_mem_map (mem, mem->mem.maxsize, GST_MAP_READ);
+
+  return sub;
+}
+
+typedef struct
+{
+  GstAllocator parent;
+} MyMemoryAllocator;
+
+typedef struct
+{
+  GstAllocatorClass parent_class;
+} MyMemoryAllocatorClass;
+
+GType my_memory_allocator_get_type (void);
+G_DEFINE_TYPE (MyMemoryAllocator, my_memory_allocator, GST_TYPE_ALLOCATOR);
+
+static void
+my_memory_allocator_class_init (MyMemoryAllocatorClass * klass)
+{
+  GstAllocatorClass *allocator_class;
+
+  allocator_class = (GstAllocatorClass *) klass;
+
+  allocator_class->alloc = _my_alloc;
+  allocator_class->free = _my_free;
+}
+
+static void
+my_memory_allocator_init (MyMemoryAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  alloc->mem_type = "MyMemory";
+  alloc->mem_map = (GstMemoryMapFunction) _my_mem_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) _my_mem_unmap;
+  alloc->mem_share = (GstMemoryShareFunction) _my_mem_share;
+}
+
+void
+my_memory_init (void)
+{
+  GstAllocator *allocator;
+
+  allocator = g_object_new (my_memory_allocator_get_type (), NULL);
+
+  gst_allocator_register ("MyMemory", allocator);
+}
diff --git a/tests/examples/memory/my-memory.h b/tests/examples/memory/my-memory.h
new file mode 100644
index 0000000..dad2d24
--- /dev/null
+++ b/tests/examples/memory/my-memory.h
@@ -0,0 +1,26 @@
+/* GStreamer
+ * Copyright (C) 2012 Wim Taymans <wim.taymans@gmail.be>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/gst.h>
+
+
+/* example of an allocator that delays allocation of the memory
+ * until the memory is mapped */
+void my_memory_init (void);
+
diff --git a/tests/examples/memory/my-vidmem.c b/tests/examples/memory/my-vidmem.c
new file mode 100644
index 0000000..b1a58be
--- /dev/null
+++ b/tests/examples/memory/my-vidmem.c
@@ -0,0 +1,192 @@
+/* GStreamer
+ * Copyright (C) 2012 Wim Taymans <wim.taymans@gmail.be>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "my-vidmem.h"
+
+static GstAllocator *_my_allocator;
+
+typedef struct
+{
+  GstMemory mem;
+
+  guint format;
+  guint width;
+  guint height;
+  gpointer data;
+
+} MyVidmem;
+
+
+static GstMemory *
+_my_alloc (GstAllocator * allocator, gsize size, GstAllocationParams * params)
+{
+  g_warning ("Use my_vidmem_alloc() to allocate from this allocator");
+
+  return NULL;
+}
+
+static void
+_my_free (GstAllocator * allocator, GstMemory * mem)
+{
+  MyVidmem *vmem = (MyVidmem *) mem;
+
+  g_free (vmem->data);
+  g_slice_free (MyVidmem, vmem);
+  GST_DEBUG ("%p: freed", vmem);
+}
+
+static gpointer
+_my_vidmem_map (MyVidmem * mem, gsize maxsize, GstMapFlags flags)
+{
+  gpointer res;
+
+  while (TRUE) {
+    if ((res = g_atomic_pointer_get (&mem->data)) != NULL)
+      break;
+
+    res = g_malloc (maxsize);
+
+    if (g_atomic_pointer_compare_and_exchange (&mem->data, NULL, res))
+      break;
+
+    g_free (res);
+  }
+
+  GST_DEBUG ("%p: mapped %p", mem, res);
+
+  return res;
+}
+
+static gboolean
+_my_vidmem_unmap (MyVidmem * mem)
+{
+  GST_DEBUG ("%p: unmapped", mem);
+  return TRUE;
+}
+
+static MyVidmem *
+_my_vidmem_share (MyVidmem * mem, gssize offset, gsize size)
+{
+  MyVidmem *sub;
+  GstMemory *parent;
+
+  GST_DEBUG ("%p: share %" G_GSSIZE_FORMAT " %" G_GSIZE_FORMAT, mem, offset,
+      size);
+
+  /* find the real parent */
+  if ((parent = mem->mem.parent) == NULL)
+    parent = (GstMemory *) mem;
+
+  if (size == -1)
+    size = mem->mem.size - offset;
+
+  sub = g_slice_new (MyVidmem);
+  /* the shared memory is always readonly */
+  gst_memory_init (GST_MEMORY_CAST (sub), GST_MINI_OBJECT_FLAGS (parent) |
+      GST_MINI_OBJECT_FLAG_LOCK_READONLY, mem->mem.allocator, parent,
+      mem->mem.maxsize, mem->mem.align, mem->mem.offset + offset, size);
+
+  /* install pointer */
+  sub->data = _my_vidmem_map (mem, mem->mem.maxsize, GST_MAP_READ);
+
+  return sub;
+}
+
+typedef struct
+{
+  GstAllocator parent;
+} MyVidmemAllocator;
+
+typedef struct
+{
+  GstAllocatorClass parent_class;
+} MyVidmemAllocatorClass;
+
+GType my_vidmem_allocator_get_type (void);
+G_DEFINE_TYPE (MyVidmemAllocator, my_vidmem_allocator, GST_TYPE_ALLOCATOR);
+
+static void
+my_vidmem_allocator_class_init (MyVidmemAllocatorClass * klass)
+{
+  GstAllocatorClass *allocator_class;
+
+  allocator_class = (GstAllocatorClass *) klass;
+
+  allocator_class->alloc = _my_alloc;
+  allocator_class->free = _my_free;
+}
+
+static void
+my_vidmem_allocator_init (MyVidmemAllocator * allocator)
+{
+  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
+
+  alloc->mem_type = "MyVidmem";
+  alloc->mem_map = (GstMemoryMapFunction) _my_vidmem_map;
+  alloc->mem_unmap = (GstMemoryUnmapFunction) _my_vidmem_unmap;
+  alloc->mem_share = (GstMemoryShareFunction) _my_vidmem_share;
+}
+
+void
+my_vidmem_init (void)
+{
+  _my_allocator = g_object_new (my_vidmem_allocator_get_type (), NULL);
+
+  gst_allocator_register ("MyVidmem", gst_object_ref (_my_allocator));
+}
+
+GstMemory *
+my_vidmem_alloc (guint format, guint width, guint height)
+{
+  MyVidmem *mem;
+  gsize maxsize;
+
+  GST_DEBUG ("alloc frame format %u %ux%u", format, width, height);
+
+  maxsize = (GST_ROUND_UP_4 (width) * height);
+
+  mem = g_slice_new (MyVidmem);
+
+  gst_memory_init (GST_MEMORY_CAST (mem), 0, _my_allocator, NULL,
+      maxsize, 31, 0, maxsize);
+
+  mem->format = format;
+  mem->width = width;
+  mem->height = height;
+  mem->data = NULL;
+
+  return (GstMemory *) mem;
+}
+
+gboolean
+my_is_vidmem (GstMemory * mem)
+{
+  return mem->allocator == _my_allocator;
+}
+
+void
+my_vidmem_get_format (GstMemory * mem, guint * format, guint * width,
+    guint * height)
+{
+  MyVidmem *vmem = (MyVidmem *) mem;
+
+  *format = vmem->format;
+  *width = vmem->width;
+  *height = vmem->height;
+}
diff --git a/tests/examples/memory/my-vidmem.h b/tests/examples/memory/my-vidmem.h
new file mode 100644
index 0000000..337ebbb
--- /dev/null
+++ b/tests/examples/memory/my-vidmem.h
@@ -0,0 +1,31 @@
+/* GStreamer
+ * Copyright (C) 2012 Wim Taymans <wim.taymans@gmail.be>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gst/gst.h>
+
+/* example of an allocator that needs a custom alloc function */
+void my_vidmem_init (void);
+
+GstMemory * my_vidmem_alloc             (guint format, guint width, guint height);
+
+gboolean    my_is_vidmem                (GstMemory *mem);
+
+void        my_vidmem_get_format        (GstMemory *mem, guint *format,
+                                         guint *width, guint *height);
+
diff --git a/tests/examples/metadata/Makefile.in b/tests/examples/metadata/Makefile.in
index d8fc778..a3cb815 100644
--- a/tests/examples/metadata/Makefile.in
+++ b/tests/examples/metadata/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -202,7 +202,9 @@
 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@
diff --git a/tests/examples/queue/Makefile.in b/tests/examples/queue/Makefile.in
index 4891ef4..d4bb1d6 100644
--- a/tests/examples/queue/Makefile.in
+++ b/tests/examples/queue/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -202,7 +202,9 @@
 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@
diff --git a/tests/examples/stepping/Makefile.in b/tests/examples/stepping/Makefile.in
index e6d4e1f..5e5057a 100644
--- a/tests/examples/stepping/Makefile.in
+++ b/tests/examples/stepping/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -202,7 +202,9 @@
 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@
diff --git a/tests/examples/stepping/framestep1.c b/tests/examples/stepping/framestep1.c
index 6eb1881..70a33a9 100644
--- a/tests/examples/stepping/framestep1.c
+++ b/tests/examples/stepping/framestep1.c
@@ -123,8 +123,9 @@
 
   /* step two frames, flush so that new preroll is queued */
   g_message ("stepping three frames");
-  g_assert (gst_element_send_event (bin,
-          gst_event_new_step (GST_FORMAT_BUFFERS, 2, 1.0, TRUE, FALSE)));
+  if (!gst_element_send_event (bin,
+          gst_event_new_step (GST_FORMAT_BUFFERS, 2, 1.0, TRUE, FALSE)))
+    g_warning ("Filed to send STEP event!");
 
   /* blocks and returns when we received the step done message */
   event_loop (bin);
@@ -138,9 +139,10 @@
 
   /* step 3 frames, flush so that new preroll is queued */
   g_message ("stepping 120 milliseconds ");
-  g_assert (gst_element_send_event (bin,
+  if (!gst_element_send_event (bin,
           gst_event_new_step (GST_FORMAT_TIME, 120 * GST_MSECOND, 1.0, TRUE,
-              FALSE)));
+              FALSE)))
+    g_warning ("Filed to send STEP event!");
 
   /* blocks and returns when we received the step done message */
   event_loop (bin);
diff --git a/tests/examples/streams/Makefile.in b/tests/examples/streams/Makefile.in
index 5187d85..0d76343 100644
--- a/tests/examples/streams/Makefile.in
+++ b/tests/examples/streams/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -211,7 +211,9 @@
 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@
diff --git a/tests/examples/streams/rtpool-test.c b/tests/examples/streams/rtpool-test.c
index 960b6ea..fe129d2 100644
--- a/tests/examples/streams/rtpool-test.c
+++ b/tests/examples/streams/rtpool-test.c
@@ -154,7 +154,8 @@
 
   /* get the bus, we need to install a sync handler */
   bus = gst_pipeline_get_bus (GST_PIPELINE (bin));
-  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) sync_bus_handler, bin);
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) sync_bus_handler, bin,
+      NULL);
 
   /* start playing */
   ret = gst_element_set_state (bin, GST_STATE_PLAYING);
diff --git a/tests/examples/streams/stream-status.c b/tests/examples/streams/stream-status.c
index 0494ebd..1331110 100644
--- a/tests/examples/streams/stream-status.c
+++ b/tests/examples/streams/stream-status.c
@@ -130,7 +130,8 @@
 
   /* get the bus, we need to install a sync handler */
   bus = gst_pipeline_get_bus (GST_PIPELINE (bin));
-  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) sync_bus_handler, bin);
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) sync_bus_handler, bin,
+      NULL);
 
   /* start playing */
   gst_element_set_state (bin, GST_STATE_PLAYING);
diff --git a/tests/examples/typefind/Makefile.in b/tests/examples/typefind/Makefile.in
index a5b5743..0858fd9 100644
--- a/tests/examples/typefind/Makefile.in
+++ b/tests/examples/typefind/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -202,7 +202,9 @@
 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@
diff --git a/tests/misc/Makefile.in b/tests/misc/Makefile.in
index e281b0d..5888927 100644
--- a/tests/misc/Makefile.in
+++ b/tests/misc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -167,7 +167,9 @@
 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@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index c282f92..a6495d9 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.5 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -268,7 +268,9 @@
 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@
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
index 9642ea9..9616a0e 100644
--- a/tools/gst-inspect.c
+++ b/tools/gst-inspect.c
@@ -21,14 +21,14 @@
  * Boston, MA 02111-1307, USA.
  */
 
-/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
- * with newer GLib versions (>= 2.31.0) */
-#define GLIB_DISABLE_DEPRECATION_WARNINGS
-
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
 
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
 #include "tools.h"
 
 #include <string.h>
@@ -1535,7 +1535,7 @@
   textdomain (GETTEXT_PACKAGE);
 #endif
 
-  gst_tools_set_prgname ("gst-inspect");
+  g_set_prgname ("gst-inspect-" GST_API_VERSION);
 
 #ifndef GST_DISABLE_OPTION_PARSING
   ctx = g_option_context_new ("[ELEMENT-NAME | PLUGIN-NAME]");
@@ -1550,7 +1550,7 @@
   gst_init (&argc, &argv);
 #endif
 
-  gst_tools_print_version ("gst-inspect");
+  gst_tools_print_version ();
 
   if (print_all && argc > 1) {
     g_print ("-a requires no extra arguments\n");
diff --git a/tools/gst-launch.c b/tools/gst-launch.c
index 4abb429..1cce4d1 100644
--- a/tools/gst-launch.c
+++ b/tools/gst-launch.c
@@ -136,14 +136,15 @@
   int spinning = TRUE;
 
   glib_on_error_halt = FALSE;
-  g_on_error_stack_trace ("gst-launch");
+  g_on_error_stack_trace ("gst-launch-" GST_API_VERSION);
 
   wait (NULL);
 
   /* FIXME how do we know if we were run by libtool? */
   fprintf (stderr,
-      "Spinning.  Please run 'gdb gst-launch %d' to continue debugging, "
-      "Ctrl-C to quit, or Ctrl-\\ to dump core.\n", (gint) getpid ());
+      "Spinning.  Please run 'gdb gst-launch- " GST_API_VERSION " %d' to "
+      "continue debugging, Ctrl-C to quit, or Ctrl-\\ to dump core.\n",
+      (gint) getpid ());
   while (spinning)
     g_usleep (1000000);
 }
@@ -384,27 +385,35 @@
     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 if (gst_tag_get_type (tag) == GST_TYPE_BUFFER) {
-      GstBuffer *img;
+    } else if (gst_tag_get_type (tag) == GST_TYPE_SAMPLE) {
+      GstSample *sample = NULL;
 
-      img = gst_value_get_buffer (gst_tag_list_get_value_index (list, tag, i));
-      if (img) {
-        gchar *caps_str;
+      if (gst_tag_list_get_sample_index (list, tag, i, &sample)) {
+        GstBuffer *img = gst_sample_get_buffer (sample);
+        GstCaps *caps = gst_sample_get_caps (sample);
 
-        caps_str = g_strdup ("unknown");
-        str = g_strdup_printf ("buffer of %" G_GSIZE_FORMAT " bytes, type: %s",
-            gst_buffer_get_size (img), caps_str);
-        g_free (caps_str);
-      } else {
-        str = g_strdup ("NULL buffer");
+        if (img) {
+          if (caps) {
+            gchar *caps_str;
+
+            caps_str = gst_caps_to_string (caps);
+            str = g_strdup_printf ("buffer of %" G_GSIZE_FORMAT " bytes, "
+                "type: %s", gst_buffer_get_size (img), caps_str);
+            g_free (caps_str);
+          } else {
+            str = g_strdup_printf ("buffer of %" G_GSIZE_FORMAT " bytes",
+                gst_buffer_get_size (img));
+          }
+        } else {
+          str = g_strdup ("NULL buffer");
+        }
       }
     } else if (gst_tag_get_type (tag) == GST_TYPE_DATE_TIME) {
       GstDateTime *dt = NULL;
 
       gst_tag_list_get_date_time_index (list, tag, i, &dt);
-      if (gst_date_time_get_hour (dt) < 0) {
-        str = g_strdup_printf ("%02u-%02u-%04u", gst_date_time_get_day (dt),
-            gst_date_time_get_month (dt), gst_date_time_get_year (dt));
+      if (!gst_date_time_has_time (dt)) {
+        str = gst_date_time_to_iso8601_string (dt);
       } else {
         gdouble tz_offset = gst_date_time_get_time_zone_offset (dt);
         gchar tz_str[32];
@@ -467,12 +476,14 @@
   GstTocEntry *entry = (GstTocEntry *) data;
   const gchar spc[MAX_INDENT + 1] = "                                        ";
   guint indent = MIN (GPOINTER_TO_UINT (user_data), MAX_INDENT);
+  const GstTagList *tags;
+  GList *subentries;
   gint64 start, stop;
 
-  gst_toc_entry_get_start_stop (entry, &start, &stop);
+  gst_toc_entry_get_start_stop_times (entry, &start, &stop);
 
   PRINT ("%s%s:", &spc[MAX_INDENT - indent],
-      gst_toc_entry_type_get_nick (entry->type));
+      gst_toc_entry_type_get_nick (gst_toc_entry_get_entry_type (entry)));
   if (GST_CLOCK_TIME_IS_VALID (start)) {
     PRINT (" start: %" GST_TIME_FORMAT, GST_TIME_ARGS (start));
   }
@@ -483,12 +494,13 @@
   indent += 2;
 
   /* print tags */
-  gst_tag_list_foreach (entry->tags, print_tag_foreach,
-      GUINT_TO_POINTER (indent));
+  tags = gst_toc_entry_get_tags (entry);
+  if (tags)
+    gst_tag_list_foreach (tags, print_tag_foreach, GUINT_TO_POINTER (indent));
 
   /* loop over sub-toc entries */
-  g_list_foreach (entry->subentries, print_toc_entry,
-      GUINT_TO_POINTER (indent));
+  subentries = gst_toc_entry_get_sub_entries (entry);
+  g_list_foreach (subentries, print_toc_entry, GUINT_TO_POINTER (indent));
 }
 
 #ifndef DISABLE_FAULT_HANDLER
@@ -668,7 +680,8 @@
         break;
       case GST_MESSAGE_TOC:
         if (toc) {
-          GstToc *toc_msg;
+          GstToc *toc;
+          GList *entries;
           gboolean updated;
 
           if (GST_IS_ELEMENT (GST_MESSAGE_SRC (message))) {
@@ -681,11 +694,11 @@
             PRINT (_("FOUND TOC\n"));
           }
 
-          gst_message_parse_toc (message, &toc_msg, &updated);
+          gst_message_parse_toc (message, &toc, &updated);
           /* recursively loop over toc entries */
-          g_list_foreach (toc_msg->entries, print_toc_entry,
-              GUINT_TO_POINTER (0));
-          gst_toc_free (toc_msg);
+          entries = gst_toc_get_entries (toc);
+          g_list_foreach (entries, print_toc_entry, GUINT_TO_POINTER (0));
+          gst_toc_unref (toc);
         }
         break;
       case GST_MESSAGE_INFO:{
@@ -948,7 +961,7 @@
   textdomain (GETTEXT_PACKAGE);
 #endif
 
-  gst_tools_set_prgname ("gst-launch");
+  g_set_prgname ("gst-launch-" GST_API_VERSION);
 
 #ifndef GST_DISABLE_OPTION_PARSING
   ctx = g_option_context_new ("PIPELINE-DESCRIPTION");
@@ -966,7 +979,7 @@
   gst_init (&argc, &argv);
 #endif
 
-  gst_tools_print_version ("gst-launch");
+  gst_tools_print_version ();
 
 #ifndef DISABLE_FAULT_HANDLER
   if (!no_fault)
@@ -1041,7 +1054,7 @@
 #endif
 
     bus = gst_element_get_bus (pipeline);
-    gst_bus_set_sync_handler (bus, bus_sync_handler, (gpointer) pipeline);
+    gst_bus_set_sync_handler (bus, bus_sync_handler, (gpointer) pipeline, NULL);
     gst_object_unref (bus);
 
     PRINT (_("Setting pipeline to PAUSED ...\n"));
@@ -1161,7 +1174,6 @@
   end:
     PRINT (_("Setting pipeline to NULL ...\n"));
     gst_element_set_state (pipeline, GST_STATE_NULL);
-    gst_element_get_state (pipeline, &state, &pending, GST_CLOCK_TIME_NONE);
   }
 
   PRINT (_("Freeing pipeline ...\n"));
diff --git a/tools/gst-typefind.c b/tools/gst-typefind.c
index a466859..4cab8c4 100644
--- a/tools/gst-typefind.c
+++ b/tools/gst-typefind.c
@@ -153,7 +153,7 @@
   textdomain (GETTEXT_PACKAGE);
 #endif
 
-  gst_tools_set_prgname ("gst-typefind");
+  g_set_prgname ("gst-typefind-" GST_API_VERSION);
 
   ctx = g_option_context_new ("FILES");
   g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
@@ -164,7 +164,7 @@
   }
   g_option_context_free (ctx);
 
-  gst_tools_print_version ("gst-typefind");
+  gst_tools_print_version ();
 
   if (filenames == NULL || *filenames == NULL) {
     g_print ("Please give a filename to typefind\n\n");
diff --git a/tools/tools.h b/tools/tools.h
index 93ac542..084085e 100644
--- a/tools/tools.h
+++ b/tools/tools.h
@@ -42,7 +42,7 @@
       N_("Print version information and exit"), NULL }
 
 static void
-gst_tools_print_version (const gchar * tool)
+gst_tools_print_version (void)
 {
   if (__gst_tools_version) {
     gchar *version_str;
@@ -57,14 +57,4 @@
   }
 }
 
-static void
-gst_tools_set_prgname (const gchar * tool)
-{
-  gchar *s;
-
-  s = g_strdup_printf ("%s-%u.%u", tool, GST_VERSION_MAJOR, GST_VERSION_MINOR);
-  g_set_prgname (s);
-  g_free (s);
-}
-
 #endif /* __GST_TOOLS_H__ */
diff --git a/win32/common/config.h b/win32/common/config.h
index 577e889..aebbc13 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -62,7 +62,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2012-06-07"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-08-08"
 
 /* location of the installed gst-plugin-scanner */
 #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner"
@@ -187,6 +187,9 @@
 /* Define to 1 if you have the `poll' function. */
 #undef HAVE_POLL
 
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
 /* Define to 1 if you have the `posix_memalign' function. */
 #undef HAVE_POSIX_MEMALIGN
 
@@ -334,7 +337,7 @@
 #define PACKAGE_NAME "GStreamer"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 0.11.92"
+#define PACKAGE_STRING "GStreamer 0.11.93"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gstreamer"
@@ -343,7 +346,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.11.92"
+#define PACKAGE_VERSION "0.11.93"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -377,7 +380,7 @@
 #undef USE_POISONING
 
 /* Version number of package */
-#define VERSION "0.11.92"
+#define VERSION "0.11.93"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstenumtypes.c b/win32/common/gstenumtypes.c
index 27bead8..517f84e 100644
--- a/win32/common/gstenumtypes.c
+++ b/win32/common/gstenumtypes.c
@@ -25,6 +25,26 @@
   return (GType) id;
 }
 
+/* enumerations from "gstallocator.h" */
+GType
+gst_allocator_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_ALLOCATOR_FLAG_CUSTOM_ALLOC),
+        "GST_ALLOCATOR_FLAG_CUSTOM_ALLOC", "custom-alloc"},
+    {C_FLAGS (GST_ALLOCATOR_FLAG_LAST), "GST_ALLOCATOR_FLAG_LAST", "last"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstAllocatorFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gstbin.h" */
 GType
 gst_bin_flags_get_type (void)
@@ -374,8 +394,6 @@
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
-    {C_FLAGS (GST_ELEMENT_FLAG_UNPARENTING), "GST_ELEMENT_FLAG_UNPARENTING",
-        "unparenting"},
     {C_FLAGS (GST_ELEMENT_FLAG_LOCKED_STATE), "GST_ELEMENT_FLAG_LOCKED_STATE",
         "locked-state"},
     {C_FLAGS (GST_ELEMENT_FLAG_SINK), "GST_ELEMENT_FLAG_SINK", "sink"},
@@ -817,6 +835,9 @@
     {C_FLAGS (GST_MESSAGE_QOS), "GST_MESSAGE_QOS", "qos"},
     {C_FLAGS (GST_MESSAGE_PROGRESS), "GST_MESSAGE_PROGRESS", "progress"},
     {C_FLAGS (GST_MESSAGE_TOC), "GST_MESSAGE_TOC", "toc"},
+    {C_FLAGS (GST_MESSAGE_RESET_TIME), "GST_MESSAGE_RESET_TIME", "reset-time"},
+    {C_FLAGS (GST_MESSAGE_STREAM_START), "GST_MESSAGE_STREAM_START",
+        "stream-start"},
     {C_FLAGS (GST_MESSAGE_ANY), "GST_MESSAGE_ANY", "any"},
     {0, NULL, NULL}
   };
@@ -976,6 +997,10 @@
 {
   static gsize id = 0;
   static const GFlagsValue values[] = {
+    {C_FLAGS (GST_MINI_OBJECT_FLAG_LOCKABLE), "GST_MINI_OBJECT_FLAG_LOCKABLE",
+        "lockable"},
+    {C_FLAGS (GST_MINI_OBJECT_FLAG_LOCK_READONLY),
+        "GST_MINI_OBJECT_FLAG_LOCK_READONLY", "lock-readonly"},
     {C_FLAGS (GST_MINI_OBJECT_FLAG_LAST), "GST_MINI_OBJECT_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
@@ -988,6 +1013,26 @@
   return (GType) id;
 }
 
+GType
+gst_lock_flags_get_type (void)
+{
+  static gsize id = 0;
+  static const GFlagsValue values[] = {
+    {C_FLAGS (GST_LOCK_FLAG_READ), "GST_LOCK_FLAG_READ", "read"},
+    {C_FLAGS (GST_LOCK_FLAG_WRITE), "GST_LOCK_FLAG_WRITE", "write"},
+    {C_FLAGS (GST_LOCK_FLAG_EXCLUSIVE), "GST_LOCK_FLAG_EXCLUSIVE", "exclusive"},
+    {C_FLAGS (GST_LOCK_FLAG_LAST), "GST_LOCK_FLAG_LAST", "last"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_flags_register_static ("GstLockFlags", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gstpad.h" */
 GType
 gst_pad_direction_get_type (void)
@@ -1188,6 +1233,8 @@
         "proxy-caps"},
     {C_FLAGS (GST_PAD_FLAG_PROXY_ALLOCATION), "GST_PAD_FLAG_PROXY_ALLOCATION",
         "proxy-allocation"},
+    {C_FLAGS (GST_PAD_FLAG_PROXY_SCHEDULING), "GST_PAD_FLAG_PROXY_SCHEDULING",
+        "proxy-scheduling"},
     {C_FLAGS (GST_PAD_FLAG_LAST), "GST_PAD_FLAG_LAST", "last"},
     {0, NULL, NULL}
   };
@@ -1391,7 +1438,6 @@
     {C_ENUM (GST_QUERY_ACCEPT_CAPS), "GST_QUERY_ACCEPT_CAPS", "accept-caps"},
     {C_ENUM (GST_QUERY_CAPS), "GST_QUERY_CAPS", "caps"},
     {C_ENUM (GST_QUERY_DRAIN), "GST_QUERY_DRAIN", "drain"},
-    {C_ENUM (GST_QUERY_TOC), "GST_QUERY_TOC", "toc"},
     {0, NULL, NULL}
   };
 
@@ -1499,6 +1545,7 @@
     {C_ENUM (GST_SEGMENT_FLAG_NONE), "GST_SEGMENT_FLAG_NONE", "none"},
     {C_ENUM (GST_SEGMENT_FLAG_RESET), "GST_SEGMENT_FLAG_RESET", "reset"},
     {C_ENUM (GST_SEGMENT_FLAG_SKIP), "GST_SEGMENT_FLAG_SKIP", "skip"},
+    {C_ENUM (GST_SEGMENT_FLAG_SEGMENT), "GST_SEGMENT_FLAG_SEGMENT", "segment"},
     {0, NULL, NULL}
   };
 
@@ -1577,6 +1624,24 @@
   return (GType) id;
 }
 
+GType
+gst_tag_scope_get_type (void)
+{
+  static gsize id = 0;
+  static const GEnumValue values[] = {
+    {C_ENUM (GST_TAG_SCOPE_STREAM), "GST_TAG_SCOPE_STREAM", "stream"},
+    {C_ENUM (GST_TAG_SCOPE_GLOBAL), "GST_TAG_SCOPE_GLOBAL", "global"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_enum_register_static ("GstTagScope", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
 /* enumerations from "gsttask.h" */
 GType
 gst_task_state_get_type (void)
@@ -1599,14 +1664,39 @@
 
 /* enumerations from "gsttoc.h" */
 GType
+gst_toc_scope_get_type (void)
+{
+  static gsize id = 0;
+  static const GEnumValue values[] = {
+    {C_ENUM (GST_TOC_SCOPE_GLOBAL), "GST_TOC_SCOPE_GLOBAL", "global"},
+    {C_ENUM (GST_TOC_SCOPE_CURRENT), "GST_TOC_SCOPE_CURRENT", "current"},
+    {0, NULL, NULL}
+  };
+
+  if (g_once_init_enter (&id)) {
+    GType tmp = g_enum_register_static ("GstTocScope", values);
+    g_once_init_leave (&id, tmp);
+  }
+
+  return (GType) id;
+}
+
+GType
 gst_toc_entry_type_get_type (void)
 {
   static gsize id = 0;
   static const GEnumValue values[] = {
-    {C_ENUM (GST_TOC_ENTRY_TYPE_CHAPTER), "GST_TOC_ENTRY_TYPE_CHAPTER",
-        "chapter"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_ANGLE), "GST_TOC_ENTRY_TYPE_ANGLE", "angle"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_VERSION), "GST_TOC_ENTRY_TYPE_VERSION",
+        "version"},
     {C_ENUM (GST_TOC_ENTRY_TYPE_EDITION), "GST_TOC_ENTRY_TYPE_EDITION",
         "edition"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_INVALID), "GST_TOC_ENTRY_TYPE_INVALID",
+        "invalid"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_TITLE), "GST_TOC_ENTRY_TYPE_TITLE", "title"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_TRACK), "GST_TOC_ENTRY_TYPE_TRACK", "track"},
+    {C_ENUM (GST_TOC_ENTRY_TYPE_CHAPTER), "GST_TOC_ENTRY_TYPE_CHAPTER",
+        "chapter"},
     {0, NULL, NULL}
   };
 
@@ -1648,12 +1738,12 @@
 {
   static gsize id = 0;
   static const GEnumValue values[] = {
-    {C_ENUM (GST_URI_ERROR_BAD_PROTOCOL), "GST_URI_ERROR_BAD_PROTOCOL",
-        "protocol"},
-    {C_ENUM (GST_URI_ERROR_BAD_URI), "GST_URI_ERROR_BAD_URI", "uri"},
-    {C_ENUM (GST_URI_ERROR_BAD_STATE), "GST_URI_ERROR_BAD_STATE", "state"},
+    {C_ENUM (GST_URI_ERROR_UNSUPPORTED_PROTOCOL),
+        "GST_URI_ERROR_UNSUPPORTED_PROTOCOL", "unsupported-protocol"},
+    {C_ENUM (GST_URI_ERROR_BAD_URI), "GST_URI_ERROR_BAD_URI", "bad-uri"},
+    {C_ENUM (GST_URI_ERROR_BAD_STATE), "GST_URI_ERROR_BAD_STATE", "bad-state"},
     {C_ENUM (GST_URI_ERROR_BAD_REFERENCE), "GST_URI_ERROR_BAD_REFERENCE",
-        "reference"},
+        "bad-reference"},
     {0, NULL, NULL}
   };
 
diff --git a/win32/common/gstenumtypes.h b/win32/common/gstenumtypes.h
index d8dcca4..9f2566d 100644
--- a/win32/common/gstenumtypes.h
+++ b/win32/common/gstenumtypes.h
@@ -12,6 +12,10 @@
 GType gst_object_flags_get_type (void);
 #define GST_TYPE_OBJECT_FLAGS (gst_object_flags_get_type())
 
+/* enumerations from "gstallocator.h" */
+GType gst_allocator_flags_get_type (void);
+#define GST_TYPE_ALLOCATOR_FLAGS (gst_allocator_flags_get_type())
+
 /* enumerations from "gstbin.h" */
 GType gst_bin_flags_get_type (void);
 #define GST_TYPE_BIN_FLAGS (gst_bin_flags_get_type())
@@ -119,6 +123,8 @@
 /* enumerations from "gstminiobject.h" */
 GType gst_mini_object_flags_get_type (void);
 #define GST_TYPE_MINI_OBJECT_FLAGS (gst_mini_object_flags_get_type())
+GType gst_lock_flags_get_type (void);
+#define GST_TYPE_LOCK_FLAGS (gst_lock_flags_get_type())
 
 /* enumerations from "gstpad.h" */
 GType gst_pad_direction_get_type (void);
@@ -187,12 +193,16 @@
 #define GST_TYPE_TAG_MERGE_MODE (gst_tag_merge_mode_get_type())
 GType gst_tag_flag_get_type (void);
 #define GST_TYPE_TAG_FLAG (gst_tag_flag_get_type())
+GType gst_tag_scope_get_type (void);
+#define GST_TYPE_TAG_SCOPE (gst_tag_scope_get_type())
 
 /* enumerations from "gsttask.h" */
 GType gst_task_state_get_type (void);
 #define GST_TYPE_TASK_STATE (gst_task_state_get_type())
 
 /* enumerations from "gsttoc.h" */
+GType gst_toc_scope_get_type (void);
+#define GST_TYPE_TOC_SCOPE (gst_toc_scope_get_type())
 GType gst_toc_entry_type_get_type (void);
 #define GST_TYPE_TOC_ENTRY_TYPE (gst_toc_entry_type_get_type())
 
diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h
index 312fa11..bb3e471 100644
--- a/win32/common/gstversion.h
+++ b/win32/common/gstversion.h
@@ -74,8 +74,6 @@
  *
  * Check whether a GStreamer version equal to or greater than
  * major.minor.micro is present.
- *
- * Since: 0.10.18
  */
 #define	GST_CHECK_VERSION(major,minor,micro)	\
     (GST_VERSION_MAJOR > (major) || \
diff --git a/win32/common/libgstbase.def b/win32/common/libgstbase.def
index 236c4a7..e8f92b1 100644
--- a/win32/common/libgstbase.def
+++ b/win32/common/libgstbase.def
@@ -56,8 +56,8 @@
 	gst_base_sink_set_sync
 	gst_base_sink_set_throttle_time
 	gst_base_sink_set_ts_offset
+	gst_base_sink_wait
 	gst_base_sink_wait_clock
-	gst_base_sink_wait_eos
 	gst_base_sink_wait_preroll
 	gst_base_src_get_blocksize
 	gst_base_src_get_do_timestamp
@@ -213,12 +213,9 @@
 	gst_collect_pads_add_pad_full
 	gst_collect_pads_available
 	gst_collect_pads_clip_running_time
-	gst_collect_pads_collect
-	gst_collect_pads_collect_range
 	gst_collect_pads_event_default
 	gst_collect_pads_flush
 	gst_collect_pads_get_type
-	gst_collect_pads_is_active
 	gst_collect_pads_new
 	gst_collect_pads_peek
 	gst_collect_pads_pop
diff --git a/win32/common/libgstnet.def b/win32/common/libgstnet.def
index 42c28ba..4478bcb 100644
--- a/win32/common/libgstnet.def
+++ b/win32/common/libgstnet.def
@@ -4,6 +4,9 @@
 	gst_net_address_meta_get_info
 	gst_net_client_clock_get_type
 	gst_net_client_clock_new
+	gst_net_time_packet_copy
+	gst_net_time_packet_free
+	gst_net_time_packet_get_type
 	gst_net_time_packet_new
 	gst_net_time_packet_receive
 	gst_net_time_packet_send
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index ce04b94..062bc83 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -10,6 +10,7 @@
 	GST_CAT_ERROR_SYSTEM DATA
 	GST_CAT_EVENT DATA
 	GST_CAT_GST_INIT DATA
+	GST_CAT_LOCKING DATA
 	GST_CAT_MEMORY DATA
 	GST_CAT_MESSAGE DATA
 	GST_CAT_META DATA
@@ -56,13 +57,12 @@
 	gst_allocation_params_init
 	gst_allocator_alloc
 	gst_allocator_find
-	gst_allocator_get_memory_type
+	gst_allocator_flags_get_type
+	gst_allocator_free
 	gst_allocator_get_type
-	gst_allocator_new
-	gst_allocator_ref
 	gst_allocator_register
 	gst_allocator_set_default
-	gst_allocator_unref
+	gst_atomic_queue_get_type
 	gst_atomic_queue_length
 	gst_atomic_queue_new
 	gst_atomic_queue_peek
@@ -90,7 +90,7 @@
 	gst_bin_remove_many
 	gst_bitmask_get_type
 	gst_buffer_add_meta
-	gst_buffer_append
+	gst_buffer_append_region
 	gst_buffer_copy_flags_get_type
 	gst_buffer_copy_into
 	gst_buffer_copy_region
@@ -242,7 +242,6 @@
 	gst_clock_id_unschedule
 	gst_clock_id_wait
 	gst_clock_id_wait_async
-	gst_clock_id_wait_async_full
 	gst_clock_new_periodic_id
 	gst_clock_new_single_shot_id
 	gst_clock_periodic_id_reinit
@@ -275,13 +274,25 @@
 	gst_date_time_get_time_zone_offset
 	gst_date_time_get_type
 	gst_date_time_get_year
+	gst_date_time_has_day
+	gst_date_time_has_month
+	gst_date_time_has_second
+	gst_date_time_has_time
+	gst_date_time_has_year
 	gst_date_time_new
+	gst_date_time_new_from_g_date_time
+	gst_date_time_new_from_iso8601_string
 	gst_date_time_new_from_unix_epoch_local_time
 	gst_date_time_new_from_unix_epoch_utc
 	gst_date_time_new_local_time
 	gst_date_time_new_now_local_time
 	gst_date_time_new_now_utc
+	gst_date_time_new_y
+	gst_date_time_new_ym
+	gst_date_time_new_ymd
 	gst_date_time_ref
+	gst_date_time_to_g_date_time
+	gst_date_time_to_iso8601_string
 	gst_date_time_unref
 	gst_debug_add_log_function
 	gst_debug_bin_to_dot_file
@@ -315,6 +326,7 @@
 	gst_debug_set_default_threshold
 	gst_debug_set_threshold_for_name
 	gst_debug_unset_threshold_for_name
+	gst_default_allocator_get_type
 	gst_deinit
 	gst_double_range_get_type
 	gst_element_abort_state
@@ -421,6 +433,7 @@
 	gst_event_new_reconfigure
 	gst_event_new_seek
 	gst_event_new_segment
+	gst_event_new_segment_done
 	gst_event_new_sink_message
 	gst_event_new_step
 	gst_event_new_stream_config
@@ -437,10 +450,12 @@
 	gst_event_parse_qos
 	gst_event_parse_seek
 	gst_event_parse_segment
+	gst_event_parse_segment_done
 	gst_event_parse_sink_message
 	gst_event_parse_step
 	gst_event_parse_stream_config
 	gst_event_parse_stream_config_setup_data
+	gst_event_parse_stream_start
 	gst_event_parse_tag
 	gst_event_parse_toc
 	gst_event_parse_toc_select
@@ -471,13 +486,11 @@
 	gst_ghost_pad_get_target
 	gst_ghost_pad_get_type
 	gst_ghost_pad_internal_activate_mode_default
-	gst_ghost_pad_link_default
 	gst_ghost_pad_new
 	gst_ghost_pad_new_from_template
 	gst_ghost_pad_new_no_target
 	gst_ghost_pad_new_no_target_from_template
 	gst_ghost_pad_set_target
-	gst_ghost_pad_unlink_default
 	gst_init
 	gst_init_check
 	gst_init_get_option_group
@@ -501,22 +514,21 @@
 	gst_iterator_resync
 	gst_library_error_get_type
 	gst_library_error_quark
+	gst_lock_flags_get_type
 	gst_map_flags_get_type
 	gst_memory_alignment DATA
 	gst_memory_copy
 	gst_memory_flags_get_type
 	gst_memory_get_sizes
 	gst_memory_get_type
-	gst_memory_is_exclusive
+	gst_memory_init
 	gst_memory_is_span
 	gst_memory_make_mapped
 	gst_memory_map
 	gst_memory_new_wrapped
-	gst_memory_ref
 	gst_memory_resize
 	gst_memory_share
 	gst_memory_unmap
-	gst_memory_unref
 	gst_message_get_seqnum
 	gst_message_get_stream_status_object
 	gst_message_get_structure
@@ -539,12 +551,14 @@
 	gst_message_new_progress
 	gst_message_new_qos
 	gst_message_new_request_state
+	gst_message_new_reset_time
 	gst_message_new_segment_done
 	gst_message_new_segment_start
 	gst_message_new_state_changed
 	gst_message_new_state_dirty
 	gst_message_new_step_done
 	gst_message_new_step_start
+	gst_message_new_stream_start
 	gst_message_new_stream_status
 	gst_message_new_structure_change
 	gst_message_new_tag
@@ -564,6 +578,7 @@
 	gst_message_parse_qos_stats
 	gst_message_parse_qos_values
 	gst_message_parse_request_state
+	gst_message_parse_reset_time
 	gst_message_parse_segment_done
 	gst_message_parse_segment_start
 	gst_message_parse_state_changed
@@ -589,13 +604,18 @@
 	gst_meta_register
 	gst_mini_object_copy
 	gst_mini_object_flags_get_type
+	gst_mini_object_get_qdata
 	gst_mini_object_init
 	gst_mini_object_is_writable
+	gst_mini_object_lock
 	gst_mini_object_make_writable
 	gst_mini_object_ref
 	gst_mini_object_replace
+	gst_mini_object_set_qdata
 	gst_mini_object_steal
+	gst_mini_object_steal_qdata
 	gst_mini_object_take
+	gst_mini_object_unlock
 	gst_mini_object_unref
 	gst_mini_object_weak_ref
 	gst_mini_object_weak_unref
@@ -634,6 +654,9 @@
 	gst_pad_chain
 	gst_pad_chain_list
 	gst_pad_check_reconfigure
+	gst_pad_create_stream_id
+	gst_pad_create_stream_id_printf
+	gst_pad_create_stream_id_printf_valist
 	gst_pad_direction_get_type
 	gst_pad_event_default
 	gst_pad_flags_get_type
@@ -694,7 +717,6 @@
 	gst_pad_set_activate_function_full
 	gst_pad_set_activatemode_function_full
 	gst_pad_set_active
-	gst_pad_set_caps
 	gst_pad_set_chain_function_full
 	gst_pad_set_chain_list_function_full
 	gst_pad_set_element_private
@@ -808,24 +830,20 @@
 	gst_preset_save_preset
 	gst_preset_set_app_dir
 	gst_preset_set_meta
-	gst_print_element_args
-	gst_print_pad_caps
 	gst_progress_type_get_type
 	gst_proxy_pad_chain_default
 	gst_proxy_pad_chain_list_default
-	gst_proxy_pad_event_default
 	gst_proxy_pad_get_internal
 	gst_proxy_pad_get_type
 	gst_proxy_pad_getrange_default
 	gst_proxy_pad_iterate_internal_links_default
-	gst_proxy_pad_query_default
-	gst_proxy_pad_unlink_default
 	gst_qos_type_get_type
 	gst_query_add_allocation_meta
 	gst_query_add_allocation_param
 	gst_query_add_allocation_pool
 	gst_query_add_buffering_range
 	gst_query_add_scheduling_mode
+	gst_query_find_allocation_meta
 	gst_query_get_n_allocation_metas
 	gst_query_get_n_allocation_params
 	gst_query_get_n_allocation_pools
@@ -833,9 +851,7 @@
 	gst_query_get_n_scheduling_modes
 	gst_query_get_structure
 	gst_query_get_type
-	gst_query_has_allocation_meta
 	gst_query_has_scheduling_mode
-	gst_query_intersect_caps_result
 	gst_query_new_accept_caps
 	gst_query_new_allocation
 	gst_query_new_buffering
@@ -850,7 +866,6 @@
 	gst_query_new_scheduling
 	gst_query_new_seeking
 	gst_query_new_segment
-	gst_query_new_toc
 	gst_query_new_uri
 	gst_query_parse_accept_caps
 	gst_query_parse_accept_caps_result
@@ -874,7 +889,6 @@
 	gst_query_parse_scheduling
 	gst_query_parse_seeking
 	gst_query_parse_segment
-	gst_query_parse_toc
 	gst_query_parse_uri
 	gst_query_remove_nth_allocation_meta
 	gst_query_set_accept_caps_result
@@ -893,7 +907,6 @@
 	gst_query_set_scheduling
 	gst_query_set_seeking
 	gst_query_set_segment
-	gst_query_set_toc
 	gst_query_set_uri
 	gst_query_type_flags_get_type
 	gst_query_type_get_flags
@@ -1046,8 +1059,6 @@
 	gst_tag_list_foreach
 	gst_tag_list_get_boolean
 	gst_tag_list_get_boolean_index
-	gst_tag_list_get_buffer
-	gst_tag_list_get_buffer_index
 	gst_tag_list_get_date
 	gst_tag_list_get_date_index
 	gst_tag_list_get_date_time
@@ -1062,6 +1073,9 @@
 	gst_tag_list_get_int_index
 	gst_tag_list_get_pointer
 	gst_tag_list_get_pointer_index
+	gst_tag_list_get_sample
+	gst_tag_list_get_sample_index
+	gst_tag_list_get_scope
 	gst_tag_list_get_string
 	gst_tag_list_get_string_index
 	gst_tag_list_get_tag_size
@@ -1083,12 +1097,14 @@
 	gst_tag_list_nth_tag_name
 	gst_tag_list_peek_string_index
 	gst_tag_list_remove_tag
+	gst_tag_list_set_scope
 	gst_tag_list_to_string
 	gst_tag_merge_mode_get_type
 	gst_tag_merge_strings_with_comma
 	gst_tag_merge_use_first
 	gst_tag_register
 	gst_tag_register_static
+	gst_tag_scope_get_type
 	gst_tag_setter_add_tag_valist
 	gst_tag_setter_add_tag_valist_values
 	gst_tag_setter_add_tag_value
@@ -1113,34 +1129,45 @@
 	gst_task_pool_new
 	gst_task_pool_prepare
 	gst_task_pool_push
+	gst_task_set_enter_callback
+	gst_task_set_leave_callback
 	gst_task_set_lock
 	gst_task_set_pool
 	gst_task_set_state
-	gst_task_set_thread_callbacks
 	gst_task_start
 	gst_task_state_get_type
 	gst_task_stop
-	gst_toc_copy
-	gst_toc_entry_copy
-	gst_toc_entry_free
-	gst_toc_entry_get_start_stop
+	gst_toc_append_entry
+	gst_toc_dump
+	gst_toc_entry_append_sub_entry
+	gst_toc_entry_get_entry_type
+	gst_toc_entry_get_parent
+	gst_toc_entry_get_start_stop_times
+	gst_toc_entry_get_sub_entries
+	gst_toc_entry_get_tags
+	gst_toc_entry_get_toc
 	gst_toc_entry_get_type
+	gst_toc_entry_get_uid
+	gst_toc_entry_is_alternative
+	gst_toc_entry_is_sequence
+	gst_toc_entry_merge_tags
 	gst_toc_entry_new
-	gst_toc_entry_new_with_pad
-	gst_toc_entry_set_start_stop
+	gst_toc_entry_set_start_stop_times
+	gst_toc_entry_set_tags
 	gst_toc_entry_type_get_nick
 	gst_toc_entry_type_get_type
 	gst_toc_find_entry
-	gst_toc_free
+	gst_toc_get_entries
+	gst_toc_get_scope
+	gst_toc_get_tags
 	gst_toc_get_type
+	gst_toc_merge_tags
 	gst_toc_new
-	gst_toc_setter_add_toc_entry
+	gst_toc_scope_get_type
+	gst_toc_set_tags
 	gst_toc_setter_get_toc
-	gst_toc_setter_get_toc_copy
-	gst_toc_setter_get_toc_entry
-	gst_toc_setter_get_toc_entry_copy
 	gst_toc_setter_get_type
-	gst_toc_setter_reset_toc
+	gst_toc_setter_reset
 	gst_toc_setter_set_toc
 	gst_type_find_factory_call_function
 	gst_type_find_factory_get_caps
